ERC-20
Overview
Max Total Supply
1,000,000 X
Holders
25
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 |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x6b7D48bA...8CA5418B7 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
XFactor
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-21 */ // SPDX-License-Identifier: MIT // relaunch due to error in first ca // https://twitter.com/XFactorERC // https://t.me/XfactorBurn pragma solidity >=0.8.0 <0.9.0; 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 XFactor 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; string constant private _name = "XFactor"; string constant private _symbol = "X"; 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: 600, sellFee: 3000, transferFee: 600 }); Ratios public _ratios = Ratios({ liquidity: 200, marketing: 1700, development: 1700, burn: 0, buyback: 0, totalSwap: 3600 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 3000; 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(0xC1Ef990333b8c8a2861af41f25c2e6959A6fcd36), development: payable(0x40Cb0a32e6f63e567Bae9A8da1bEA5c3D90e02F8), liquidity: payable(0x9d0CE531C637d794A65D369dB29d7534798a7705), 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; if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); _owner = msg.sender; } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D } else if (block.chainid == 43114) { dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4); } else if (block.chainid == 250) { dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29); } else { revert(); } _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 getTotalBurned() 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":"getTotalBurned","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
60806040526000600355620000176009600a62000837565b6200002690620f42406200084f565b60098190556040805160608082018352610258808352610bb860208085019190915292840152600a805465ffffffffffff19166502580bb80258178155835160c08101855260c881526106a4818501819052818601526000818401819052608080830191909152610e1060a090920191909152600b80546001600160601b0319166b0e100000000006a406a400c81790558451908101855273c1ef990333b8c8a2861af41f25c2e6959a6fcd368082527340cb0a32e6f63e567bae9a8da1bea5c3d90e02f8948201859052739d0ce531c637d794a65d369db29d7534798a770595820186905261dead91909301819052600e80546001600160a01b03199081169094179055600f805484169094179093556010805483169094179093556011805490911690911790556012805461ff00191690556016556064906200016d9060026200084f565b62000179919062000871565b601755606460095460026200018f91906200084f565b6200019b919062000871565b601855601980546001600160b01b031916306201000002179055600f54601c80546001600160a01b039092166001600160a01b031990921691909117905546603814156200021157600c8054610100600160a81b0319167410ed43c718714eb63d5aa57b78b54704e256024e0017905562000323565b46606114156200025d57600c805474d99d1c33f9fc3444f8101754abc46c52416550d100610100600160a81b0319909116179055601c80546001600160a01b0319163317905562000323565b46600114806200026d5750466004145b80620002795750466003145b15620002ad57600c8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017905562000323565b4661a86a1415620002e657600c8054610100600160a81b0319167460ae616a2155ee3d9a68541ba4544862310933d40017905562000323565b4660fa14156200031e57600c8054610100600160a81b03191674f491e7b69e4244ad4002bc14e878a34207e38c290017905562000323565b600080fd5b600954601c80546001600160a01b03908116600090815260016020908152604080832086905593549351948552929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600c60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d157600080fd5b505afa158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c919062000894565b6001600160a01b031663c9c65396600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046957600080fd5b505afa1580156200047e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a4919062000894565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620004ec57600080fd5b505af115801562000501573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000527919062000894565b600d80546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff19166001179055601c54600c546200057e92918216916101009091041660001962000621565b600c546200059f90309061010090046001600160a01b031660001962000621565b601c80546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600590915290208054909216179055620008bf565b6001600160a01b038316620006735760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006c15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200066a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007795781600019048211156200075d576200075d62000722565b808516156200076b57918102915b93841c93908002906200073d565b509250929050565b600082620007925750600162000831565b81620007a15750600062000831565b8160018114620007ba5760028114620007c557620007e5565b600191505062000831565b60ff841115620007d957620007d962000722565b50506001821b62000831565b5060208310610133831016604e8410600b84101617156200080a575081810a62000831565b62000816838362000738565b80600019048211156200082d576200082d62000722565b0290505b92915050565b60006200084860ff84168362000781565b9392505050565b60008160001904831182151516156200086c576200086c62000722565b500290565b6000826200088f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620008a757600080fd5b81516001600160a01b03811681146200084857600080fd5b6131f880620008cf6000396000f3fe60806040526004361061036f5760003560e01c80634fbee193116101c6578063b1b08f71116100f7578063f08f43a211610095578063f9f92be41161006f578063f9f92be414610adb578063fb78680d14610afb578063fd01bd4c14610b1b578063fdb78c0e14610b3157600080fd5b8063f08f43a214610a2f578063f8ec691114610a4f578063f94aa1b414610a7557600080fd5b8063b7df8b36116100d1578063b7df8b3614610925578063bfc2fc351461093f578063cf8477061461095f578063dd62ed3e146109e957600080fd5b8063b1b08f711461059f578063b3d514fb146108fa578063b55cd04b1461091057600080fd5b806370a0823111610164578063893d20e81161013e578063893d20e81461087d5780638a8c523c1461089b57806395d89b41146108b0578063a9059cbb146108da57600080fd5b806370a0823114610828578063715018a61461084857806375cb1bd11461085d57600080fd5b8063590ffdce116101a0578063590ffdce1461079a5780635cce86cd146107ba5780636e182809146107f35780636ebd00781461081357600080fd5b80634fbee1931461072257806350a8e0161461075b578063537df3b61461077a57600080fd5b80632b28fc7a116102a057806346ea7ac81161023e5780634b3c109a116102185780634b3c109a146106ac5780634bbb93eb146106c25780634e718e48146106e25780634fb2e45d1461070257600080fd5b806346ea7ac814610667578063487260211461067d5780634ada218b1461069257600080fd5b806332cde6641161027a57806332cde664146105e757806336fddb04146106075780633f3cf56c14610627578063452ed4f11461064757600080fd5b80632b28fc7a1461059f5780632e8fa821146105b5578063313ce567146105cb57600080fd5b8063095ea7b31161030d57806323b872dd116102e757806323b872dd14610532578063260039571461055257806328577751146105745780632b112e491461058a57600080fd5b8063095ea7b3146104e85780630fa604e41461050857806318160ddd1461051d57600080fd5b806306fdde031161034957806306fdde03146104275780630758d9241461046057806307dd79e014610485578063084e4f8a146104af57600080fd5b806303fd2a451461037b5780630445b667146103ae578063069d955f146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c460135481565b6040519081526020016103a5565b3480156103de57600080fd5b50600a546104029061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561043357600080fd5b506040805180820190915260078152662c2330b1ba37b960c91b60208201525b6040516103a59190612b0c565b34801561046c57600080fd5b50600c546103919061010090046001600160a01b031681565b34801561049157600080fd5b50600c5461049f9060ff1681565b60405190151581526020016103a5565b3480156104bb57600080fd5b5061049f6104ca366004612b79565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156104f457600080fd5b5061049f610503366004612b96565b610b50565b34801561051457600080fd5b506103c4610b67565b34801561052957600080fd5b506009546103c4565b34801561053e57600080fd5b5061049f61054d366004612bc2565b610b87565b34801561055e57600080fd5b5061057261056d366004612c03565b610bff565b005b34801561058057600080fd5b506103c460165481565b34801561059657600080fd5b506103c4610ce1565b3480156105ab57600080fd5b506103c46107d081565b3480156105c157600080fd5b506103c460145481565b3480156105d757600080fd5b50604051600981526020016103a5565b3480156105f357600080fd5b50610572610602366004612c3c565b610d0f565b34801561061357600080fd5b50610572610622366004612c8f565b610e50565b34801561063357600080fd5b50610572610642366004612c03565b610ea5565b34801561065357600080fd5b50600d54610391906001600160a01b031681565b34801561067357600080fd5b506103c4610fa081565b34801561068957600080fd5b50601a546103c4565b34801561069e57600080fd5b5060195461049f9060ff1681565b3480156106b857600080fd5b506103c4601a5481565b3480156106ce57600080fd5b506103c46106dd366004612cc4565b610f98565b3480156106ee57600080fd5b506105726106fd366004612cc4565b610fca565b34801561070e57600080fd5b5061057261071d366004612b79565b611043565b34801561072e57600080fd5b5061049f61073d366004612b79565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561076757600080fd5b5060195461049f90610100900460ff1681565b34801561078657600080fd5b50610572610795366004612b79565b611176565b3480156107a657600080fd5b506105726107b5366004612c8f565b6111c1565b3480156107c657600080fd5b5061049f6107d5366004612b79565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107ff57600080fd5b5061057261080e366004612b79565b611216565b34801561081f57600080fd5b506103c4611262565b34801561083457600080fd5b506103c4610843366004612b79565b61127d565b34801561085457600080fd5b50610572611298565b34801561086957600080fd5b50610572610878366004612cdd565b611327565b34801561088957600080fd5b50601c546001600160a01b0316610391565b3480156108a757600080fd5b50610572611390565b3480156108bc57600080fd5b506040805180820190915260018152600b60fb1b6020820152610453565b3480156108e657600080fd5b5061049f6108f5366004612b96565b6114f4565b34801561090657600080fd5b506103c4610bb881565b34801561091c57600080fd5b50601b546103c4565b34801561093157600080fd5b5060155461049f9060ff1681565b34801561094b57600080fd5b5061057261095a366004612d28565b61150b565b34801561096b57600080fd5b50600b546109ac9061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b8204811691600160501b90041686565b6040805161ffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0016103a5565b3480156109f557600080fd5b506103c4610a04366004612d44565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a3b57600080fd5b50610572610a4a366004612d7d565b611594565b348015610a5b57600080fd5b50601954610391906201000090046001600160a01b031681565b348015610a8157600080fd5b50600e54600f54601054601154610aa8936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016103a5565b348015610ae757600080fd5b50610572610af6366004612b79565b61170b565b348015610b0757600080fd5b50610572610b16366004612de2565b611759565b348015610b2757600080fd5b506103c4601b5481565b348015610b3d57600080fd5b5060125461049f90610100900460ff1681565b6000610b5d33848461190e565b5060015b92915050565b6000610b756009600a612f0e565b601854610b829190612f1d565b905090565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610bec576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610be6908490612f3f565b90915550505b610bf7848484611a07565b949350505050565b601c546001600160a01b03163314610c325760405162461bcd60e51b8152600401610c2990612f56565b60405180910390fd5b6064600954610c419190612f1d565b8183600954610c509190612f81565b610c5a9190612f1d565b1015610cc15760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201526f37b3103a37ba30b61039bab838363c9760811b6064820152608401610c29565b8082600954610cd09190612f81565b610cda9190612f1d565b6018555050565b6000610ced600061127d565b610cf861dead61127d565b610d029190612fa0565b600954610b829190612f3f565b601c546001600160a01b03163314610d395760405162461bcd60e51b8152600401610c2990612f56565b6107d08361ffff1611158015610d555750610bb88261ffff1611155b8015610d6757506107d08161ffff1611155b610db35760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610c29565b610fa0610dc08385612fb8565b61ffff161115610e125760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610c29565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b601c546001600160a01b03163314610e7a5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601c546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610c2990612f56565b6103e86009546005610ee19190612f81565b610eeb9190612f1d565b8183600954610efa9190612f81565b610f049190612f1d565b1015610f785760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610c29565b8082600954610f879190612f81565b610f919190612f1d565b6017555050565b600d54600090612710908390610fb6906001600160a01b031661127d565b610fc09190612f81565b610b619190612f1d565b601c546001600160a01b03163314610ff45760405162461bcd60e51b8152600401610c2990612f56565b609681111561103e5760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610c29565b601655565b601c546001600160a01b0316331461106d5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b0381166110935760405162461bcd60e51b8152600401610c2990612fde565b6001600160a01b03811661dead14156110be5760405162461bcd60e51b8152600401610c2990612fde565b601c546110d5906001600160a01b031660006111c1565b6110e08160016111c1565b601c546000906110f8906001600160a01b031661127d565b111561112457601c54611122906001600160a01b0316826111188261127d565b6000806001611e58565b505b601c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601c546001600160a01b031633146111a05760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03166000908152600860205260409020805460ff19169055565b601c546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601c546001600160a01b031633146112405760405162461bcd60e51b8152600401610c2990612f56565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b60006112706009600a612f0e565b601754610b829190612f1d565b6001600160a01b031660009081526001602052604090205490565b601c546001600160a01b031633146112c25760405162461bcd60e51b8152600401610c2990612f56565b601c546112d9906001600160a01b031660006111c1565b601c80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601c546001600160a01b031633146113515760405162461bcd60e51b8152600401610c2990612f56565b600e80546001600160a01b039485166001600160a01b031991821617909155600f80549385169382169390931790925560108054919093169116179055565b601c546001600160a01b031633146113ba5760405162461bcd60e51b8152600401610c2990612f56565b60195460ff161561140d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610c29565b601954610100900460ff166114645760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610c29565b6019805460ff19166001179055600d546127109061148a906001600160a01b031661127d565b61149590600a612f81565b61149f9190612f1d565b601355600d54612710906114bb906001600160a01b031661127d565b6114c690601e612f81565b6114d09190612f1d565b601455600c546114f290309061010090046001600160a01b031660001961190e565b565b6000611501338484611a07565b5060019392505050565b601c546001600160a01b031633146115355760405162461bcd60e51b8152600401610c2990612f56565b6012805461ff001916610100841515908102919091179091556015805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b601c546001600160a01b031633146115be5760405162461bcd60e51b8152600401610c2990612f56565b600b805461ffff87811663ffffffff199092169190911762010000878316021767ffffffff000000001916600160201b8683160267ffff000000000000191617600160301b858316021769ffff00000000000000001916600160401b9184169190910217905580836116308688612fb8565b61163a9190612fb8565b6116449190612fb8565b600b805461ffff60501b1916600160501b61ffff93841602179055600a546000916116789162010000810482169116612fb8565b600b5461ffff918216925082916116a191600160301b8104821691600160501b90910416612fb8565b61ffff1611156117035760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610c29565b505050505050565b601c546001600160a01b031633146117355760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b601c546001600160a01b031633146117835760405162461bcd60e51b8152600401610c2990612f56565b82846009546117929190612f81565b61179c9190612f1d565b60135560095481906117af908490612f81565b6117b99190612f1d565b601481905560135411156118195760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610c29565b600d5461271090611832906001600160a01b031661127d565b61183d906096612f81565b6118479190612f1d565b60145411156118a45760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610c29565b620f42406009546118b59190612f1d565b60145410156118d65760405162461bcd60e51b8152600401610c299061303b565b620f42406009546118e79190612f1d565b60135410156119085760405162461bcd60e51b8152600401610c299061303b565b50505050565b6001600160a01b03831661195a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610c29565b6001600160a01b0382166119a65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610c29565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c29565b6001600160a01b038316611acf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c29565b60008211611b315760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c29565b6001600160a01b03841660009081526008602052604090205460ff16158015611b7357506001600160a01b03831660009081526008602052604090205460ff16155b611b7c57600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff1615611baa5760019250611bd8565b6001600160a01b03861660009081526002602052604090205460ff1615611bd45760019150611bd8565b5060015b611be28787612015565b15611daf5760195460ff16611c395760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610c29565b8280611c425750815b15611cf1576001600160a01b03871660009081526007602052604090205460ff16158015611c8957506001600160a01b03861660009081526007602052604090205460ff16155b15611cf157601754851115611cf15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c29565b600c546001600160a01b038781166101009092041614801590611d12575081155b15611daf576001600160a01b03861660009081526007602052604090205460ff16611daf5760185485611d448861127d565b611d4e9190612fa0565b1115611daf5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610c29565b8115611e3f5760125460ff16611e3f57601254610100900460ff1615611e3f576000611dda3061127d565b90506013548110611e3d5760145460155460ff1615611e2757601654600d546127109190611e10906001600160a01b031661127d565b611e1a9190612f81565b611e249190612f1d565b90505b808210611e32578091505b611e3b826120ec565b505b505b611e4d878787868686611e58565b979650505050505050565b601954600090610100900460ff16611ef357611e748787612722565b601954610100900460ff16158015611e915750611e918787612015565b8015611e9b575081155b15611ef35760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610c29565b6001600160a01b03871660009081526006602052604090205460019060ff1680611f3557506001600160a01b03871660009081526006602052604090205460ff165b15611f3e575060005b6001600160a01b03881660009081526001602052604081208054889290611f66908490612f3f565b909155506000905081611f795786611f85565b611f858987878a61283a565b6001600160a01b038916600090815260016020526040812080549293508392909190611fb2908490612fa0565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ffe91815260200190565b60405180910390a350600198975050505050505050565b601c546000906001600160a01b038481169116148015906120445750601c546001600160a01b03838116911614155b801561205b5750601c546001600160a01b03163214155b801561208057506001600160a01b03821660009081526005602052604090205460ff16155b80156120a557506001600160a01b03831660009081526005602052604090205460ff16155b80156120bc57506001600160a01b03821661dead14155b80156120d057506001600160a01b03821615155b80156120e557506001600160a01b0383163014155b9392505050565b6012805460ff191660011790556040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a082018190526121625750612715565b306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902054600019146121c557306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600060028260a0015161ffff16836000015161ffff16856121e69190612f81565b6121f09190612f1d565b6121fa9190612f1d565b905060006122088285612f3f565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061224257612242613089565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061309f565b816001815181106122fb576122fb613089565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac94790612348908590600090869030904290600401613100565b600060405180830381600087803b15801561236257600080fd5b505af1925050508015612373575060015b6123805750505050612715565b4760008361238e8684612f81565b6123989190612f1d565b9050841561248d57600c5460105460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c4016060604051808303818588803b15801561241057600080fd5b505af193505050508015612441575060408051601f3d908101601f1916820190925261243e9181019061313c565b60015b61245057505050505050612715565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6124978183612f3f565b915085600001518660a0018181516124af919061316a565b61ffff90811690915260a08801516040890151600093508392918216916124d7911686612f81565b6124e19190612f1d565b6019549091506000906201000090046001600160a01b031661250457600061252b565b8860a0015161ffff16896080015161ffff16866125219190612f81565b61252b9190612f1d565b905060006125398284612fa0565b6125439087612f3f565b905080156125a857600e546040516001600160a01b03909116906188b89083906000818181858888f193505050503d806000811461259d576040519150601f19603f3d011682016040523d82523d6000602084013e6125a2565b606091505b50909450505b821561260b57600f546040516001600160a01b03909116906188b89085906000818181858888f193505050503d8060008114612600576040519150601f19603f3d011682016040523d82523d6000602084013e612605565b606091505b50909450505b811561270a57600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561265f57600080fd5b505afa158015612673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612697919061309f565b876000815181106126aa576126aa613089565b6001600160a01b03928316602091820292909201015260195488516201000090910490911690889060019081106126e3576126e3613089565b6001600160a01b03928316602091820292909201015260115461270a918991859116612a35565b505050505050505050505b506012805460ff19169055565b601954610100900460ff16156127865760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610c29565b6127908282612015565b1580156127aa5750600d546001600160a01b038281169116145b15612836576001600160a01b03821660009081526005602090815260408083208054600160ff1991821681179092556006845293829020805490941681179093556019805461010061ff00199182168117909255601280549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611588565b5050565b6040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a08201526000908185156128ae5750600a5461ffff166128d7565b84156128c75750600a5462010000900461ffff166128d7565b50600a54600160201b900461ffff165b60006127106128e68387612f81565b6128f09190612f1d565b905060008360a0015184606001516129089190612fb8565b61ffff16846060015161ffff16836129209190612f81565b61292a9190612f1d565b905060006129388284612f3f565b905080156129a557306000908152600160205260408120805483929061295f908490612fa0565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b8115612a1d5781600960008282546129bd9190612f3f565b9250508190555081601b60008282546129d69190612fa0565b90915550506040518281526000906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612a278388612f3f565b9a9950505050505050505050565b600c5460405163b6f9de9560e01b81526101009091046001600160a01b03169063b6f9de95908490612a729060009088908790429060040161318d565b6000604051808303818588803b158015612a8b57600080fd5b505af193505050508015612a9d575060015b612aa657505050565b601960029054906101000a90046001600160a01b03166001600160a01b031683600181518110612ad857612ad8613089565b60200260200101516001600160a01b03161415612b075781601a6000828254612b019190612fa0565b90915550505b505050565b600060208083528351808285015260005b81811015612b3957858101830151858201604001528201612b1d565b81811115612b4b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612b7657600080fd5b50565b600060208284031215612b8b57600080fd5b81356120e581612b61565b60008060408385031215612ba957600080fd5b8235612bb481612b61565b946020939093013593505050565b600080600060608486031215612bd757600080fd5b8335612be281612b61565b92506020840135612bf281612b61565b929592945050506040919091013590565b60008060408385031215612c1657600080fd5b50508035926020909101359150565b803561ffff81168114612c3757600080fd5b919050565b600080600060608486031215612c5157600080fd5b612c5a84612c25565b9250612c6860208501612c25565b9150612c7660408501612c25565b90509250925092565b80358015158114612c3757600080fd5b60008060408385031215612ca257600080fd5b8235612cad81612b61565b9150612cbb60208401612c7f565b90509250929050565b600060208284031215612cd657600080fd5b5035919050565b600080600060608486031215612cf257600080fd5b8335612cfd81612b61565b92506020840135612d0d81612b61565b91506040840135612d1d81612b61565b809150509250925092565b60008060408385031215612d3b57600080fd5b612cad83612c7f565b60008060408385031215612d5757600080fd5b8235612d6281612b61565b91506020830135612d7281612b61565b809150509250929050565b600080600080600060a08688031215612d9557600080fd5b612d9e86612c25565b9450612dac60208701612c25565b9350612dba60408701612c25565b9250612dc860608701612c25565b9150612dd660808701612c25565b90509295509295909350565b60008060008060808587031215612df857600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e65578160001904821115612e4b57612e4b612e14565b80851615612e5857918102915b93841c9390800290612e2f565b509250929050565b600082612e7c57506001610b61565b81612e8957506000610b61565b8160018114612e9f5760028114612ea957612ec5565b6001915050610b61565b60ff841115612eba57612eba612e14565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612ee8575081810a610b61565b612ef28383612e2a565b8060001904821115612f0657612f06612e14565b029392505050565b60006120e560ff841683612e6d565b600082612f3a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612f5157612f51612e14565b500390565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b6000816000190483118215151615612f9b57612f9b612e14565b500290565b60008219821115612fb357612fb3612e14565b500190565b600061ffff808316818516808303821115612fd557612fd5612e14565b01949350505050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156130b157600080fd5b81516120e581612b61565b600081518084526020808501945080840160005b838110156130f55781516001600160a01b0316875295820195908201906001016130d0565b509495945050505050565b85815284602082015260a06040820152600061311f60a08301866130bc565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561315157600080fd5b8351925060208401519150604084015190509250925092565b600061ffff8381169083168181101561318557613185612e14565b039392505050565b8481526080602082015260006131a660808301866130bc565b6001600160a01b0394909416604083015250606001529291505056fea26469706673582212209ee3019c2a1e7a0242de3cb5261e0939d422f70f8fd99a83ee9a3b5a8324286064736f6c63430008090033
Deployed Bytecode
0x60806040526004361061036f5760003560e01c80634fbee193116101c6578063b1b08f71116100f7578063f08f43a211610095578063f9f92be41161006f578063f9f92be414610adb578063fb78680d14610afb578063fd01bd4c14610b1b578063fdb78c0e14610b3157600080fd5b8063f08f43a214610a2f578063f8ec691114610a4f578063f94aa1b414610a7557600080fd5b8063b7df8b36116100d1578063b7df8b3614610925578063bfc2fc351461093f578063cf8477061461095f578063dd62ed3e146109e957600080fd5b8063b1b08f711461059f578063b3d514fb146108fa578063b55cd04b1461091057600080fd5b806370a0823111610164578063893d20e81161013e578063893d20e81461087d5780638a8c523c1461089b57806395d89b41146108b0578063a9059cbb146108da57600080fd5b806370a0823114610828578063715018a61461084857806375cb1bd11461085d57600080fd5b8063590ffdce116101a0578063590ffdce1461079a5780635cce86cd146107ba5780636e182809146107f35780636ebd00781461081357600080fd5b80634fbee1931461072257806350a8e0161461075b578063537df3b61461077a57600080fd5b80632b28fc7a116102a057806346ea7ac81161023e5780634b3c109a116102185780634b3c109a146106ac5780634bbb93eb146106c25780634e718e48146106e25780634fb2e45d1461070257600080fd5b806346ea7ac814610667578063487260211461067d5780634ada218b1461069257600080fd5b806332cde6641161027a57806332cde664146105e757806336fddb04146106075780633f3cf56c14610627578063452ed4f11461064757600080fd5b80632b28fc7a1461059f5780632e8fa821146105b5578063313ce567146105cb57600080fd5b8063095ea7b31161030d57806323b872dd116102e757806323b872dd14610532578063260039571461055257806328577751146105745780632b112e491461058a57600080fd5b8063095ea7b3146104e85780630fa604e41461050857806318160ddd1461051d57600080fd5b806306fdde031161034957806306fdde03146104275780630758d9241461046057806307dd79e014610485578063084e4f8a146104af57600080fd5b806303fd2a451461037b5780630445b667146103ae578063069d955f146103d257600080fd5b3661037657005b600080fd5b34801561038757600080fd5b5061039161dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103ba57600080fd5b506103c460135481565b6040519081526020016103a5565b3480156103de57600080fd5b50600a546104029061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103a5565b34801561043357600080fd5b506040805180820190915260078152662c2330b1ba37b960c91b60208201525b6040516103a59190612b0c565b34801561046c57600080fd5b50600c546103919061010090046001600160a01b031681565b34801561049157600080fd5b50600c5461049f9060ff1681565b60405190151581526020016103a5565b3480156104bb57600080fd5b5061049f6104ca366004612b79565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156104f457600080fd5b5061049f610503366004612b96565b610b50565b34801561051457600080fd5b506103c4610b67565b34801561052957600080fd5b506009546103c4565b34801561053e57600080fd5b5061049f61054d366004612bc2565b610b87565b34801561055e57600080fd5b5061057261056d366004612c03565b610bff565b005b34801561058057600080fd5b506103c460165481565b34801561059657600080fd5b506103c4610ce1565b3480156105ab57600080fd5b506103c46107d081565b3480156105c157600080fd5b506103c460145481565b3480156105d757600080fd5b50604051600981526020016103a5565b3480156105f357600080fd5b50610572610602366004612c3c565b610d0f565b34801561061357600080fd5b50610572610622366004612c8f565b610e50565b34801561063357600080fd5b50610572610642366004612c03565b610ea5565b34801561065357600080fd5b50600d54610391906001600160a01b031681565b34801561067357600080fd5b506103c4610fa081565b34801561068957600080fd5b50601a546103c4565b34801561069e57600080fd5b5060195461049f9060ff1681565b3480156106b857600080fd5b506103c4601a5481565b3480156106ce57600080fd5b506103c46106dd366004612cc4565b610f98565b3480156106ee57600080fd5b506105726106fd366004612cc4565b610fca565b34801561070e57600080fd5b5061057261071d366004612b79565b611043565b34801561072e57600080fd5b5061049f61073d366004612b79565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561076757600080fd5b5060195461049f90610100900460ff1681565b34801561078657600080fd5b50610572610795366004612b79565b611176565b3480156107a657600080fd5b506105726107b5366004612c8f565b6111c1565b3480156107c657600080fd5b5061049f6107d5366004612b79565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107ff57600080fd5b5061057261080e366004612b79565b611216565b34801561081f57600080fd5b506103c4611262565b34801561083457600080fd5b506103c4610843366004612b79565b61127d565b34801561085457600080fd5b50610572611298565b34801561086957600080fd5b50610572610878366004612cdd565b611327565b34801561088957600080fd5b50601c546001600160a01b0316610391565b3480156108a757600080fd5b50610572611390565b3480156108bc57600080fd5b506040805180820190915260018152600b60fb1b6020820152610453565b3480156108e657600080fd5b5061049f6108f5366004612b96565b6114f4565b34801561090657600080fd5b506103c4610bb881565b34801561091c57600080fd5b50601b546103c4565b34801561093157600080fd5b5060155461049f9060ff1681565b34801561094b57600080fd5b5061057261095a366004612d28565b61150b565b34801561096b57600080fd5b50600b546109ac9061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b8204811691600160501b90041686565b6040805161ffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0016103a5565b3480156109f557600080fd5b506103c4610a04366004612d44565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a3b57600080fd5b50610572610a4a366004612d7d565b611594565b348015610a5b57600080fd5b50601954610391906201000090046001600160a01b031681565b348015610a8157600080fd5b50600e54600f54601054601154610aa8936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080016103a5565b348015610ae757600080fd5b50610572610af6366004612b79565b61170b565b348015610b0757600080fd5b50610572610b16366004612de2565b611759565b348015610b2757600080fd5b506103c4601b5481565b348015610b3d57600080fd5b5060125461049f90610100900460ff1681565b6000610b5d33848461190e565b5060015b92915050565b6000610b756009600a612f0e565b601854610b829190612f1d565b905090565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610bec576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610be6908490612f3f565b90915550505b610bf7848484611a07565b949350505050565b601c546001600160a01b03163314610c325760405162461bcd60e51b8152600401610c2990612f56565b60405180910390fd5b6064600954610c419190612f1d565b8183600954610c509190612f81565b610c5a9190612f1d565b1015610cc15760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201526f37b3103a37ba30b61039bab838363c9760811b6064820152608401610c29565b8082600954610cd09190612f81565b610cda9190612f1d565b6018555050565b6000610ced600061127d565b610cf861dead61127d565b610d029190612fa0565b600954610b829190612f3f565b601c546001600160a01b03163314610d395760405162461bcd60e51b8152600401610c2990612f56565b6107d08361ffff1611158015610d555750610bb88261ffff1611155b8015610d6757506107d08161ffff1611155b610db35760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610c29565b610fa0610dc08385612fb8565b61ffff161115610e125760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610c29565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b601c546001600160a01b03163314610e7a5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601c546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610c2990612f56565b6103e86009546005610ee19190612f81565b610eeb9190612f1d565b8183600954610efa9190612f81565b610f049190612f1d565b1015610f785760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610c29565b8082600954610f879190612f81565b610f919190612f1d565b6017555050565b600d54600090612710908390610fb6906001600160a01b031661127d565b610fc09190612f81565b610b619190612f1d565b601c546001600160a01b03163314610ff45760405162461bcd60e51b8152600401610c2990612f56565b609681111561103e5760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610c29565b601655565b601c546001600160a01b0316331461106d5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b0381166110935760405162461bcd60e51b8152600401610c2990612fde565b6001600160a01b03811661dead14156110be5760405162461bcd60e51b8152600401610c2990612fde565b601c546110d5906001600160a01b031660006111c1565b6110e08160016111c1565b601c546000906110f8906001600160a01b031661127d565b111561112457601c54611122906001600160a01b0316826111188261127d565b6000806001611e58565b505b601c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601c546001600160a01b031633146111a05760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03166000908152600860205260409020805460ff19169055565b601c546001600160a01b031633146111eb5760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b601c546001600160a01b031633146112405760405162461bcd60e51b8152600401610c2990612f56565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b60006112706009600a612f0e565b601754610b829190612f1d565b6001600160a01b031660009081526001602052604090205490565b601c546001600160a01b031633146112c25760405162461bcd60e51b8152600401610c2990612f56565b601c546112d9906001600160a01b031660006111c1565b601c80546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b601c546001600160a01b031633146113515760405162461bcd60e51b8152600401610c2990612f56565b600e80546001600160a01b039485166001600160a01b031991821617909155600f80549385169382169390931790925560108054919093169116179055565b601c546001600160a01b031633146113ba5760405162461bcd60e51b8152600401610c2990612f56565b60195460ff161561140d5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610c29565b601954610100900460ff166114645760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610c29565b6019805460ff19166001179055600d546127109061148a906001600160a01b031661127d565b61149590600a612f81565b61149f9190612f1d565b601355600d54612710906114bb906001600160a01b031661127d565b6114c690601e612f81565b6114d09190612f1d565b601455600c546114f290309061010090046001600160a01b031660001961190e565b565b6000611501338484611a07565b5060019392505050565b601c546001600160a01b031633146115355760405162461bcd60e51b8152600401610c2990612f56565b6012805461ff001916610100841515908102919091179091556015805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b601c546001600160a01b031633146115be5760405162461bcd60e51b8152600401610c2990612f56565b600b805461ffff87811663ffffffff199092169190911762010000878316021767ffffffff000000001916600160201b8683160267ffff000000000000191617600160301b858316021769ffff00000000000000001916600160401b9184169190910217905580836116308688612fb8565b61163a9190612fb8565b6116449190612fb8565b600b805461ffff60501b1916600160501b61ffff93841602179055600a546000916116789162010000810482169116612fb8565b600b5461ffff918216925082916116a191600160301b8104821691600160501b90910416612fb8565b61ffff1611156117035760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610c29565b505050505050565b601c546001600160a01b031633146117355760405162461bcd60e51b8152600401610c2990612f56565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b601c546001600160a01b031633146117835760405162461bcd60e51b8152600401610c2990612f56565b82846009546117929190612f81565b61179c9190612f1d565b60135560095481906117af908490612f81565b6117b99190612f1d565b601481905560135411156118195760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610c29565b600d5461271090611832906001600160a01b031661127d565b61183d906096612f81565b6118479190612f1d565b60145411156118a45760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610c29565b620f42406009546118b59190612f1d565b60145410156118d65760405162461bcd60e51b8152600401610c299061303b565b620f42406009546118e79190612f1d565b60135410156119085760405162461bcd60e51b8152600401610c299061303b565b50505050565b6001600160a01b03831661195a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610c29565b6001600160a01b0382166119a65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610c29565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a6d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c29565b6001600160a01b038316611acf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c29565b60008211611b315760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c29565b6001600160a01b03841660009081526008602052604090205460ff16158015611b7357506001600160a01b03831660009081526008602052604090205460ff16155b611b7c57600080fd5b6001600160a01b0384166000908152600260205260408120548190819060ff1615611baa5760019250611bd8565b6001600160a01b03861660009081526002602052604090205460ff1615611bd45760019150611bd8565b5060015b611be28787612015565b15611daf5760195460ff16611c395760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610c29565b8280611c425750815b15611cf1576001600160a01b03871660009081526007602052604090205460ff16158015611c8957506001600160a01b03861660009081526007602052604090205460ff16155b15611cf157601754851115611cf15760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c29565b600c546001600160a01b038781166101009092041614801590611d12575081155b15611daf576001600160a01b03861660009081526007602052604090205460ff16611daf5760185485611d448861127d565b611d4e9190612fa0565b1115611daf5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610c29565b8115611e3f5760125460ff16611e3f57601254610100900460ff1615611e3f576000611dda3061127d565b90506013548110611e3d5760145460155460ff1615611e2757601654600d546127109190611e10906001600160a01b031661127d565b611e1a9190612f81565b611e249190612f1d565b90505b808210611e32578091505b611e3b826120ec565b505b505b611e4d878787868686611e58565b979650505050505050565b601954600090610100900460ff16611ef357611e748787612722565b601954610100900460ff16158015611e915750611e918787612015565b8015611e9b575081155b15611ef35760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610c29565b6001600160a01b03871660009081526006602052604090205460019060ff1680611f3557506001600160a01b03871660009081526006602052604090205460ff165b15611f3e575060005b6001600160a01b03881660009081526001602052604081208054889290611f66908490612f3f565b909155506000905081611f795786611f85565b611f858987878a61283a565b6001600160a01b038916600090815260016020526040812080549293508392909190611fb2908490612fa0565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ffe91815260200190565b60405180910390a350600198975050505050505050565b601c546000906001600160a01b038481169116148015906120445750601c546001600160a01b03838116911614155b801561205b5750601c546001600160a01b03163214155b801561208057506001600160a01b03821660009081526005602052604090205460ff16155b80156120a557506001600160a01b03831660009081526005602052604090205460ff16155b80156120bc57506001600160a01b03821661dead14155b80156120d057506001600160a01b03821615155b80156120e557506001600160a01b0383163014155b9392505050565b6012805460ff191660011790556040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a082018190526121625750612715565b306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902054600019146121c557306000908152600460209081526040808320600c5461010090046001600160a01b03168452909152902060001990555b600060028260a0015161ffff16836000015161ffff16856121e69190612f81565b6121f09190612f1d565b6121fa9190612f1d565b905060006122088285612f3f565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061224257612242613089565b60200260200101906001600160a01b031690816001600160a01b031681525050600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061309f565b816001815181106122fb576122fb613089565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b81526101009091049091169063791ac94790612348908590600090869030904290600401613100565b600060405180830381600087803b15801561236257600080fd5b505af1925050508015612373575060015b6123805750505050612715565b4760008361238e8684612f81565b6123989190612f1d565b9050841561248d57600c5460105460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a4820152610100909204169063f305d71990839060c4016060604051808303818588803b15801561241057600080fd5b505af193505050508015612441575060408051601f3d908101601f1916820190925261243e9181019061313c565b60015b61245057505050505050612715565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6124978183612f3f565b915085600001518660a0018181516124af919061316a565b61ffff90811690915260a08801516040890151600093508392918216916124d7911686612f81565b6124e19190612f1d565b6019549091506000906201000090046001600160a01b031661250457600061252b565b8860a0015161ffff16896080015161ffff16866125219190612f81565b61252b9190612f1d565b905060006125398284612fa0565b6125439087612f3f565b905080156125a857600e546040516001600160a01b03909116906188b89083906000818181858888f193505050503d806000811461259d576040519150601f19603f3d011682016040523d82523d6000602084013e6125a2565b606091505b50909450505b821561260b57600f546040516001600160a01b03909116906188b89085906000818181858888f193505050503d8060008114612600576040519150601f19603f3d011682016040523d82523d6000602084013e612605565b606091505b50909450505b811561270a57600c60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561265f57600080fd5b505afa158015612673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612697919061309f565b876000815181106126aa576126aa613089565b6001600160a01b03928316602091820292909201015260195488516201000090910490911690889060019081106126e3576126e3613089565b6001600160a01b03928316602091820292909201015260115461270a918991859116612a35565b505050505050505050505b506012805460ff19169055565b601954610100900460ff16156127865760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610c29565b6127908282612015565b1580156127aa5750600d546001600160a01b038281169116145b15612836576001600160a01b03821660009081526005602090815260408083208054600160ff1991821681179092556006845293829020805490941681179093556019805461010061ff00199182168117909255601280549091169091179055519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579101611588565b5050565b6040805160c081018252600b5461ffff808216835262010000820481166020840152600160201b8204811693830193909352600160301b810483166060830152600160401b810483166080830152600160501b900490911660a08201526000908185156128ae5750600a5461ffff166128d7565b84156128c75750600a5462010000900461ffff166128d7565b50600a54600160201b900461ffff165b60006127106128e68387612f81565b6128f09190612f1d565b905060008360a0015184606001516129089190612fb8565b61ffff16846060015161ffff16836129209190612f81565b61292a9190612f1d565b905060006129388284612f3f565b905080156129a557306000908152600160205260408120805483929061295f908490612fa0565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b8115612a1d5781600960008282546129bd9190612f3f565b9250508190555081601b60008282546129d69190612fa0565b90915550506040518281526000906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612a278388612f3f565b9a9950505050505050505050565b600c5460405163b6f9de9560e01b81526101009091046001600160a01b03169063b6f9de95908490612a729060009088908790429060040161318d565b6000604051808303818588803b158015612a8b57600080fd5b505af193505050508015612a9d575060015b612aa657505050565b601960029054906101000a90046001600160a01b03166001600160a01b031683600181518110612ad857612ad8613089565b60200260200101516001600160a01b03161415612b075781601a6000828254612b019190612fa0565b90915550505b505050565b600060208083528351808285015260005b81811015612b3957858101830151858201604001528201612b1d565b81811115612b4b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612b7657600080fd5b50565b600060208284031215612b8b57600080fd5b81356120e581612b61565b60008060408385031215612ba957600080fd5b8235612bb481612b61565b946020939093013593505050565b600080600060608486031215612bd757600080fd5b8335612be281612b61565b92506020840135612bf281612b61565b929592945050506040919091013590565b60008060408385031215612c1657600080fd5b50508035926020909101359150565b803561ffff81168114612c3757600080fd5b919050565b600080600060608486031215612c5157600080fd5b612c5a84612c25565b9250612c6860208501612c25565b9150612c7660408501612c25565b90509250925092565b80358015158114612c3757600080fd5b60008060408385031215612ca257600080fd5b8235612cad81612b61565b9150612cbb60208401612c7f565b90509250929050565b600060208284031215612cd657600080fd5b5035919050565b600080600060608486031215612cf257600080fd5b8335612cfd81612b61565b92506020840135612d0d81612b61565b91506040840135612d1d81612b61565b809150509250925092565b60008060408385031215612d3b57600080fd5b612cad83612c7f565b60008060408385031215612d5757600080fd5b8235612d6281612b61565b91506020830135612d7281612b61565b809150509250929050565b600080600080600060a08688031215612d9557600080fd5b612d9e86612c25565b9450612dac60208701612c25565b9350612dba60408701612c25565b9250612dc860608701612c25565b9150612dd660808701612c25565b90509295509295909350565b60008060008060808587031215612df857600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612e65578160001904821115612e4b57612e4b612e14565b80851615612e5857918102915b93841c9390800290612e2f565b509250929050565b600082612e7c57506001610b61565b81612e8957506000610b61565b8160018114612e9f5760028114612ea957612ec5565b6001915050610b61565b60ff841115612eba57612eba612e14565b50506001821b610b61565b5060208310610133831016604e8410600b8410161715612ee8575081810a610b61565b612ef28383612e2a565b8060001904821115612f0657612f06612e14565b029392505050565b60006120e560ff841683612e6d565b600082612f3a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612f5157612f51612e14565b500390565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b6000816000190483118215151615612f9b57612f9b612e14565b500290565b60008219821115612fb357612fb3612e14565b500190565b600061ffff808316818516808303821115612fd557612fd5612e14565b01949350505050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156130b157600080fd5b81516120e581612b61565b600081518084526020808501945080840160005b838110156130f55781516001600160a01b0316875295820195908201906001016130d0565b509495945050505050565b85815284602082015260a06040820152600061311f60a08301866130bc565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561315157600080fd5b8351925060208401519150604084015190509250925092565b600061ffff8381169083168181101561318557613185612e14565b039392505050565b8481526080602082015260006131a660808301866130bc565b6001600160a01b0394909416604083015250606001529291505056fea26469706673582212209ee3019c2a1e7a0242de3cb5261e0939d422f70f8fd99a83ee9a3b5a8324286064736f6c63430008090033
Deployed Bytecode Sourcemap
3649:21112:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5393:73;;;;;;;;;;;;5424:42;5393:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5393:73:0;;;;;;;;6036:28;;;;;;;;;;;;;;;;;;;368:25:1;;;356:2;341:18;6036:28:0;222:177:1;4732:110:0;;;;;;;;;;-1:-1:-1;4732:110:0;;;;;;;;;;;;;;;-1:-1:-1;;;4732:110: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;4732:110:0;404:365:1;10527:80:0;;;;;;;;;;-1:-1:-1;10599:5:0;;;;;;;;;;;;-1:-1:-1;;;10599:5:0;;;;10527:80;;;;;;;:::i;5332:26::-;;;;;;;;;;-1:-1:-1;5332:26:0;;;;;;;-1:-1:-1;;;;;5332:26:0;;;5299;;;;;;;;;;-1:-1:-1;5299:26:0;;;;;;;;;;;1766:14:1;;1759:22;1741:41;;1729:2;1714:18;5299:26:0;1601:187:1;24636:120:0;;;;;;;;;;-1:-1:-1;24636:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;24734:14:0;24710:4;24734:14;;;:4;:14;;;;;;;;;24636:120;11135:161;;;;;;;;;;-1:-1:-1;11135:161:0;;;;;:::i;:::-;;:::i;14835:114::-;;;;;;;;;;;;;:::i;10262:83::-;;;;;;;;;;-1:-1:-1;10335:7:0;;10262:83;;11622:306;;;;;;;;;;-1:-1:-1;11622:306:0;;;;;:::i;:::-;;:::i;14447:264::-;;;;;;;;;;-1:-1:-1;14447:264:0;;;;;:::i;:::-;;:::i;:::-;;6144:33;;;;;;;;;;;;;;;;12501:141;;;;;;;;;;;;;:::i;5043:42::-;;;;;;;;;;;;5081:4;5043:42;;6071:25;;;;;;;;;;;;;;;;10351:80;;;;;;;;;;-1:-1:-1;10351:80:0;;4364:1;3357:36:1;;3345:2;3330:18;10351:80:0;3215:184:1;12650:488:0;;;;;;;;;;-1:-1:-1;12650:488:0;;;;;:::i;:::-;;:::i;12211:140::-;;;;;;;;;;-1:-1:-1;12211:140:0;;;;;:::i;:::-;;:::i;14166:273::-;;;;;;;;;;-1:-1:-1;14166:273:0;;;;;:::i;:::-;;:::i;5365:21::-;;;;;;;;;;-1:-1:-1;5365:21:0;;;;-1:-1:-1;;;;;5365:21:0;;;5196:46;;;;;;;;;;;;5238:4;5196:46;;16357:134;;;;;;;;;;-1:-1:-1;16470:13:0;;16357:134;;6308:34;;;;;;;;;;-1:-1:-1;6308:34:0;;;;;;;;6441:28;;;;;;;;;;;;;;;;14957:189;;;;;;;;;;-1:-1:-1;14957:189:0;;;;;:::i;:::-;;:::i;15861:217::-;;;;;;;;;;-1:-1:-1;15861:217:0;;;;;:::i;:::-;;:::i;9020:654::-;;;;;;;;;;-1:-1:-1;9020:654:0;;;;;:::i;:::-;;:::i;12076:127::-;;;;;;;;;;-1:-1:-1;12076:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12167:28:0;12143:4;12167:28;;;:19;:28;;;;;;;;;12076:127;6349:36;;;;;;;;;;-1:-1:-1;6349:36:0;;;;;;;;;;;24516:108;;;;;;;;;;-1:-1:-1;24516:108:0;;;;;:::i;:::-;;:::i;12359:134::-;;;;;;;;;;-1:-1:-1;12359:134:0;;;;;:::i;:::-;;:::i;11936:132::-;;;;;;;;;;-1:-1:-1;11936:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;12030:30:0;12006:4;12030:30;;;:21;:30;;;;;;;;;11936:132;14022:136;;;;;;;;;;-1:-1:-1;14022:136:0;;;;;:::i;:::-;;:::i;14719:108::-;;;;;;;;;;;;;:::i;10837:117::-;;;;;;;;;;-1:-1:-1;10837:117:0;;;;;:::i;:::-;;:::i;9682:225::-;;;;;;;;;;;;;:::i;13721:293::-;;;;;;;;;;-1:-1:-1;13721:293:0;;;;;:::i;:::-;;:::i;10613:79::-;;;;;;;;;;-1:-1:-1;10683:6:0;;-1:-1:-1;;;;;10683:6:0;10613:79;;22249:399;;;;;;;;;;;;;:::i;10437:84::-;;;;;;;;;;-1:-1:-1;10511:7:0;;;;;;;;;;;;-1:-1:-1;;;10511:7:0;;;;10437:84;;10962:165;;;;;;;;;;-1:-1:-1;10962:165:0;;;;;:::i;:::-;;:::i;5092:43::-;;;;;;;;;;;;5131:4;5092:43;;16499:115;;;;;;;;;;-1:-1:-1;16594:12:0;;16499:115;;6103:34;;;;;;;;;;-1:-1:-1;6103:34:0;;;;;;;;16086:263;;;;;;;;;;-1:-1:-1;16086:263:0;;;;;:::i;:::-;;:::i;4851:183::-;;;;;;;;;;-1:-1:-1;4851:183:0;;;;;;;;;;;;;;;-1:-1:-1;;;4851:183:0;;;;;-1:-1:-1;;;4851:183:0;;;;;-1:-1:-1;;;4851:183:0;;;;;-1:-1:-1;;;4851:183: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;4851:183:0;5642:602:1;10698:133:0;;;;;;;;;;-1:-1:-1;10698:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10800:19:0;;;10782:7;10800:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10698:133;13146:567;;;;;;;;;;-1:-1:-1;13146:567:0;;;;;:::i;:::-;;:::i;6394:38::-;;;;;;;;;;-1:-1:-1;6394:38:0;;;;;;;-1:-1:-1;;;;;6394:38:0;;;5653:306;;;;;;;;;;-1:-1:-1;5653:306:0;;;;;;;;;;-1:-1:-1;;;;;5653:306: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;5653:306:0;7121:529:1;24407:97:0;;;;;;;;;;-1:-1:-1;24407:97:0;;;;;:::i;:::-;;:::i;15154:699::-;;;;;;;;;;-1:-1:-1;15154:699:0;;;;;:::i;:::-;;:::i;6476:27::-;;;;;;;;;;;;;;;;5990:39;;;;;;;;;;-1:-1:-1;5990:39:0;;;;;;;;;;;11135:161;11212:4;11229:37;11238:10;11250:7;11259:6;11229:8;:37::i;:::-;-1:-1:-1;11284:4:0;11135:161;;;;;:::o;14835:114::-;14882:7;14927:13;4364:1;14927:2;:13;:::i;:::-;14909:14;;:32;;;;:::i;:::-;14902:39;;14835:114;:::o;11622:306::-;-1:-1:-1;;;;;11743:19:0;;11722:4;11743:19;;;:11;:19;;;;;;;;11763:10;11743:31;;;;;;;;-1:-1:-1;;11743:52:0;11739:126;;-1:-1:-1;;;;;11812:19:0;;;;;;:11;:19;;;;;;;;11832:10;11812:31;;;;;;;:41;;11847:6;;11812:19;:41;;11847:6;;11812:41;:::i;:::-;;;;-1:-1:-1;;11739:126:0;11884:36;11894:6;11902:9;11913:6;11884:9;:36::i;:::-;11877:43;11622:306;-1:-1:-1;;;;11622:306:0:o;14447:264::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;;;;;;;;;14589:3:::1;14579:7;;:13;;;;:::i;:::-;14567:7;14556;14546;;:17;;;;:::i;:::-;14545:29;;;;:::i;:::-;:48;;14537:109;;;::::0;-1:-1:-1;;;14537:109:0;;10633:2:1;14537: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;;14537:109:0::1;10431:412:1::0;14537:109:0::1;14696:7;14685;14675;;:17;;;;:::i;:::-;14674:29;;;;:::i;:::-;14657:14;:46:::0;-1:-1:-1;;14447:264:0:o;12501:141::-;12554:7;12611:21;12629:1;12611:9;:21::i;:::-;12593:15;5424:42;12593:9;:15::i;:::-;:39;;;;:::i;:::-;12582:7;;:51;;;;:::i;12650:488::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;5081:4:::1;12757:6;:21;;;;:65;;;;;5131:4;12799:7;:23;;;;12757:65;:117;;;;;5185:4;12843:11;:31;;;;12757:117;12749:170;;;::::0;-1:-1:-1;;;12749:170:0;;11183:2:1;12749:170:0::1;::::0;::::1;11165:21:1::0;11222:2;11202:18;;;11195:30;11261:25;11241:18;;;11234:53;11304:18;;12749:170:0::1;10981:347:1::0;12749:170:0::1;5238:4;12938:16;12947:7:::0;12938:6;:16:::1;:::i;:::-;:35;;;;12930:80;;;::::0;-1:-1:-1;;;12930:80:0;;11764:2:1;12930:80:0::1;::::0;::::1;11746:21:1::0;;;11783:18;;;11776:30;11842:34;11822:18;;;11815:62;11894:18;;12930:80:0::1;11562:356:1::0;12930:80:0::1;13021:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13057:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;13095:35:0::1;-1:-1:-1::0;;;13095:35:0;;;::::1;;::::0;;;::::1;::::0;;12650:488::o;12211:140::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12303:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;12303:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12211:140::o;14166:273::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;14311:4:::1;14297:7;;14307:1;14297:11;;;;:::i;:::-;:18;;;;:::i;:::-;14285:7;14274;14264;;:17;;;;:::i;:::-;14263:29;;;;:::i;:::-;:53;;14255:121;;;::::0;-1:-1:-1;;;14255:121:0;;12125:2:1;14255: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;;14255:121:0::1;11923:419:1::0;14255:121:0::1;14424:7;14413;14403;;:17;;;;:::i;:::-;14402:29;;;;:::i;:::-;14387:12;:44:::0;-1:-1:-1;;14166:273:0:o;14957:189::-;15086:6;;15048:7;;5285:5;;15096:21;;15076:17;;-1:-1:-1;;;;;15086:6:0;15076:9;:17::i;:::-;:41;;;;:::i;:::-;15075:62;;;;:::i;15861:217::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;15991:3:::1;15965:22;:29;;15957:64;;;::::0;-1:-1:-1;;;15957:64:0;;12549:2:1;15957: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;;15957:64:0::1;12347:346:1::0;15957:64:0::1;16032:13;:38:::0;15861:217::o;9020:654::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9099:22:0;::::1;9091:96;;;;-1:-1:-1::0;;;9091:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9206:16:0;::::1;5424:42;9206:16;;9198:90;;;;-1:-1:-1::0;;;9198:90:0::1;;;;;;;:::i;:::-;9319:6;::::0;9299:34:::1;::::0;-1:-1:-1;;;;;9319:6:0::1;;9299:19;:34::i;:::-;9344:35;9364:8;9374:4;9344:19;:35::i;:::-;9414:6;::::0;9424:1:::1;::::0;9404:17:::1;::::0;-1:-1:-1;;;;;9414:6:0::1;9404:9;:17::i;:::-;:21;9400:127;;;9459:6;::::0;9442:73:::1;::::0;-1:-1:-1;;;;;9459:6:0::1;9467:8:::0;9477:17:::1;9459:6:::0;9477:9:::1;:17::i;:::-;9496:5;9503::::0;9510:4:::1;9442:16;:73::i;:::-;;9400:127;9566:6;::::0;;-1:-1:-1;;;;;9583:17:0;;::::1;-1:-1:-1::0;;;;;;9583:17:0;::::1;::::0;::::1;::::0;;;9616:40:::1;::::0;9566:6;::::1;::::0;9583:17;9566:6;;9616:40:::1;::::0;9547:16:::1;::::0;9616:40:::1;9080:594;9020:654:::0;:::o;24516:108::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24594:14:0::1;24611:5;24594:14:::0;;;:4:::1;:14;::::0;;;;:22;;-1:-1:-1;;24594:22:0::1;::::0;;24516:108::o;12359:134::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12447:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12447:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12359:134::o;14022:136::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;14111:19;:39;;-1:-1:-1;;;;;;14111:39:0::1;-1:-1:-1::0;;;;;14111:39:0;;;::::1;::::0;;;::::1;::::0;;14022:136::o;14719:108::-;14762:7;14805:13;4364:1;14805:2;:13;:::i;:::-;14789:12;;:30;;;;:::i;10837:117::-;-1:-1:-1;;;;;10930:16:0;10903:7;10930:16;;;:7;:16;;;;;;;10837:117::o;9682:225::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;9761:6:::1;::::0;9741:34:::1;::::0;-1:-1:-1;;;;;9761:6:0::1;;9741:19;:34::i;:::-;9805:6;::::0;;-1:-1:-1;;;;;;9822:19:0;::::1;::::0;;;9857:42:::1;::::0;-1:-1:-1;;;;;9805:6:0;;::::1;::::0;9786:16:::1;::::0;9805:6;;9857:42:::1;::::0;9786:16;;9857:42:::1;9730:177;9682:225::o:0;13721:293::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;13854:11:::1;:42:::0;;-1:-1:-1;;;;;13854:42:0;;::::1;-1:-1:-1::0;;;;;;13854:42:0;;::::1;;::::0;;;13907:23;:46;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;13964:21;:42;;;;;::::1;::::0;::::1;;::::0;;13721:293::o;22249:399::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;22311:14:::1;::::0;::::1;;22310:15;22302:52;;;::::0;-1:-1:-1;;;22302:52:0;;13330:2:1;22302:52:0::1;::::0;::::1;13312:21:1::0;13369:2;13349:18;;;13342:30;13408:26;13388:18;;;13381:54;13452:18;;22302:52:0::1;13128:348:1::0;22302:52:0::1;22373:16;::::0;::::1;::::0;::::1;;;22365:53;;;::::0;-1:-1:-1;;;22365:53:0;;13683:2:1;22365:53:0::1;::::0;::::1;13665:21:1::0;13722:2;13702:18;;;13695:30;13761:26;13741:18;;;13734:54;13805:18;;22365:53:0::1;13481:348:1::0;22365:53:0::1;22429:14;:21:::0;;-1:-1:-1;;22429:21:0::1;22446:4;22429:21;::::0;;22488:6:::1;::::0;22504:5:::1;::::0;22478:17:::1;::::0;-1:-1:-1;;;;;22488:6:0::1;22478:9;:17::i;:::-;:22;::::0;22498:2:::1;22478:22;:::i;:::-;22477:32;;;;:::i;:::-;22461:13;:48:::0;22544:6:::1;::::0;22560:5:::1;::::0;22534:17:::1;::::0;-1:-1:-1;;;;;22544:6:0::1;22534:9;:17::i;:::-;:22;::::0;22554:2:::1;22534:22;:::i;:::-;22533:32;;;;:::i;:::-;22520:10;:45:::0;22608:9:::1;::::0;22576:62:::1;::::0;22593:4:::1;::::0;22608:9:::1;::::0;::::1;-1:-1:-1::0;;;;;22608:9:0::1;-1:-1:-1::0;;22576:8:0::1;:62::i;:::-;22249:399::o:0;10962:165::-;11040:4;11057:40;11067:10;11079:9;11090:6;11057:9;:40::i;:::-;-1:-1:-1;11115:4:0;;10962:165;-1:-1:-1;;;10962:165:0:o;16086:263::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;16195:19:::1;:33:::0;;-1:-1:-1;;16195:33:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;16239:22:::1;:47:::0;;-1:-1:-1;;16239:47:0::1;::::0;::::1;;;::::0;;16302:39:::1;::::0;1741:41:1;;;16302:39:0::1;::::0;1729:2:1;1714:18;16302:39:0::1;;;;;;;;16086:263:::0;;:::o;13146:567::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;13281:7:::1;:29:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13321:29:0;;;;;;;;;;::::1;;;-1:-1:-1::0;;13405:19:0;-1:-1:-1;;;13361:33:0;;::::1;;-1:-1:-1::0;;13405:19:0;;-1:-1:-1;;;13405:19:0;;::::1;;;-1:-1:-1::0;;13435:26:0::1;-1:-1:-1::0;;;13435:26:0;;::::1;::::0;;;::::1;;::::0;;;13361:33;13492:21:::1;13321:29:::0;13281;13492:21:::1;:::i;:::-;:35;;;;:::i;:::-;:46;;;;:::i;:::-;13472:7;:66:::0;;-1:-1:-1;;;;13472:66:0::1;-1:-1:-1::0;;;13472:66:0::1;::::0;;::::1;;;::::0;;:17:::1;13584::::0;-1:-1:-1;;13565:36:0::1;::::0;13584:17;;::::1;::::0;::::1;::::0;13565:16:::1;:36;:::i;:::-;13640:7;:12:::0;13549:52:::1;::::0;;::::1;::::0;-1:-1:-1;13549:52:0;;13620:32:::1;::::0;-1:-1:-1;;;13640:12:0;::::1;::::0;::::1;::::0;-1:-1:-1;;;13620:17:0;;::::1;;:32;:::i;:::-;:41;;;;13612:93;;;::::0;-1:-1:-1;;;13612:93:0;;14036:2:1;13612: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;;13612:93:0::1;13834:403:1::0;13612:93:0::1;13270:443;13146:567:::0;;;;;:::o;24407:97::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24475:14:0::1;;::::0;;;:4:::1;:14;::::0;;;;:21;;-1:-1:-1;;24475:21:0::1;24492:4;24475:21;::::0;;24407:97::o;15154:699::-;6868:6;;-1:-1:-1;;;;;6868:6:0;6878:10;6868:20;6860:50;;;;-1:-1:-1;;;6860:50:0;;;;;;;:::i;:::-;15354:16:::1;15334;15324:7;;:26;;;;:::i;:::-;15323:47;;;;:::i;:::-;15307:13;:63:::0;15395:7:::1;::::0;15422:13;;15395:23:::1;::::0;15405:13;;15395:23:::1;:::i;:::-;15394:41;;;;:::i;:::-;15381:10;:54:::0;;;15454:13:::1;::::0;:27:::1;;15446:73;;;::::0;-1:-1:-1;;;15446:73:0;;14444:2:1;15446: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;;15446:73:0::1;14242:397:1::0;15446:73:0::1;15563:6;::::0;5285:5:::1;::::0;15553:17:::1;::::0;-1:-1:-1;;;;;15563:6:0::1;15553:9;:17::i;:::-;:23;::::0;15573:3:::1;15553:23;:::i;:::-;15552:44;;;;:::i;:::-;15538:10;;:58;;15530:106;;;::::0;-1:-1:-1;;;15530:106:0;;14846:2:1;15530: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;;15530:106:0::1;14644:399:1::0;15530:106:0::1;15679:9;15669:7;;:19;;;;:::i;:::-;15655:10;;:33;;15647:92;;;;-1:-1:-1::0;;;15647:92:0::1;;;;;;;:::i;:::-;15785:9;15775:7;;:19;;;;:::i;:::-;15758:13;;:36;;15750:95;;;;-1:-1:-1::0;;;15750:95:0::1;;;;;;;:::i;:::-;15154:699:::0;;;;:::o;11304:310::-;-1:-1:-1;;;;;11399:20:0;;11391:52;;;;-1:-1:-1;;;11391:52:0;;15665:2:1;11391:52:0;;;15647:21:1;15704:2;15684:18;;;15677:30;-1:-1:-1;;;15723:18:1;;;15716:49;15782:18;;11391:52:0;15463:343:1;11391:52:0;-1:-1:-1;;;;;11462:21:0;;11454:53;;;;-1:-1:-1;;;11454:53:0;;15665:2:1;11454:53:0;;;15647:21:1;15704:2;15684:18;;;15677:30;-1:-1:-1;;;15723:18:1;;;15716:49;15782:18;;11454:53:0;15463:343:1;11454:53:0;-1:-1:-1;;;;;11520:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;11573:33;;368:25:1;;;11573:33:0;;341:18:1;11573:33:0;;;;;;;11304:310;;;:::o;16988:1992::-;17067:4;-1:-1:-1;;;;;17092:18:0;;17084:68;;;;-1:-1:-1;;;17084:68:0;;16013:2:1;17084: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;;17084:68:0;15811:401:1;17084:68:0;-1:-1:-1;;;;;17171:16:0;;17163:64;;;;-1:-1:-1;;;17163:64:0;;16419:2:1;17163: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;;17163:64:0;16217:399:1;17163:64:0;17255:1;17246:6;:10;17238:64;;;;-1:-1:-1;;;17238:64:0;;16823:2:1;17238: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;;17238:64:0;16621:405:1;17238:64:0;-1:-1:-1;;;;;17322:10:0;;;;;;:4;:10;;;;;;;;17321:11;:24;;;;-1:-1:-1;;;;;;17337:8:0;;;;;;:4;:8;;;;;;;;17336:9;17321:24;17313:33;;;;;;-1:-1:-1;;;;;17447:13:0;;17359:8;17447:13;;;:7;:13;;;;;;17359:8;;;;17447:13;;17443:162;;;17483:4;17477:10;;17443:162;;;-1:-1:-1;;;;;17509:11:0;;;;;;:7;:11;;;;;;;;17505:100;;;17544:4;17537:11;;17505:100;;;-1:-1:-1;17589:4:0;17505:100;17619:20;17630:4;17636:2;17619:10;:20::i;:::-;17615:644;;;17660:14;;;;17656:89;;17695:34;;-1:-1:-1;;;17695:34:0;;17233:2:1;17695:34:0;;;17215:21:1;17272:2;17252:18;;;17245:30;17311:26;17291:18;;;17284:54;17355:18;;17695:34:0;17031:348:1;17656:89:0;17763:3;:11;;;;17770:4;17763:11;17759:232;;;-1:-1:-1;;;;;17799:27:0;;;;;;:21;:27;;;;;;;;17798:28;:58;;;;-1:-1:-1;;;;;;17831:25:0;;;;;;:21;:25;;;;;;;;17830:26;17798:58;17794:182;;;17899:12;;17889:6;:22;;17881:75;;;;-1:-1:-1;;;17881:75:0;;17586:2:1;17881: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;;17881:75:0;17384:404:1;17881:75:0;18023:9;;-1:-1:-1;;;;;18009:24:0;;;18023:9;;;;;18009:24;;;;:33;;;18038:4;18037:5;18009:33;18005:243;;;-1:-1:-1;;;;;18068:25:0;;;;;;:21;:25;;;;;;;;18063:170;;18152:14;;18142:6;18126:13;18136:2;18126:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18118:95;;;;-1:-1:-1;;;18118:95:0;;17995:2:1;18118: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;;18118:95:0;17793:406:1;18118:95:0;18275:4;18271:632;;;18301:6;;;;18296:596;;18332:19;;;;;;;18328:549;;;18376:28;18407:24;18425:4;18407:9;:24::i;:::-;18376:55;;18482:13;;18458:20;:37;18454:404;;18542:10;;18583:22;;;;18579:97;;;18640:13;;18630:6;;5285:5;;18640:13;18620:17;;-1:-1:-1;;;;;18630:6:0;18620:9;:17::i;:::-;:33;;;;:::i;:::-;18619:54;;;;:::i;:::-;18609:64;;18579:97;18730:7;18706:20;:31;18702:72;;18764:7;18741:30;;18702:72;18800:34;18813:20;18800:12;:34::i;:::-;18497:361;18454:404;18353:524;18328:549;18920:52;18937:4;18943:2;18947:6;18955:3;18960:4;18966:5;18920:16;:52::i;:::-;18913:59;16988:1992;-1:-1:-1;;;;;;;16988:1992:0:o;22656:753::-;22797:16;;22775:4;;22797:16;;;;;22792:228;;22830:28;22849:4;22855:2;22830:18;:28::i;:::-;22878:16;;;;;;;22877:17;:41;;;;;22898:20;22909:4;22915:2;22898:10;:20::i;:::-;22877:51;;;;;22923:5;22922:6;22877:51;22873:136;;;22949:44;;-1:-1:-1;;;22949:44:0;;18406:2:1;22949: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;;22949:44:0;18204:398:1;22873:136:0;-1:-1:-1;;;;;23066:25:0;;23032:12;23066:25;;;:19;:25;;;;;;23047:4;;23066:25;;;:52;;-1:-1:-1;;;;;;23095:23:0;;;;;;:19;:23;;;;;;;;23066:52;23062:99;;;-1:-1:-1;23144:5:0;23062:99;-1:-1:-1;;;;;23173:13:0;;;;;;:7;:13;;;;;:23;;23190:6;;23173:13;:23;;23190:6;;23173:23;:::i;:::-;;;;-1:-1:-1;23207:22:0;;-1:-1:-1;23233:7:0;23232:55;;23281:6;23232:55;;;23244:34;23254:4;23260:3;23265:4;23271:6;23244:9;:34::i;:::-;-1:-1:-1;;;;;23298:11:0;;;;;;:7;:11;;;;;:29;;23207:80;;-1:-1:-1;23207:80:0;;23298:11;;;:29;;23207:80;;23298:29;:::i;:::-;;;;;;;;23360:2;-1:-1:-1;;;;;23345:34:0;23354:4;-1:-1:-1;;;;;23345:34:0;;23364:14;23345:34;;;;368:25:1;;356:2;341:18;;222:177;23345:34:0;;;;;;;;-1:-1:-1;23397:4:0;;22656:753;-1:-1:-1;;;;;;;;22656:753:0:o;16622:358::-;16723:6;;16691:4;;-1:-1:-1;;;;;16715:14:0;;;16723:6;;16715:14;;;;:43;;-1:-1:-1;16752:6:0;;-1:-1:-1;;;;;16746:12:0;;;16752:6;;16746:12;;16715:43;:79;;;;-1:-1:-1;16788:6:0;;-1:-1:-1;;;;;16788:6:0;16775:9;:19;;16715:79;:118;;;;-1:-1:-1;;;;;;16812:21:0;;;;;;:17;:21;;;;;;;;16811:22;16715:118;:159;;;;-1:-1:-1;;;;;;16851:23:0;;;;;;:17;:23;;;;;;;;16850:24;16715:159;:186;;;;-1:-1:-1;;;;;;16891:10:0;;5424:42;16891:10;;16715:186;:219;;;;-1:-1:-1;;;;;;16918:16:0;;;;16715:219;:257;;;;-1:-1:-1;;;;;;16951:21:0;;16967:4;16951:21;;16715:257;16708:264;16622:358;-1:-1:-1;;;16622:358:0:o;18988:2347::-;6762:6;:13;;-1:-1:-1;;6762:13:0;6771:4;6762:13;;;19071:30:::1;::::0;;::::1;::::0;::::1;::::0;;19094:7:::1;19071:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;-1:-1:-1;;;19071:30:0;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;19071:30:0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;19071:30:0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;19071:30:0;::::1;::::0;;::::1;::::0;;;;;;19112:60:::1;;19154:7;;;19112:60;19208:4;19188:26;::::0;;;:11:::1;:26;::::0;;;;;;;19223:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;19223:9:0::1;19188:46:::0;;;;;;;;-1:-1:-1;;19188:67:0::1;19184:166;;19292:4;19272:26;::::0;;;:11:::1;:26;::::0;;;;;;;19307:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;19307:9:0::1;19272:46:::0;;;;;;;-1:-1:-1;;19272:66:0;;19184:166:::1;19362:17;19447:1;19427:6;:16;;;19383:60;;19407:6;:16;;;19384:39;;:20;:39;;;;:::i;:::-;19383:60;;;;:::i;:::-;19382:66;;;;:::i;:::-;19362:86:::0;-1:-1:-1;19459:15:0::1;19477:32;19362:86:::0;19477:20;:32:::1;:::i;:::-;19554:16;::::0;;19568:1:::1;19554:16:::0;;;;;::::1;::::0;;19459:50;;-1:-1:-1;19530:21:0::1;::::0;19554:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19554:16:0::1;19530:40;;19599:4;19581;19586:1;19581:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;19581:23:0::1;;;-1:-1:-1::0;;;;;19581:23:0::1;;;::::0;::::1;19625:9;;;;;;;;;-1:-1:-1::0;;;;;19625:9:0::1;-1:-1:-1::0;;;;;19625:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19615:4;19620:1;19615:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19615:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;19658:9:::1;::::0;:186:::1;::::0;-1:-1:-1;;;19658:186:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:186:::1;::::0;19733:7;;19755:1:::1;::::0;19771:4;;19798::::1;::::0;19818:15:::1;::::0;19658:186:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;19654:233;;19869:7;;;;;;19654:233;19920:21;19899:18;20006:7:::0;19980:22:::1;19993:9:::0;19920:21;19980:22:::1;:::i;:::-;19979:34;;;;:::i;:::-;19952:61:::0;-1:-1:-1;20030:13:0;;20026:417:::1;;20064:9;::::0;20233:21;;20064:239:::1;::::0;-1:-1:-1;;;20064:239:0;;20141:4:::1;20064:239;::::0;::::1;20529:34:1::0;20579:18;;;20572:34;;;20193:1:0::1;20622:18:1::0;;;20615:34;;;20665:18;;;20658:34;-1:-1:-1;;;;;20233:21:0;;::::1;20708:19:1::0;;;20701:44;20273:15:0::1;20761:19:1::0;;;20754:35;20064:9:0::1;::::0;;::::1;;::::0;:25:::1;::::0;20097:16;;20463:19:1;;20064:239:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;20064:239:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;20064:239:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;20060:372;;20410:7;;;;;;;;20060:372;-1:-1:-1::0;;20328:40:0::1;::::0;;21285:25:1;;;21341:2;21326:18;;21319:34;;;20328:40:0::1;::::0;-1:-1:-1;21258:18:1;20328:40:0::1;;;;;;;20060:372;20455:30;20469:16:::0;20455:30;::::1;:::i;:::-;;;20516:6;:16;;;20496:6;:16;;:36;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;20631:16:::1;::::0;::::1;::::0;20609:18:::1;::::0;::::1;::::0;20543:12:::1;::::0;-1:-1:-1;20543:12:0;;20595:52;;::::1;::::0;20596:31:::1;::::0;::::1;:10:::0;:31:::1;:::i;:::-;20595:52;;;;:::i;:::-;20684:7;::::0;20566:81;;-1:-1:-1;20658:22:0::1;::::0;20684:7;;::::1;-1:-1:-1::0;;;;;20684:7:0::1;20683:78;;20760:1;20683:78;;;20741:6;:16;;;20709:48;;20723:6;:14;;;20710:27;;:10;:27;;;;:::i;:::-;20709:48;;;;:::i;:::-;20658:103:::0;-1:-1:-1;20772:24:0::1;20813:35;20658:103:::0;20813:18;:35:::1;:::i;:::-;20799:50;::::0;:10;:50:::1;:::i;:::-;20772:77:::0;-1:-1:-1;20864:20:0;;20860:133:::1;;20914:11;:21:::0;:67:::1;::::0;-1:-1:-1;;;;;20914:21:0;;::::1;::::0;20971:5:::1;::::0;20948:16;;20914:67:::1;::::0;;;20948:16;20914:21;20971:5;20914:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;20901:80:0;;-1:-1:-1;;20860:133:0::1;21007:22:::0;;21003:139:::1;;21059:23:::0;;:71:::1;::::0;-1:-1:-1;;;;;21059:23:0;;::::1;::::0;21120:5:::1;::::0;21095:18;;21059:71:::1;::::0;;;21095:18;21059:23;21120:5;21059:71:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21046:84:0;;-1:-1:-1;;21003:139:0::1;21156:18:::0;;21152:176:::1;;21201:9;;;;;;;;;-1:-1:-1::0;;;;;21201:9:0::1;-1:-1:-1::0;;;;;21201:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21191:4;21196:1;21191:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21191:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21242:7:::1;::::0;21232;;21242;;;::::1;::::0;;::::1;::::0;21232:4;;21237:1:::1;::::0;21232:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;21232:17:0;;::::1;:7;::::0;;::::1;::::0;;;;;:17;21296:19;;21264:52:::1;::::0;21274:4;;21280:14;;21296:19:::1;21264:9;:52::i;:::-;19060:2275;;;;;;;;;;6786:1;-1:-1:-1::0;6798:6:0;:14;;-1:-1:-1;;6798:14:0;;;18988:2347::o;21806:435::-;21889:16;;;;;;;21888:17;21880:65;;;;-1:-1:-1;;;21880:65:0;;21998:2:1;21880: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;;21880:65:0;21796:399:1;21880:65:0;21961:20;21972:4;21978:2;21961:10;:20::i;:::-;21960:21;:37;;;;-1:-1:-1;21991:6:0;;-1:-1:-1;;;;;21985:12:0;;;21991:6;;21985:12;21960:37;21956:278;;;-1:-1:-1;;;;;22014:23:0;;;;;;:17;:23;;;;;;;;:30;;22040:4;-1:-1:-1;;22014:30:0;;;;;;;;22059:19;:25;;;;;;:32;;;;;;;;;;22106:16;:23;;22014:30;-1:-1:-1;;22106:23:0;;;;;;;;22144:19;:26;;;;;;;;;;22190:32;1741:41:1;;;22190:32:0;;1714:18:1;22190:32:0;1601:187:1;21956:278:0;21806:435;;:::o;23417:982::-;23525:30;;;;;;;;23548:7;23525:30;;;;;;;;;;;;;;;;-1:-1:-1;;;23525:30:0;;;;;;;;;;;-1:-1:-1;;;23525:30:0;;;;;;;;-1:-1:-1;;;23525:30:0;;;;;;;;-1:-1:-1;;;23525:30:0;;;;;;;;;23505:7;;;23595:205;;;;-1:-1:-1;23632:9:0;:16;;;23595:205;;;23670:4;23666:134;;;-1:-1:-1;23704:9:0;:17;;;;;;23666:134;;;-1:-1:-1;23767:9:0;:21;-1:-1:-1;;;23767:21:0;;;;23666:134;23810:17;5285:5;23830:19;23839:10;23830:6;:19;:::i;:::-;:38;;;;:::i;:::-;23810:58;;23879:18;23943:6;:16;;;23929:6;:11;;;:30;;;;:::i;:::-;23900:60;;23913:6;:11;;;23901:23;;:9;:23;;;;:::i;:::-;23900:60;;;;:::i;:::-;23879:81;-1:-1:-1;23971:15:0;23989:22;23879:81;23989:9;:22;:::i;:::-;23971:40;-1:-1:-1;24026:11:0;;24022:135;;24070:4;24054:22;;;;:7;:22;;;;;:33;;24080:7;;24054:22;:33;;24080:7;;24054:33;:::i;:::-;;;;-1:-1:-1;;24107:38:0;;368:25:1;;;24130:4:0;;-1:-1:-1;;;;;24107:38:0;;;;;356:2:1;341:18;24107:38:0;;;;;;;24022:135;24171:14;;24167:167;;24213:10;24202:7;;:21;;;;;;;:::i;:::-;;;;;;;;24254:10;24238:12;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;24284:38:0;;368:25:1;;;24307:1:0;;-1:-1:-1;;;;;24284:38:0;;;;;356:2:1;341:18;24284:38:0;;;;;;;24167:167;24373:18;24382:9;24373:6;:18;:::i;:::-;24366:25;23417:982;-1:-1:-1;;;;;;;;;;23417:982:0:o;21343:455::-;21454:9;;:187;;-1:-1:-1;;;21454:187:0;;:9;;;;-1:-1:-1;;;;;21454:9:0;;:60;;21522:6;;21454:187;;21554:1;;21570:4;;21589:11;;21615:15;;21454:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21450:341;;21343:455;;;:::o;21450:341::-;21673:7;;;;;;;;;-1:-1:-1;;;;;21673:7:0;-1:-1:-1;;;;;21661:19:0;:4;21666:1;21661:7;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21661:19:0;;21657:83;;;21718:6;21701:13;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;21657:83:0;21343: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://9ee3019c2a1e7a0242de3cb5261e0939d422f70f8fd99a83ee9a3b5a83242860
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.