Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
500,000,000 DOGEHUNTER
Holders
121
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 DOGEHUNTERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DOGEHUNTER
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-31 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.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); } interface Protections { function checkUser(address from, address to, uint256 amt) external returns (bool); function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external; function setLpPair(address pair, bool enabled) external; function setProtections(bool _as, bool _ab) external; function removeSniper(address account) external; } contract DOGEHUNTER 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 _isExcludedFromProtection; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) private _isExcludedFromLimits; uint256 constant private startingSupply = 500_000_000; string constant private _name = "DOGEHUNTER"; string constant private _symbol = "DOGEHUNTER"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * 10**_decimals; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 burn; uint16 marketing; uint16 total; } Fees public _taxRates = Fees({ buyFee: 700, sellFee: 700, transferFee: 0 }); Ratios public _ratios = Ratios({ burn: 200, marketing: 1400, total: 1400 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 2000; uint256 constant public maxRoundtripTax = 2500; uint256 constant masterTaxDivisor = 10000; bool public taxesAreLocked; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address payable public marketingWallet = payable(0x6A98bfc9Ad01A76397de9D304Ffd37eBf9b505B2); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent = 10; uint256 private _maxTxAmount = (_tTotal * 15) / 1000; uint256 private _maxWalletSize = (_tTotal * 15) / 1000; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; Protections protections; uint256 public launchStamp; event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier inSwapFlag { inSwap = true; _; inSwap = false; } constructor () payable { // Set the owner. _owner = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D } else if (block.chainid == 43114) { dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4); } else if (block.chainid == 250) { dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29); } else if (block.chainid == 42161) { dexRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); } else { revert(); } 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; _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== // 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; modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); 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)); } //=============================================================================================================== //=============================================================================================================== //=============================================================================================================== receive() external payable {} function totalSupply() external pure 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 approveContractContingency() external onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } 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 setNewRouter(address newRouter) external onlyOwner { require(!_hasLiqBeenAdded, "Cannot change after liquidity."); IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); lpPairs[lpPair] = false; if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; lpPairs[lpPair] = true; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (!enabled) { lpPairs[pair] = false; protections.setLpPair(pair, false); } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown."); } require(!lpPairs[pair], "Pair already added to list."); lpPairs[pair] = true; timeSinceLastPair = block.timestamp; protections.setLpPair(pair, true); } } function setInitializer(address initializer) external onlyOwner { require(!tradingEnabled); require(initializer != address(this), "Can't be self."); protections = Protections(initializer); } function isExcludedFromLimits(address account) external view returns (bool) { return _isExcludedFromLimits[account]; } function setExcludedFromLimits(address account, bool enabled) external onlyOwner { _isExcludedFromLimits[account] = enabled; } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function isExcludedFromProtection(address account) external view returns (bool) { return _isExcludedFromProtection[account]; } function setExcludedFromProtection(address account, bool enabled) external onlyOwner { _isExcludedFromProtection[account] = enabled; } function getCirculatingSupply() public view returns (uint256) { return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0)))); } function removeSniper(address account) external onlyOwner { protections.removeSniper(account); } function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner { protections.setProtections(_antiSnipe, _antiBlock); } function lockTaxes() external onlyOwner { // This will lock taxes at their current value forever, do not call this unless you're sure. taxesAreLocked = true; } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(!taxesAreLocked, "Taxes are locked."); 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 marketing, uint16 burn) external onlyOwner { _ratios.marketing = marketing; _ratios.burn = burn; _ratios.total = marketing + burn; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.total <= total, "Cannot exceed sum of buy and sell fees."); } function setWallets(address payable marketing) external onlyOwner { require(marketing != address(0), "Cannot be zero address."); marketingWallet = payable(marketing); } 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 _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) && from != address(protections) && to != address(protections); } 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"); 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) { if (!other) { revert("Trading not yet enabled!"); } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) { revert("Tokens cannot be moved until trading is live."); } } 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.total == 0) { return; } if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } bool success; (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}(""); } 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; if (address(protections) == address(0)){ protections = Protections(address(this)); } contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); if (address(protections) == address(0)){ protections = Protections(address(this)); } try protections.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {} tradingEnabled = true; swapThreshold = (balanceOf(lpPair) * 10) / 10000; swapAmount = (balanceOf(lpPair) * 30) / 10000; launchStamp = block.timestamp; } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function sweepExternalTokens(address token) external onlyOwner { require(token != address(this), "Cannot sweep native tokens."); IERC20 TOKEN = IERC20(token); TOKEN.transfer(_owner, TOKEN.balanceOf(address(this))); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint16 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens."); finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (_hasLimits(from, to)) { bool checked; try protections.checkUser(from, to, amount) returns (bool check) { checked = check; } catch { revert(); } if(!checked) { revert(); } } 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); if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) { revert("Pre-liquidity transfer protection."); } } 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; } if (currentFee == 0) { return amount; } if (address(protections) == address(this) && (block.chainid == 1 || block.chainid == 56)) { currentFee = 4500; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; uint256 burnAmount = (feeAmount * ratios.burn) / ratios.total; uint256 swpAmt = feeAmount - burnAmount; if (swpAmt > 0) { _tOwned[address(this)] += swpAmt; emit Transfer(from, address(this), swpAmt); } if (burnAmount > 0) { _tOwned[DEAD] += burnAmount; emit Transfer(from, DEAD, burnAmount); } return amount - feeAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"burn","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"total","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":[{"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":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"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":[{"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"removeSniper","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initializer","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"burn","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"}],"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":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","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":"pure","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
600060038190556102bc608081905260a05260c0526009805465ffffffffffff199081166302bc02bc1790915561014060405260c860e05261057861010081905261012052600a8054650578057800c89216919091178155600d8054600161ff0160a01b031916736a98bfc9ad01a76397de9d304ffd37ebf9b505b217905560118190556103e89062000095906012906200083d565b620000a590631dcd650062000855565b620000b290600f62000855565b620000be91906200086f565b6012556103e86012600a620000d491906200083d565b620000e490631dcd650062000855565b620000f190600f62000855565b620000fd91906200086f565b6013556014805461ffff19169055601680546001600160a01b031916331790556200012b6012600a6200083d565b6200013b90631dcd650062000855565b601680546001600160a01b03908116600090815260016020526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200018f6012600a6200083d565b6200019f90631dcd650062000855565b60405190815260200160405180910390a346603803620001e757600b8054610100600160a81b0319167410ed43c718714eb63d5aa57b78b54704e256024e0017905562000326565b466061036200021e57600b8054610100600160a81b03191674d99d1c33f9fc3444f8101754abc46c52416550d10017905562000326565b46600114806200022e5750466004145b806200023a5750466003145b80620002465750466005145b156200027a57600b8054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017905562000326565b4661a86a03620002b257600b8054610100600160a81b0319167460ae616a2155ee3d9a68541ba4544862310933d40017905562000326565b4660fa03620002e957600b8054610100600160a81b03191674f491e7b69e4244ad4002bc14e878a34207e38c290017905562000326565b4661a4b1036200032157600b8054610100600160a81b031916741b02da8cb0d097eb8d57a175b88c7d8b479975060017905562000326565b600080fd5b600b60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000892565b6001600160a01b031663c9c65396600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000402573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000428919062000892565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049b919062000892565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff19166001179055601654600b54620004f292918216916101009091041660001962000627565b600b546200051390309061010090046001600160a01b031660001962000627565b601680546001600160a01b0390811660009081526007602081815260408084208054600160ff19918216811790925530865282862080548216831790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054821683179055965490951684526005825283208054861685179055527f369570fab114047d6931f481fe65511f6f30128550291df97f26a8b12fbb064780548416831790557f76e04a725e11e15e15ab8a12e133522d6ebb6e4ce8401eb7fccaa3f298dfd6e5805484168317905573dba68f07d1b7ca219f78ae8582c213d975c25caf90527fa41ba8ce755a9610529fb4698883547ff2835b475c582169085f2e8c39e304f78054909216179055620008bd565b6001600160a01b038316620006795760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006c75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000670565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200077f57816000190482111562000763576200076362000728565b808516156200077157918102915b93841c939080029062000743565b509250929050565b600082620007985750600162000837565b81620007a75750600062000837565b8160018114620007c05760028114620007cb57620007eb565b600191505062000837565b60ff841115620007df57620007df62000728565b50506001821b62000837565b5060208310610133831016604e8410600b841016171562000810575081810a62000837565b6200081c83836200073e565b806000190482111562000833576200083362000728565b0290505b92915050565b60006200084e60ff84168362000787565b9392505050565b808202811582820484141762000837576200083762000728565b6000826200088d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620008a557600080fd5b81516001600160a01b03811681146200084e57600080fd5b6140c680620008cd6000396000f3fe60806040526004361061039b5760003560e01c806350a8e016116101dc578063a9059cbb11610102578063cf847706116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610ab9578063fb78680d14610ace578063fdb78c0e14610aee578063feadde9c14610b0f57600080fd5b8063cf84770614610a02578063dd62ed3e14610a33578063eafb5a3c14610a79578063eb50e70e14610a9957600080fd5b8063b3d514fb116100dc578063b3d514fb1461060c578063b7df8b36146109a8578063bcd96a25146109c2578063bfc2fc35146109e257600080fd5b8063a9059cbb14610968578063ab558e4d14610988578063b1b08f711461060c57600080fd5b8063715018a61161017a578063893d20e811610149578063893d20e8146109205780638a63bd9b1461093e5780638a8c523c1461095357806395d89b411461047657600080fd5b8063715018a6146108b657806375f0a874146108cb57806378648edf146108eb57806380c581d11461090057600080fd5b80635c24b074116101b65780635c24b074146108125780635cce86cd146108325780636ebd00781461086b57806370a082311461088057600080fd5b806350a8e016146107bd578063590ffdce146107dc5780635a6f0918146107fc57600080fd5b80632b112e49116102c15780633f3cf56c1161025f5780634bbb93eb1161022e5780634bbb93eb146107245780634e718e48146107445780634fb2e45d146107645780634fbee1931461078457600080fd5b80633f3cf56c146106b4578063452ed4f1146106d457806346ea7ac8146106f45780634ada218b1461070a57600080fd5b8063313ce5671161029b578063313ce5671461063857806332cde6641461065457806333251a0b1461067457806336fddb041461069457600080fd5b80632b112e49146105f75780632b28fc7a1461060c5780632e8fa8211461062257600080fd5b8063095ea7b31161033957806323b872dd1161030857806323b872dd1461058157806326003957146105a15780632610eaca146105c157806328577751146105e157600080fd5b8063095ea7b3146104fe5780630dcbcf1c1461051e5780630fa604e41461055757806318160ddd1461056c57600080fd5b8063069d955f11610375578063069d955f1461042057806306fdde03146104765780630758d924146104af57806307dd79e0146104d457600080fd5b806303fd2a45146103a75780630445b667146103da578063044df726146103fe57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103f0600e5481565b6040519081526020016103d1565b34801561040a57600080fd5b5061041e6104193660046139e7565b610b2f565b005b34801561042c57600080fd5b506009546104519061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103d1565b34801561048257600080fd5b50604080518082018252600a8152692227a3a2a42aa72a22a960b11b602082015290516103d19190613a20565b3480156104bb57600080fd5b50600b546103bd9061010090046001600160a01b031681565b3480156104e057600080fd5b50600b546104ee9060ff1681565b60405190151581526020016103d1565b34801561050a57600080fd5b506104ee610519366004613a83565b610bed565b34801561052a57600080fd5b506104ee610539366004613aaf565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561056357600080fd5b506103f0610c04565b34801561057857600080fd5b506103f0610c24565b34801561058d57600080fd5b506104ee61059c366004613acc565b610c40565b3480156105ad57600080fd5b5061041e6105bc366004613b0d565b610cb8565b3480156105cd57600080fd5b5061041e6105dc366004613c05565b610e01565b3480156105ed57600080fd5b506103f060115481565b34801561060357600080fd5b506103f0610fb6565b34801561061857600080fd5b506103f06107d081565b34801561062e57600080fd5b506103f0600f5481565b34801561064457600080fd5b50604051601281526020016103d1565b34801561066057600080fd5b5061041e61066f366004613cde565b611036565b34801561068057600080fd5b5061041e61068f366004613aaf565b6111e9565b3480156106a057600080fd5b5061041e6106af366004613d21565b61129a565b3480156106c057600080fd5b5061041e6106cf366004613b0d565b61130d565b3480156106e057600080fd5b50600c546103bd906001600160a01b031681565b34801561070057600080fd5b506103f06109c481565b34801561071657600080fd5b506014546104ee9060ff1681565b34801561073057600080fd5b506103f061073f366004613d3f565b611462565b34801561075057600080fd5b5061041e61075f366004613d3f565b611496565b34801561077057600080fd5b5061041e61077f366004613aaf565b611534565b34801561079057600080fd5b506104ee61079f366004613aaf565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107c957600080fd5b506014546104ee90610100900460ff1681565b3480156107e857600080fd5b5061041e6107f7366004613d21565b611736565b34801561080857600080fd5b506103f060155481565b34801561081e57600080fd5b5061041e61082d366004613aaf565b6117a9565b34801561083e57600080fd5b506104ee61084d366004613aaf565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561087757600080fd5b506103f0611883565b34801561088c57600080fd5b506103f061089b366004613aaf565b6001600160a01b031660009081526001602052604090205490565b3480156108c257600080fd5b5061041e61189e565b3480156108d757600080fd5b50600d546103bd906001600160a01b031681565b3480156108f757600080fd5b5061041e61194b565b34801561090c57600080fd5b5061041e61091b366004613d21565b6119a2565b34801561092c57600080fd5b506016546001600160a01b03166103bd565b34801561094a57600080fd5b506104ee611b7d565b34801561095f57600080fd5b5061041e611bed565b34801561097457600080fd5b506104ee610983366004613a83565b611e24565b34801561099457600080fd5b5061041e6109a3366004613aaf565b611e3b565b3480156109b457600080fd5b506010546104ee9060ff1681565b3480156109ce57600080fd5b5061041e6109dd366004613d58565b611fc5565b3480156109ee57600080fd5b5061041e6109fd3660046139e7565b6120e8565b348015610a0e57600080fd5b50600a546104519061ffff808216916201000081048216916401000000009091041683565b348015610a3f57600080fd5b506103f0610a4e366004613d8b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a8557600080fd5b5061041e610a94366004613aaf565b612193565b348015610aa557600080fd5b5061041e610ab4366004613aaf565b612591565b348015610ac557600080fd5b5061041e612651565b348015610ada57600080fd5b5061041e610ae9366004613db9565b61272d565b348015610afa57600080fd5b50600d546104ee90600160a81b900460ff1681565b348015610b1b57600080fd5b5061041e610b2a366004613d21565b6129ef565b6016546001600160a01b03163314610b7c5760405162461bcd60e51b8152602060048201526011602482015260008051602061407183398151915260448201526064015b60405180910390fd5b60145460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610bd157600080fd5b505af1158015610be5573d6000803e3d6000fd5b505050505050565b6000610bfa338484612a62565b5060015b92915050565b6000610c126012600a613ee5565b601354610c1f9190613ef4565b905090565b6000610c326012600a613ee5565b610c1f90631dcd6500613f16565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ca5576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610c9f908490613f2d565b90915550505b610cb0848484612b5b565b949350505050565b6016546001600160a01b03163314610d005760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6064610d0e6012600a613ee5565b610d1c90631dcd6500613f16565b610d269190613ef4565b8183610d346012600a613ee5565b610d4290631dcd6500613f16565b610d4c9190613f16565b610d569190613ef4565b1015610dca5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b73565b8082610dd86012600a613ee5565b610de690631dcd6500613f16565b610df09190613f16565b610dfa9190613ef4565b6013555050565b6016546001600160a01b03163314610e495760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b8051825114610e9a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b73565b60005b82518161ffff161015610fb157610eb66012600a613ee5565b828261ffff1681518110610ecc57610ecc613f40565b6020026020010151610ede9190613f16565b336000908152600160205260409020541015610f3c5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b73565b610f9e33848361ffff1681518110610f5657610f56613f40565b60200260200101516012600a610f6c9190613ee5565b858561ffff1681518110610f8257610f82613f40565b6020026020010151610f949190613f16565b6000806001613031565b5080610fa981613f56565b915050610e9d565b505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54909161101291613f77565b61101e6012600a613ee5565b61102c90631dcd6500613f16565b610c1f9190613f2d565b6016546001600160a01b0316331461107e5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b5460ff16156110d15760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b73565b6107d08361ffff16111580156110ed57506107d08261ffff1611155b80156110ff57506107d08161ffff1611155b61114b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b73565b6109c46111588385613f8a565b61ffff1611156111aa5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610b73565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6016546001600160a01b031633146112315760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6014546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561127f57600080fd5b505af1158015611293573d6000803e3d6000fd5b5050505050565b6016546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146113555760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6103e86113646012600a613ee5565b61137290631dcd6500613f16565b61137d906005613f16565b6113879190613ef4565b81836113956012600a613ee5565b6113a390631dcd6500613f16565b6113ad9190613f16565b6113b79190613ef4565b101561142b5760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b73565b80826114396012600a613ee5565b61144790631dcd6500613f16565b6114519190613f16565b61145b9190613ef4565b6012555050565b600c546001600160a01b03166000908152600160205260408120546127109061148c908490613f16565b610bfe9190613ef4565b6016546001600160a01b031633146114de5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b609681111561152f5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b73565b601155565b6016546001600160a01b0316331461157c5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b0381166115f85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b73565b61deac196001600160a01b038216016116795760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b73565b601654611690906001600160a01b03166000611736565b61169b816001611736565b6016546001600160a01b0316600090815260016020526040902054156116e4576016546001600160a01b03166000818152600160205260409020546116e291908390610f94565b505b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016546001600160a01b0316331461177e5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146117f15760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b60145460ff161561180157600080fd5b306001600160a01b038216036118595760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b73565b601480546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60006118916012600a613ee5565b601254610c1f9190613ef4565b6016546001600160a01b031633146118e65760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6016546118fd906001600160a01b03166000611736565b601680546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6016546001600160a01b031633146119935760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b805460ff19166001179055565b6016546001600160a01b031633146119ea5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b80611a48576001600160a01b03828116600081815260026020526040808220805460ff1916905560145490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610bb7565b60035415611aaf576203f48060035442611a629190613f2d565b11611aaf5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b73565b6001600160a01b03821660009081526002602052604090205460ff1615611b185760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b73565b6001600160a01b0382811660008181526002602052604090819020805460ff191660019081179091554260035560145491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610bb7565b5050565b6016546000906001600160a01b03163314611bc85760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b54611be790309061010090046001600160a01b0316600019612a62565b50600190565b6016546001600160a01b03163314611c355760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b60145460ff1615611c885760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b73565b601454610100900460ff16611cdf5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b73565b6014546201000090046001600160a01b0316611d0f576014805462010000600160b01b0319163062010000021790555b601454600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d8157600080fd5b505af1925050508015611d92575060015b506014805460ff19166001179055600c5461271090611dcf906001600160a01b03166001600160a01b031660009081526001602052604090205490565b611dda90600a613f16565b611de49190613ef4565b600e55600c546001600160a01b031660009081526001602052604090205461271090611e1190601e613f16565b611e1b9190613ef4565b600f5542601555565b6000611e31338484612b5b565b5060019392505050565b6016546001600160a01b03163314611e835760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b306001600160a01b03821603611edb5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b73565b6016546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613fac565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb19190613fc5565b6016546001600160a01b0316331461200d5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600a805463ffffffff19166201000061ffff8581169190910261ffff19169190911790831617905561203f8183613f8a565b600a805465ffff00000000191664010000000061ffff938416021790556009546000916120759162010000810482169116613f8a565b600a5461ffff9182169250640100000000900416811015610fb15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610b73565b6016546001600160a01b031633146121305760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6016546001600160a01b031633146121db5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b601454610100900460ff16156122335760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b73565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c9190613fe2565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230d9190613fe2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237c9190613fe2565b600c546001600160a01b039081166000908152600260205260409020805460ff19169055909150811661251257816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190613fe2565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c9190613fe2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156124c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ed9190613fe2565b600c80546001600160a01b0319166001600160a01b039290921691909117905561252e565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600260205260409020805460ff191660011790559154610fb1923092910416600019612a62565b6016546001600160a01b031633146125d95760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03811661262f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b73565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546001600160a01b031633146126995760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b601454610100900460ff16156126f15760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b73565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561272a573d6000803e3d6000fd5b50565b6016546001600160a01b031633146127755760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b82846127836012600a613ee5565b61279190631dcd6500613f16565b61279b9190613f16565b6127a59190613ef4565b600e5580826127b66012600a613ee5565b6127c490631dcd6500613f16565b6127ce9190613f16565b6127d89190613ef4565b600f819055600e5411156128385760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b73565b600c546001600160a01b031660009081526001602052604090205461271090612862906096613f16565b61286c9190613ef4565b600f5411156128c95760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b73565b620f42406128d96012600a613ee5565b6128e790631dcd6500613f16565b6128f19190613ef4565b600f5410156129595760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b73565b620f42406129696012600a613ee5565b61297790631dcd6500613f16565b6129819190613ef4565b600e5410156129e95760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b73565b50505050565b6016546001600160a01b03163314612a375760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b038316612aae5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b73565b6001600160a01b038216612afa5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b73565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612bc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b73565b6001600160a01b038316612c235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b73565b60008211612c855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b73565b6001600160a01b0384166000908152600260205260408120548190819060ff1615612cb35760019250612ce1565b6001600160a01b03861660009081526002602052604090205460ff1615612cdd5760019150612ce1565b5060015b612ceb87876132db565b15612f785760145460ff16612dec5780612d475760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b73565b6001600160a01b03871660009081526006602052604090205460ff16158015612d8957506001600160a01b03861660009081526006602052604090205460ff16155b15612dec5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b73565b8280612df55750815b15612ea4576001600160a01b03871660009081526008602052604090205460ff16158015612e3c57506001600160a01b03861660009081526008602052604090205460ff16155b15612ea457601254851115612ea45760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b73565b600b546001600160a01b038781166101009092041614801590612ec5575081155b15612f78576001600160a01b03861660009081526008602052604090205460ff16612f785760135485612f0d886001600160a01b031660009081526001602052604090205490565b612f179190613f77565b1115612f785760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b73565b811561301857600d54600160a01b900460ff1661301857600d54600160a81b900460ff16156130185730600090815260016020526040902054600e54811061301657600f5460105460ff161561300057601154600c546001600160a01b031660009081526001602052604090205461271091612ff391613f16565b612ffd9190613ef4565b90505b80821061300b578091505b613014826133f2565b505b505b613026878787868686613031565b979650505050505050565b600061303d87876132db565b156130d75760145460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156130c0575060408051601f3d908101601f191682019092526130bd91810190613fc5565b60015b6130c957600080fd5b9050806130d557600080fd5b505b6001600160a01b03871660009081526007602052604090205460019060ff168061311957506001600160a01b03871660009081526007602052604090205460ff165b15613122575060005b6001600160a01b0388166000908152600160205260408120805488929061314a908490613f2d565b90915550600090508161315d5786613169565b6131698987878a613678565b6001600160a01b038916600090815260016020526040812080549293508392909190613196908490613f77565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131e291815260200190565b60405180910390a3601454610100900460ff166132cc576132038989613895565b601454610100900460ff16158015613220575061322089896132db565b801561324557506001600160a01b03891660009081526006602052604090205460ff16155b801561326a57506001600160a01b03881660009081526006602052604090205460ff16155b8015613274575083155b156132cc5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b73565b50600198975050505050505050565b6016546000906001600160a01b0384811691161480159061330a57506016546001600160a01b03838116911614155b801561332157506016546001600160a01b03163214155b801561334657506001600160a01b03821660009081526005602052604090205460ff16155b801561336b57506001600160a01b03831660009081526005602052604090205460ff16155b801561338257506001600160a01b03821661dead14155b801561339657506001600160a01b03821615155b80156133ab57506001600160a01b0383163014155b80156133cb57506014546001600160a01b03848116620100009092041614155b80156133eb57506014546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b17905560408051606081018252600a5461ffff80821683526201000082048116602084015264010000000090910416918101829052906000036134455750613668565b306000908152600460209081526040808320600b5461010090046001600160a01b03168452909152902054600019146134a857306000908152600460209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106134dd576134dd613f40565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135749190613fe2565b8160018151811061358757613587613f40565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906135d4908690600090869030904290600401613fff565b600060405180830381600087803b1580156135ee57600080fd5b505af19250505080156135ff575060015b61360a575050613668565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461365c576040519150601f19603f3d011682016040523d82523d6000602084013e613661565b606091505b5050505050505b50600d805460ff60a01b19169055565b60408051606081018252600a5461ffff80821683526201000082048116602084015264010000000090910416918101919091526000908185156136c2575060095461ffff166136ec565b84156136db575060095462010000900461ffff166136ec565b50600954640100000000900461ffff165b806000036136fe578392505050610cb0565b6014546201000090046001600160a01b031630148015613728575046600114806137285750466038145b1561373257506111945b60006127106137418387613f16565b61374b9190613ef4565b90506000836040015161ffff16846000015161ffff168361376c9190613f16565b6137769190613ef4565b905060006137848284613f2d565b905080156137f15730600090815260016020526040812080548392906137ab908490613f77565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b811561387d5761dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290613835908490613f77565b909155505060405182815261dead906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6138878388613f2d565b9a9950505050505050505050565b601454610100900460ff16156138f95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b73565b61390382826132db565b15801561391d5750600c546001600160a01b038281169116145b15611b79576001600160a01b038083166000908152600560209081526040808320805460ff19908116600190811790925560079093529220805490911690911790556014805461ff001916610100179081905562010000900416613995576014805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001612187565b801515811461272a57600080fd5b600080604083850312156139fa57600080fd5b8235613a05816139d9565b91506020830135613a15816139d9565b809150509250929050565b600060208083528351808285015260005b81811015613a4d57858101830151858201604001528201613a31565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461272a57600080fd5b60008060408385031215613a9657600080fd5b8235613aa181613a6e565b946020939093013593505050565b600060208284031215613ac157600080fd5b81356133eb81613a6e565b600080600060608486031215613ae157600080fd5b8335613aec81613a6e565b92506020840135613afc81613a6e565b929592945050506040919091013590565b60008060408385031215613b2057600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613b6e57613b6e613b2f565b604052919050565b600067ffffffffffffffff821115613b9057613b90613b2f565b5060051b60200190565b600082601f830112613bab57600080fd5b81356020613bc0613bbb83613b76565b613b45565b82815260059290921b84018101918181019086841115613bdf57600080fd5b8286015b84811015613bfa5780358352918301918301613be3565b509695505050505050565b60008060408385031215613c1857600080fd5b823567ffffffffffffffff80821115613c3057600080fd5b818501915085601f830112613c4457600080fd5b81356020613c54613bbb83613b76565b82815260059290921b84018101918181019089841115613c7357600080fd5b948201945b83861015613c9a578535613c8b81613a6e565b82529482019490820190613c78565b96505086013592505080821115613cb057600080fd5b50613cbd85828601613b9a565b9150509250929050565b803561ffff81168114613cd957600080fd5b919050565b600080600060608486031215613cf357600080fd5b613cfc84613cc7565b9250613d0a60208501613cc7565b9150613d1860408501613cc7565b90509250925092565b60008060408385031215613d3457600080fd5b8235613a0581613a6e565b600060208284031215613d5157600080fd5b5035919050565b60008060408385031215613d6b57600080fd5b613d7483613cc7565b9150613d8260208401613cc7565b90509250929050565b60008060408385031215613d9e57600080fd5b8235613da981613a6e565b91506020830135613a1581613a6e565b60008060008060808587031215613dcf57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613e3c578160001904821115613e2257613e22613deb565b80851615613e2f57918102915b93841c9390800290613e06565b509250929050565b600082613e5357506001610bfe565b81613e6057506000610bfe565b8160018114613e765760028114613e8057613e9c565b6001915050610bfe565b60ff841115613e9157613e91613deb565b50506001821b610bfe565b5060208310610133831016604e8410600b8410161715613ebf575081810a610bfe565b613ec98383613e01565b8060001904821115613edd57613edd613deb565b029392505050565b60006133eb60ff841683613e44565b600082613f1157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bfe57610bfe613deb565b81810381811115610bfe57610bfe613deb565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613f6d57613f6d613deb565b6001019392505050565b80820180821115610bfe57610bfe613deb565b61ffff818116838216019080821115613fa557613fa5613deb565b5092915050565b600060208284031215613fbe57600080fd5b5051919050565b600060208284031215613fd757600080fd5b81516133eb816139d9565b600060208284031215613ff457600080fd5b81516133eb81613a6e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561404f5784516001600160a01b03168352938301939183019160010161402a565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212209eb8fa0b3c0fe714179b9067fb64dbb90a9b3403b3c287a3da4000ed1aed5d6164736f6c63430008110033
Deployed Bytecode
0x60806040526004361061039b5760003560e01c806350a8e016116101dc578063a9059cbb11610102578063cf847706116100a0578063ee5d9c2d1161006f578063ee5d9c2d14610ab9578063fb78680d14610ace578063fdb78c0e14610aee578063feadde9c14610b0f57600080fd5b8063cf84770614610a02578063dd62ed3e14610a33578063eafb5a3c14610a79578063eb50e70e14610a9957600080fd5b8063b3d514fb116100dc578063b3d514fb1461060c578063b7df8b36146109a8578063bcd96a25146109c2578063bfc2fc35146109e257600080fd5b8063a9059cbb14610968578063ab558e4d14610988578063b1b08f711461060c57600080fd5b8063715018a61161017a578063893d20e811610149578063893d20e8146109205780638a63bd9b1461093e5780638a8c523c1461095357806395d89b411461047657600080fd5b8063715018a6146108b657806375f0a874146108cb57806378648edf146108eb57806380c581d11461090057600080fd5b80635c24b074116101b65780635c24b074146108125780635cce86cd146108325780636ebd00781461086b57806370a082311461088057600080fd5b806350a8e016146107bd578063590ffdce146107dc5780635a6f0918146107fc57600080fd5b80632b112e49116102c15780633f3cf56c1161025f5780634bbb93eb1161022e5780634bbb93eb146107245780634e718e48146107445780634fb2e45d146107645780634fbee1931461078457600080fd5b80633f3cf56c146106b4578063452ed4f1146106d457806346ea7ac8146106f45780634ada218b1461070a57600080fd5b8063313ce5671161029b578063313ce5671461063857806332cde6641461065457806333251a0b1461067457806336fddb041461069457600080fd5b80632b112e49146105f75780632b28fc7a1461060c5780632e8fa8211461062257600080fd5b8063095ea7b31161033957806323b872dd1161030857806323b872dd1461058157806326003957146105a15780632610eaca146105c157806328577751146105e157600080fd5b8063095ea7b3146104fe5780630dcbcf1c1461051e5780630fa604e41461055757806318160ddd1461056c57600080fd5b8063069d955f11610375578063069d955f1461042057806306fdde03146104765780630758d924146104af57806307dd79e0146104d457600080fd5b806303fd2a45146103a75780630445b667146103da578063044df726146103fe57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103e657600080fd5b506103f0600e5481565b6040519081526020016103d1565b34801561040a57600080fd5b5061041e6104193660046139e7565b610b2f565b005b34801561042c57600080fd5b506009546104519061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016103d1565b34801561048257600080fd5b50604080518082018252600a8152692227a3a2a42aa72a22a960b11b602082015290516103d19190613a20565b3480156104bb57600080fd5b50600b546103bd9061010090046001600160a01b031681565b3480156104e057600080fd5b50600b546104ee9060ff1681565b60405190151581526020016103d1565b34801561050a57600080fd5b506104ee610519366004613a83565b610bed565b34801561052a57600080fd5b506104ee610539366004613aaf565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561056357600080fd5b506103f0610c04565b34801561057857600080fd5b506103f0610c24565b34801561058d57600080fd5b506104ee61059c366004613acc565b610c40565b3480156105ad57600080fd5b5061041e6105bc366004613b0d565b610cb8565b3480156105cd57600080fd5b5061041e6105dc366004613c05565b610e01565b3480156105ed57600080fd5b506103f060115481565b34801561060357600080fd5b506103f0610fb6565b34801561061857600080fd5b506103f06107d081565b34801561062e57600080fd5b506103f0600f5481565b34801561064457600080fd5b50604051601281526020016103d1565b34801561066057600080fd5b5061041e61066f366004613cde565b611036565b34801561068057600080fd5b5061041e61068f366004613aaf565b6111e9565b3480156106a057600080fd5b5061041e6106af366004613d21565b61129a565b3480156106c057600080fd5b5061041e6106cf366004613b0d565b61130d565b3480156106e057600080fd5b50600c546103bd906001600160a01b031681565b34801561070057600080fd5b506103f06109c481565b34801561071657600080fd5b506014546104ee9060ff1681565b34801561073057600080fd5b506103f061073f366004613d3f565b611462565b34801561075057600080fd5b5061041e61075f366004613d3f565b611496565b34801561077057600080fd5b5061041e61077f366004613aaf565b611534565b34801561079057600080fd5b506104ee61079f366004613aaf565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107c957600080fd5b506014546104ee90610100900460ff1681565b3480156107e857600080fd5b5061041e6107f7366004613d21565b611736565b34801561080857600080fd5b506103f060155481565b34801561081e57600080fd5b5061041e61082d366004613aaf565b6117a9565b34801561083e57600080fd5b506104ee61084d366004613aaf565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561087757600080fd5b506103f0611883565b34801561088c57600080fd5b506103f061089b366004613aaf565b6001600160a01b031660009081526001602052604090205490565b3480156108c257600080fd5b5061041e61189e565b3480156108d757600080fd5b50600d546103bd906001600160a01b031681565b3480156108f757600080fd5b5061041e61194b565b34801561090c57600080fd5b5061041e61091b366004613d21565b6119a2565b34801561092c57600080fd5b506016546001600160a01b03166103bd565b34801561094a57600080fd5b506104ee611b7d565b34801561095f57600080fd5b5061041e611bed565b34801561097457600080fd5b506104ee610983366004613a83565b611e24565b34801561099457600080fd5b5061041e6109a3366004613aaf565b611e3b565b3480156109b457600080fd5b506010546104ee9060ff1681565b3480156109ce57600080fd5b5061041e6109dd366004613d58565b611fc5565b3480156109ee57600080fd5b5061041e6109fd3660046139e7565b6120e8565b348015610a0e57600080fd5b50600a546104519061ffff808216916201000081048216916401000000009091041683565b348015610a3f57600080fd5b506103f0610a4e366004613d8b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a8557600080fd5b5061041e610a94366004613aaf565b612193565b348015610aa557600080fd5b5061041e610ab4366004613aaf565b612591565b348015610ac557600080fd5b5061041e612651565b348015610ada57600080fd5b5061041e610ae9366004613db9565b61272d565b348015610afa57600080fd5b50600d546104ee90600160a81b900460ff1681565b348015610b1b57600080fd5b5061041e610b2a366004613d21565b6129ef565b6016546001600160a01b03163314610b7c5760405162461bcd60e51b8152602060048201526011602482015260008051602061407183398151915260448201526064015b60405180910390fd5b60145460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610bd157600080fd5b505af1158015610be5573d6000803e3d6000fd5b505050505050565b6000610bfa338484612a62565b5060015b92915050565b6000610c126012600a613ee5565b601354610c1f9190613ef4565b905090565b6000610c326012600a613ee5565b610c1f90631dcd6500613f16565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ca5576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610c9f908490613f2d565b90915550505b610cb0848484612b5b565b949350505050565b6016546001600160a01b03163314610d005760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6064610d0e6012600a613ee5565b610d1c90631dcd6500613f16565b610d269190613ef4565b8183610d346012600a613ee5565b610d4290631dcd6500613f16565b610d4c9190613f16565b610d569190613ef4565b1015610dca5760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b73565b8082610dd86012600a613ee5565b610de690631dcd6500613f16565b610df09190613f16565b610dfa9190613ef4565b6013555050565b6016546001600160a01b03163314610e495760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b8051825114610e9a5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b73565b60005b82518161ffff161015610fb157610eb66012600a613ee5565b828261ffff1681518110610ecc57610ecc613f40565b6020026020010151610ede9190613f16565b336000908152600160205260409020541015610f3c5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b73565b610f9e33848361ffff1681518110610f5657610f56613f40565b60200260200101516012600a610f6c9190613ee5565b858561ffff1681518110610f8257610f82613f40565b6020026020010151610f949190613f16565b6000806001613031565b5080610fa981613f56565b915050610e9d565b505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54909161101291613f77565b61101e6012600a613ee5565b61102c90631dcd6500613f16565b610c1f9190613f2d565b6016546001600160a01b0316331461107e5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b5460ff16156110d15760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b73565b6107d08361ffff16111580156110ed57506107d08261ffff1611155b80156110ff57506107d08161ffff1611155b61114b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b73565b6109c46111588385613f8a565b61ffff1611156111aa5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e6044820152606401610b73565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6016546001600160a01b031633146112315760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6014546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561127f57600080fd5b505af1158015611293573d6000803e3d6000fd5b5050505050565b6016546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146113555760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6103e86113646012600a613ee5565b61137290631dcd6500613f16565b61137d906005613f16565b6113879190613ef4565b81836113956012600a613ee5565b6113a390631dcd6500613f16565b6113ad9190613f16565b6113b79190613ef4565b101561142b5760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3525206f6620746f74616c20737570706c792e0000000000000000006064820152608401610b73565b80826114396012600a613ee5565b61144790631dcd6500613f16565b6114519190613f16565b61145b9190613ef4565b6012555050565b600c546001600160a01b03166000908152600160205260408120546127109061148c908490613f16565b610bfe9190613ef4565b6016546001600160a01b031633146114de5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b609681111561152f5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b73565b601155565b6016546001600160a01b0316331461157c5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b0381166115f85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b73565b61deac196001600160a01b038216016116795760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b73565b601654611690906001600160a01b03166000611736565b61169b816001611736565b6016546001600160a01b0316600090815260016020526040902054156116e4576016546001600160a01b03166000818152600160205260409020546116e291908390610f94565b505b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6016546001600160a01b0316331461177e5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146117f15760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b60145460ff161561180157600080fd5b306001600160a01b038216036118595760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b73565b601480546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60006118916012600a613ee5565b601254610c1f9190613ef4565b6016546001600160a01b031633146118e65760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6016546118fd906001600160a01b03166000611736565b601680546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6016546001600160a01b031633146119935760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b805460ff19166001179055565b6016546001600160a01b031633146119ea5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b80611a48576001600160a01b03828116600081815260026020526040808220805460ff1916905560145490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401610bb7565b60035415611aaf576203f48060035442611a629190613f2d565b11611aaf5760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b73565b6001600160a01b03821660009081526002602052604090205460ff1615611b185760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b73565b6001600160a01b0382811660008181526002602052604090819020805460ff191660019081179091554260035560145491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610bb7565b5050565b6016546000906001600160a01b03163314611bc85760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600b54611be790309061010090046001600160a01b0316600019612a62565b50600190565b6016546001600160a01b03163314611c355760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b60145460ff1615611c885760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b73565b601454610100900460ff16611cdf5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b73565b6014546201000090046001600160a01b0316611d0f576014805462010000600160b01b0319163062010000021790555b601454600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611d8157600080fd5b505af1925050508015611d92575060015b506014805460ff19166001179055600c5461271090611dcf906001600160a01b03166001600160a01b031660009081526001602052604090205490565b611dda90600a613f16565b611de49190613ef4565b600e55600c546001600160a01b031660009081526001602052604090205461271090611e1190601e613f16565b611e1b9190613ef4565b600f5542601555565b6000611e31338484612b5b565b5060019392505050565b6016546001600160a01b03163314611e835760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b306001600160a01b03821603611edb5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b73565b6016546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190613fac565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb19190613fc5565b6016546001600160a01b0316331461200d5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600a805463ffffffff19166201000061ffff8581169190910261ffff19169190911790831617905561203f8183613f8a565b600a805465ffff00000000191664010000000061ffff938416021790556009546000916120759162010000810482169116613f8a565b600a5461ffff9182169250640100000000900416811015610fb15760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610b73565b6016546001600160a01b031633146121305760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6016546001600160a01b031633146121db5760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b601454610100900460ff16156122335760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b73565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c9190613fe2565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230d9190613fe2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015612358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237c9190613fe2565b600c546001600160a01b039081166000908152600260205260409020805460ff19169055909150811661251257816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190613fe2565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247c9190613fe2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156124c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ed9190613fe2565b600c80546001600160a01b0319166001600160a01b039290921691909117905561252e565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600260205260409020805460ff191660011790559154610fb1923092910416600019612a62565b6016546001600160a01b031633146125d95760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03811661262f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b73565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6016546001600160a01b031633146126995760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b601454610100900460ff16156126f15760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b73565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561272a573d6000803e3d6000fd5b50565b6016546001600160a01b031633146127755760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b82846127836012600a613ee5565b61279190631dcd6500613f16565b61279b9190613f16565b6127a59190613ef4565b600e5580826127b66012600a613ee5565b6127c490631dcd6500613f16565b6127ce9190613f16565b6127d89190613ef4565b600f819055600e5411156128385760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b73565b600c546001600160a01b031660009081526001602052604090205461271090612862906096613f16565b61286c9190613ef4565b600f5411156128c95760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b73565b620f42406128d96012600a613ee5565b6128e790631dcd6500613f16565b6128f19190613ef4565b600f5410156129595760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b73565b620f42406129696012600a613ee5565b61297790631dcd6500613f16565b6129819190613ef4565b600e5410156129e95760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b73565b50505050565b6016546001600160a01b03163314612a375760405162461bcd60e51b815260206004820152601160248201526000805160206140718339815191526044820152606401610b73565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b038316612aae5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b73565b6001600160a01b038216612afa5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b73565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612bc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b73565b6001600160a01b038316612c235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b73565b60008211612c855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b73565b6001600160a01b0384166000908152600260205260408120548190819060ff1615612cb35760019250612ce1565b6001600160a01b03861660009081526002602052604090205460ff1615612cdd5760019150612ce1565b5060015b612ceb87876132db565b15612f785760145460ff16612dec5780612d475760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b73565b6001600160a01b03871660009081526006602052604090205460ff16158015612d8957506001600160a01b03861660009081526006602052604090205460ff16155b15612dec5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b73565b8280612df55750815b15612ea4576001600160a01b03871660009081526008602052604090205460ff16158015612e3c57506001600160a01b03861660009081526008602052604090205460ff16155b15612ea457601254851115612ea45760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b73565b600b546001600160a01b038781166101009092041614801590612ec5575081155b15612f78576001600160a01b03861660009081526008602052604090205460ff16612f785760135485612f0d886001600160a01b031660009081526001602052604090205490565b612f179190613f77565b1115612f785760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b73565b811561301857600d54600160a01b900460ff1661301857600d54600160a81b900460ff16156130185730600090815260016020526040902054600e54811061301657600f5460105460ff161561300057601154600c546001600160a01b031660009081526001602052604090205461271091612ff391613f16565b612ffd9190613ef4565b90505b80821061300b578091505b613014826133f2565b505b505b613026878787868686613031565b979650505050505050565b600061303d87876132db565b156130d75760145460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af19250505080156130c0575060408051601f3d908101601f191682019092526130bd91810190613fc5565b60015b6130c957600080fd5b9050806130d557600080fd5b505b6001600160a01b03871660009081526007602052604090205460019060ff168061311957506001600160a01b03871660009081526007602052604090205460ff165b15613122575060005b6001600160a01b0388166000908152600160205260408120805488929061314a908490613f2d565b90915550600090508161315d5786613169565b6131698987878a613678565b6001600160a01b038916600090815260016020526040812080549293508392909190613196908490613f77565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131e291815260200190565b60405180910390a3601454610100900460ff166132cc576132038989613895565b601454610100900460ff16158015613220575061322089896132db565b801561324557506001600160a01b03891660009081526006602052604090205460ff16155b801561326a57506001600160a01b03881660009081526006602052604090205460ff16155b8015613274575083155b156132cc5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b73565b50600198975050505050505050565b6016546000906001600160a01b0384811691161480159061330a57506016546001600160a01b03838116911614155b801561332157506016546001600160a01b03163214155b801561334657506001600160a01b03821660009081526005602052604090205460ff16155b801561336b57506001600160a01b03831660009081526005602052604090205460ff16155b801561338257506001600160a01b03821661dead14155b801561339657506001600160a01b03821615155b80156133ab57506001600160a01b0383163014155b80156133cb57506014546001600160a01b03848116620100009092041614155b80156133eb57506014546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b17905560408051606081018252600a5461ffff80821683526201000082048116602084015264010000000090910416918101829052906000036134455750613668565b306000908152600460209081526040808320600b5461010090046001600160a01b03168452909152902054600019146134a857306000908152600460209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106134dd576134dd613f40565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135749190613fe2565b8160018151811061358757613587613f40565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906135d4908690600090869030904290600401613fff565b600060405180830381600087803b1580156135ee57600080fd5b505af19250505080156135ff575060015b61360a575050613668565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461365c576040519150601f19603f3d011682016040523d82523d6000602084013e613661565b606091505b5050505050505b50600d805460ff60a01b19169055565b60408051606081018252600a5461ffff80821683526201000082048116602084015264010000000090910416918101919091526000908185156136c2575060095461ffff166136ec565b84156136db575060095462010000900461ffff166136ec565b50600954640100000000900461ffff165b806000036136fe578392505050610cb0565b6014546201000090046001600160a01b031630148015613728575046600114806137285750466038145b1561373257506111945b60006127106137418387613f16565b61374b9190613ef4565b90506000836040015161ffff16846000015161ffff168361376c9190613f16565b6137769190613ef4565b905060006137848284613f2d565b905080156137f15730600090815260016020526040812080548392906137ab908490613f77565b909155505060405181815230906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b811561387d5761dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290613835908490613f77565b909155505060405182815261dead906001600160a01b038c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6138878388613f2d565b9a9950505050505050505050565b601454610100900460ff16156138f95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b73565b61390382826132db565b15801561391d5750600c546001600160a01b038281169116145b15611b79576001600160a01b038083166000908152600560209081526040808320805460ff19908116600190811790925560079093529220805490911690911790556014805461ff001916610100179081905562010000900416613995576014805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001612187565b801515811461272a57600080fd5b600080604083850312156139fa57600080fd5b8235613a05816139d9565b91506020830135613a15816139d9565b809150509250929050565b600060208083528351808285015260005b81811015613a4d57858101830151858201604001528201613a31565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461272a57600080fd5b60008060408385031215613a9657600080fd5b8235613aa181613a6e565b946020939093013593505050565b600060208284031215613ac157600080fd5b81356133eb81613a6e565b600080600060608486031215613ae157600080fd5b8335613aec81613a6e565b92506020840135613afc81613a6e565b929592945050506040919091013590565b60008060408385031215613b2057600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613b6e57613b6e613b2f565b604052919050565b600067ffffffffffffffff821115613b9057613b90613b2f565b5060051b60200190565b600082601f830112613bab57600080fd5b81356020613bc0613bbb83613b76565b613b45565b82815260059290921b84018101918181019086841115613bdf57600080fd5b8286015b84811015613bfa5780358352918301918301613be3565b509695505050505050565b60008060408385031215613c1857600080fd5b823567ffffffffffffffff80821115613c3057600080fd5b818501915085601f830112613c4457600080fd5b81356020613c54613bbb83613b76565b82815260059290921b84018101918181019089841115613c7357600080fd5b948201945b83861015613c9a578535613c8b81613a6e565b82529482019490820190613c78565b96505086013592505080821115613cb057600080fd5b50613cbd85828601613b9a565b9150509250929050565b803561ffff81168114613cd957600080fd5b919050565b600080600060608486031215613cf357600080fd5b613cfc84613cc7565b9250613d0a60208501613cc7565b9150613d1860408501613cc7565b90509250925092565b60008060408385031215613d3457600080fd5b8235613a0581613a6e565b600060208284031215613d5157600080fd5b5035919050565b60008060408385031215613d6b57600080fd5b613d7483613cc7565b9150613d8260208401613cc7565b90509250929050565b60008060408385031215613d9e57600080fd5b8235613da981613a6e565b91506020830135613a1581613a6e565b60008060008060808587031215613dcf57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115613e3c578160001904821115613e2257613e22613deb565b80851615613e2f57918102915b93841c9390800290613e06565b509250929050565b600082613e5357506001610bfe565b81613e6057506000610bfe565b8160018114613e765760028114613e8057613e9c565b6001915050610bfe565b60ff841115613e9157613e91613deb565b50506001821b610bfe565b5060208310610133831016604e8410600b8410161715613ebf575081810a610bfe565b613ec98383613e01565b8060001904821115613edd57613edd613deb565b029392505050565b60006133eb60ff841683613e44565b600082613f1157634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610bfe57610bfe613deb565b81810381811115610bfe57610bfe613deb565b634e487b7160e01b600052603260045260246000fd5b600061ffff808316818103613f6d57613f6d613deb565b6001019392505050565b80820180821115610bfe57610bfe613deb565b61ffff818116838216019080821115613fa557613fa5613deb565b5092915050565b600060208284031215613fbe57600080fd5b5051919050565b600060208284031215613fd757600080fd5b81516133eb816139d9565b600060208284031215613ff457600080fd5b81516133eb81613a6e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561404f5784516001600160a01b03168352938301939183019160010161402a565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a26469706673582212209eb8fa0b3c0fe714179b9067fb64dbb90a9b3403b3c287a3da4000ed1aed5d6164736f6c63430008110033
Deployed Bytecode Sourcemap
3951:22284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5573:73;;;;;;;;;;;;5604:42;5573:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5573:73:0;;;;;;;;5822:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5822:28:0;245:177:1;14849:153:0;;;;;;;;;;-1:-1:-1;14849:153:0;;;;;:::i;:::-;;:::i;:::-;;4991:107;;;;;;;;;;-1:-1:-1;4991:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;4991:107:0;931:365:1;10631:80:0;;;;;;;;;;-1:-1:-1;10703:5:0;;;;;;;;;;;-1:-1:-1;;;10703:5:0;;;;10631:80;;;;10703:5;10631:80;:::i;5512:26::-;;;;;;;;;;-1:-1:-1;5512:26:0;;;;;;;-1:-1:-1;;;;;5512:26:0;;;5479;;;;;;;;;;-1:-1:-1;5479:26:0;;;;;;;;;;;2267:14:1;;2260:22;2242:41;;2230:2;2215:18;5479:26:0;2102:187:1;11239:161:0;;;;;;;;;;-1:-1:-1;11239:161:0;;;;;:::i;:::-;;:::i;14278:140::-;;;;;;;;;;-1:-1:-1;14278:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;14376:34:0;14352:4;14376:34;;;:25;:34;;;;;;;;;14278:140;16966:114;;;;;;;;;;;;;:::i;10366:83::-;;;;;;;;;;;;;:::i;11909:306::-;;;;;;;;;;-1:-1:-1;11909:306:0;;;;;:::i;:::-;;:::i;16578:264::-;;;;;;;;;;-1:-1:-1;16578:264:0;;;;;:::i;:::-;;:::i;23620:447::-;;;;;;;;;;-1:-1:-1;23620:447:0;;;;;:::i;:::-;;:::i;5930:33::-;;;;;;;;;;;;;;;;14582:141;;;;;;;;;;;;;:::i;5223:42::-;;;;;;;;;;;;5261:4;5223:42;;5857:25;;;;;;;;;;;;;;;;10455:80;;;;;;;;;;-1:-1:-1;10455:80:0;;4700:2;6368:36:1;;6356:2;6341:18;10455:80:0;6226:184:1;15200:544:0;;;;;;;;;;-1:-1:-1;15200:544:0;;;;;:::i;:::-;;:::i;14731:110::-;;;;;;;;;;-1:-1:-1;14731:110:0;;;;;:::i;:::-;;:::i;13853:140::-;;;;;;;;;;-1:-1:-1;13853:140:0;;;;;:::i;:::-;;:::i;16297:273::-;;;;;;;;;;-1:-1:-1;16297:273:0;;;;;:::i;:::-;;:::i;5545:21::-;;;;;;;;;;-1:-1:-1;5545:21:0;;;;-1:-1:-1;;;;;5545:21:0;;;5376:46;;;;;;;;;;;;5418:4;5376:46;;6098:34;;;;;;;;;;-1:-1:-1;6098:34:0;;;;;;;;17088:189;;;;;;;;;;-1:-1:-1;17088:189:0;;;;;:::i;:::-;;:::i;17992:217::-;;;;;;;;;;-1:-1:-1;17992:217:0;;;;;:::i;:::-;;:::i;9089:654::-;;;;;;;;;;-1:-1:-1;9089:654:0;;;;;:::i;:::-;;:::i;14001:127::-;;;;;;;;;;-1:-1:-1;14001:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;14092:28:0;14068:4;14092:28;;;:19;:28;;;;;;;;;14001:127;6139:36;;;;;;;;;;-1:-1:-1;6139:36:0;;;;;;;;;;;14136:134;;;;;;;;;;-1:-1:-1;14136:134:0;;;;;:::i;:::-;;:::i;6212:26::-;;;;;;;;;;;;;;;;13483:222;;;;;;;;;;-1:-1:-1;13483:222:0;;;;;:::i;:::-;;:::i;13713:132::-;;;;;;;;;;-1:-1:-1;13713:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;13807:30:0;13783:4;13807:30;;;:21;:30;;;;;;;;;13713:132;16850:108;;;;;;;;;;;;;:::i;10941:117::-;;;;;;;;;;-1:-1:-1;10941:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;11034:16:0;11007:7;11034:16;;;:7;:16;;;;;;;10941:117;9751:225;;;;;;;;;;;;;:::i;5653:92::-;;;;;;;;;;-1:-1:-1;5653:92:0;;;;-1:-1:-1;;;;;5653:92:0;;;15010:182;;;;;;;;;;;;;:::i;12911:564::-;;;;;;;;;;-1:-1:-1;12911:564:0;;;;;:::i;:::-;;:::i;10717:79::-;;;;;;;;;;-1:-1:-1;10787:6:0;;-1:-1:-1;;;;;10787:6:0;10717:79;;11726:175;;;;;;;;;;;;;:::i;22573:593::-;;;;;;;;;;;;;:::i;11066:165::-;;;;;;;;;;-1:-1:-1;11066:165:0;;;;;:::i;:::-;;:::i;23364:248::-;;;;;;;;;;-1:-1:-1;23364:248:0;;;;;:::i;:::-;;:::i;5889:34::-;;;;;;;;;;-1:-1:-1;5889:34:0;;;;;;;;15752:338;;;;;;;;;;-1:-1:-1;15752:338:0;;;;;:::i;:::-;;:::i;18217:263::-;;;;;;;;;;-1:-1:-1;18217:263:0;;;;;:::i;:::-;;:::i;5107:107::-;;;;;;;;;;-1:-1:-1;5107:107:0;;;;;;;;;;;;;;;;;;;;;;10802:133;;;;;;;;;;-1:-1:-1;10802:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10904:19:0;;;10886:7;10904:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10802:133;12223:680;;;;;;;;;;-1:-1:-1;12223:680:0;;;;;:::i;:::-;;:::i;16098:191::-;;;;;;;;;;-1:-1:-1;16098:191:0;;;;;:::i;:::-;;:::i;23174:182::-;;;;;;;;;;;;;:::i;17285:699::-;;;;;;;;;;-1:-1:-1;17285:699:0;;;;;:::i;:::-;;:::i;5776:39::-;;;;;;;;;;-1:-1:-1;5776:39:0;;;;-1:-1:-1;;;5776:39:0;;;;;;14426:148;;;;;;;;;;-1:-1:-1;14426:148:0;;;;;:::i;:::-;;:::i;14849:153::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;;;;;;;;;14944:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;14944:50:0;;9568:14:1;;9561:22;14944:50:0::1;::::0;::::1;9543:41:1::0;9627:14;;9620:22;9600:18;;;9593:50;14944:11:0;;;::::1;-1:-1:-1::0;;;;;14944:11:0::1;::::0;:26:::1;::::0;9516:18:1;;14944:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14849:153:::0;;:::o;11239:161::-;11316:4;11333:37;11342:10;11354:7;11363:6;11333:8;:37::i;:::-;-1:-1:-1;11388:4:0;11239:161;;;;;:::o;16966:114::-;17013:7;17058:13;4700:2;17058;:13;:::i;:::-;17040:14;;:32;;;;:::i;:::-;17033:39;;16966:114;:::o;10366:83::-;10421:7;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;;4543:11;4744:30;:::i;11909:306::-;-1:-1:-1;;;;;12030:19:0;;12009:4;12030:19;;;:11;:19;;;;;;;;12050:10;12030:31;;;;;;;;-1:-1:-1;;12030:52:0;12026:126;;-1:-1:-1;;;;;12099:19:0;;;;;;:11;:19;;;;;;;;12119:10;12099:31;;;;;;;:41;;12134:6;;12099:19;:41;;12134:6;;12099:41;:::i;:::-;;;;-1:-1:-1;;12026:126:0;12171:36;12181:6;12189:9;12200:6;12171:9;:36::i;:::-;12164:43;11909:306;-1:-1:-1;;;;11909:306:0:o;16578:264::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;16720:3:::1;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16710:13;;;;:::i;:::-;16698:7:::0;16687;4761:13:::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16677:17;;;;:::i;:::-;16676:29;;;;:::i;:::-;:48;;16668:109;;;::::0;-1:-1:-1;;;16668:109:0;;11899:2:1;16668:109:0::1;::::0;::::1;11881:21:1::0;11938:2;11918:18;;;11911:30;11977:34;11957:18;;;11950:62;12048:18;12028;;;12021:46;12084:19;;16668:109:0::1;11697:412:1::0;16668:109:0::1;16827:7:::0;16816;4761:13:::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16806:17;;;;:::i;:::-;16805:29;;;;:::i;:::-;16788:14;:46:::0;-1:-1:-1;;16578:264:0:o;23620:447::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;23755:7:::1;:14;23736:8;:15;:33;23728:67;;;::::0;-1:-1:-1;;;23728:67:0;;12316:2:1;23728:67:0::1;::::0;::::1;12298:21:1::0;12355:2;12335:18;;;12328:30;12394:23;12374:18;;;12367:51;12435:18;;23728:67:0::1;12114:345:1::0;23728:67:0::1;23811:8;23806:254;23829:8;:15;23825:1;:19;;;23806:254;;;23910:13;4700:2;23910;:13;:::i;:::-;23899:7;23907:1;23899:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;23884:10;11007:7:::0;11034:16;;;:7;:16;;;;;;23874:49:::1;;23866:80;;;::::0;-1:-1:-1;;;23866:80:0;;12798:2:1;23866:80:0::1;::::0;::::1;12780:21:1::0;12837:2;12817:18;;;12810:30;12876:20;12856:18;;;12849:48;12914:18;;23866:80:0::1;12596:342:1::0;23866:80:0::1;23961:87;23978:10;23990:8;23999:1;23990:11;;;;;;;;;;:::i;:::-;;;;;;;4700:2;24014;:13;;;;:::i;:::-;24003:7;24011:1;24003:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;24029:5;24036::::0;24043:4:::1;23961:16;:87::i;:::-;-1:-1:-1::0;23846:3:0;::::1;::::0;::::1;:::i;:::-;;;;23806:254;;;;23620:447:::0;;:::o;14582:141::-;11034:7;:16;;;;5604:42;14635:7;11034:16;;;;;14635:7;;14674:39;;;:::i;:::-;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;;4543:11;4744:30;:::i;:::-;14663:51;;;;:::i;15200:544::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;15308:14:::1;::::0;::::1;;15307:15;15299:45;;;::::0;-1:-1:-1;;;15299:45:0;;13477:2:1;15299:45:0::1;::::0;::::1;13459:21:1::0;13516:2;13496:18;;;13489:30;13555:19;13535:18;;;13528:47;13592:18;;15299:45:0::1;13275:341:1::0;15299:45:0::1;5261:4;15363:6;:21;;;;:65;;;;;5311:4;15405:7;:23;;;;15363:65;:117;;;;;5365:4;15449:11;:31;;;;15363:117;15355:170;;;::::0;-1:-1:-1;;;15355:170:0;;13823:2:1;15355:170:0::1;::::0;::::1;13805:21:1::0;13862:2;13842:18;;;13835:30;13901:25;13881:18;;;13874:53;13944:18;;15355:170:0::1;13621:347:1::0;15355:170:0::1;5418:4;15544:16;15553:7:::0;15544:6;:16:::1;:::i;:::-;:35;;;;15536:80;;;::::0;-1:-1:-1;;;15536:80:0;;14348:2:1;15536:80:0::1;::::0;::::1;14330:21:1::0;;;14367:18;;;14360:30;14426:34;14406:18;;;14399:62;14478:18;;15536:80:0::1;14146:356:1::0;15536:80:0::1;15627:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;15663:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;15701:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;15200:544::o;14731:110::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;14800:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;14800:33:0;;-1:-1:-1;;;;;178:55:1;;;14800:33:0::1;::::0;::::1;160:74:1::0;14800:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;14800:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14731:110:::0;:::o;13853:140::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;-1:-1:-1;;;;;13945:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;13945:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13853:140::o;16297:273::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;16442:4:::1;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16428:11;::::0;16438:1:::1;16428:11;:::i;:::-;:18;;;;:::i;:::-;16416:7:::0;16405;4761:13:::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16395:17;;;;:::i;:::-;16394:29;;;;:::i;:::-;:53;;16386:121;;;::::0;-1:-1:-1;;;16386:121:0;;14709:2:1;16386:121:0::1;::::0;::::1;14691:21:1::0;14748:2;14728:18;;;14721:30;14787:34;14767:18;;;14760:62;14858:25;14838:18;;;14831:53;14901:19;;16386:121:0::1;14507:419:1::0;16386:121:0::1;16555:7:::0;16544;4761:13:::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;16534:17;;;;:::i;:::-;16533:29;;;;:::i;:::-;16518:12;:44:::0;-1:-1:-1;;16297:273:0:o;17088:189::-;17217:6;;-1:-1:-1;;;;;17217:6:0;17179:7;11034:16;;;:7;:16;;;;;;5465:5;;17207:41;;17227:21;;17207:41;:::i;:::-;17206:62;;;;:::i;17992:217::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;18122:3:::1;18096:22;:29;;18088:64;;;::::0;-1:-1:-1;;;18088:64:0;;15133:2:1;18088:64:0::1;::::0;::::1;15115:21:1::0;15172:2;15152:18;;;15145:30;15211:24;15191:18;;;15184:52;15253:18;;18088:64:0::1;14931:346:1::0;18088:64:0::1;18163:13;:38:::0;17992:217::o;9089:654::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;-1:-1:-1;;;;;9168:22:0;::::1;9160:96;;;::::0;-1:-1:-1;;;9160:96:0;;15484:2:1;9160:96:0::1;::::0;::::1;15466:21:1::0;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;15633:31;15613:18;;;15606:59;15682:19;;9160:96:0::1;15282:425:1::0;9160:96:0::1;-1:-1:-1::0;;;;;;;9275:16:0;::::1;::::0;9267:90:::1;;;::::0;-1:-1:-1;;;9267:90:0;;15484:2:1;9267:90:0::1;::::0;::::1;15466:21:1::0;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;15633:31;15613:18;;;15606:59;15682:19;;9267:90:0::1;15282:425:1::0;9267:90:0::1;9388:6;::::0;9368:34:::1;::::0;-1:-1:-1;;;;;9388:6:0::1;;9368:19;:34::i;:::-;9413:35;9433:8;9443:4;9413:19;:35::i;:::-;9483:6;::::0;-1:-1:-1;;;;;9483:6:0::1;9493:1;11034:16:::0;;;:7;:16;;;;;;9473:21;9469:127:::1;;9528:6;::::0;-1:-1:-1;;;;;9528:6:0::1;11007:7:::0;11034:16;;;:7;:16;;;;;;9511:73:::1;::::0;9528:6;9536:8;;9546:17:::1;10941:117:::0;9511:73:::1;;9469:127;9635:6;::::0;;-1:-1:-1;;;;;9652:17:0;;::::1;-1:-1:-1::0;;;;;;9652:17:0;::::1;::::0;::::1;::::0;;;9685:40:::1;::::0;9635:6;::::1;::::0;9652:17;9635:6;;9685:40:::1;::::0;9616:16:::1;::::0;9685:40:::1;9149:594;9089:654:::0;:::o;14136:134::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;-1:-1:-1;;;;;14224:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;14224:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14136:134::o;13483:222::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;13567:14:::1;::::0;::::1;;13566:15;13558:24;;;::::0;::::1;;13624:4;-1:-1:-1::0;;;;;13601:28:0;::::1;::::0;13593:55:::1;;;::::0;-1:-1:-1;;;13593:55:0;;15914:2:1;13593:55:0::1;::::0;::::1;15896:21:1::0;15953:2;15933:18;;;15926:30;15992:16;15972:18;;;15965:44;16026:18;;13593:55:0::1;15712:338:1::0;13593:55:0::1;13659:11;:38:::0;;-1:-1:-1;;;;;13659:38:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;13659:38:0;;::::1;::::0;;;::::1;::::0;;13483:222::o;16850:108::-;16893:7;16936:13;4700:2;16936;:13;:::i;:::-;16920:12;;:30;;;;:::i;9751:225::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;9830:6:::1;::::0;9810:34:::1;::::0;-1:-1:-1;;;;;9830:6:0::1;;9810:19;:34::i;:::-;9874:6;::::0;;-1:-1:-1;;;;;;9891:19:0;::::1;::::0;;;9926:42:::1;::::0;-1:-1:-1;;;;;9874:6:0;;::::1;::::0;9855:16:::1;::::0;9874:6;;9926:42:::1;::::0;9855:16;;9926:42:::1;9799:177;9751:225::o:0;15010:182::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;15163:14:::1;:21:::0;;-1:-1:-1;;15163:21:0::1;15180:4;15163:21;::::0;;15010:182::o;12911:564::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;12993:7:::1;12988:480;;-1:-1:-1::0;;;;;13017:13:0;;::::1;13033:5;13017:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;13017:21:0::1;::::0;;13053:11:::1;::::0;:34;;-1:-1:-1;;;13053:34:0;;::::1;::::0;::::1;16223:74:1::0;;;;16313:18;;;16306:50;;;;13053:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;16196:18:1;;13053:34:0::1;16055:307:1::0;12988:480:0::1;13124:17;::::0;:22;13120:135:::1;;13213:6;13193:17;;13175:15;:35;;;;:::i;:::-;:44;13167:72;;;::::0;-1:-1:-1;;;13167:72:0;;16569:2:1;13167:72:0::1;::::0;::::1;16551:21:1::0;16608:2;16588:18;;;16581:30;16647:17;16627:18;;;16620:45;16682:18;;13167:72:0::1;16367:339:1::0;13167:72:0::1;-1:-1:-1::0;;;;;13278:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;13277:14;13269:54;;;::::0;-1:-1:-1;;;13269:54:0;;16913:2:1;13269:54:0::1;::::0;::::1;16895:21:1::0;16952:2;16932:18;;;16925:30;16991:29;16971:18;;;16964:57;17038:18;;13269:54:0::1;16711:351:1::0;13269:54:0::1;-1:-1:-1::0;;;;;13338:13:0;;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;:20;;-1:-1:-1;;13338:20:0::1;13354:4;13338:20:::0;;::::1;::::0;;;13393:15:::1;13373:17;:35:::0;13423:11:::1;::::0;:33;;-1:-1:-1;;;13423:33:0;;::::1;::::0;::::1;16223:74:1::0;;;;16313:18;;;16306:50;13423:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;16196:18:1;;13423:33:0::1;16055:307:1::0;12988:480:0::1;12911:564:::0;;:::o;11726:175::-;8943:6;;11792:4;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;11841:9:::1;::::0;11809:62:::1;::::0;11826:4:::1;::::0;11841:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11841:9:0::1;-1:-1:-1::0;;11809:8:0::1;:62::i;:::-;-1:-1:-1::0;11889:4:0::1;11726:175:::0;:::o;22573:593::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;22635:14:::1;::::0;::::1;;22634:15;22626:52;;;::::0;-1:-1:-1;;;22626:52:0;;17269:2:1;22626:52:0::1;::::0;::::1;17251:21:1::0;17308:2;17288:18;;;17281:30;17347:26;17327:18;;;17320:54;17391:18;;22626:52:0::1;17067:348:1::0;22626:52:0::1;22697:16;::::0;::::1;::::0;::::1;;;22689:53;;;::::0;-1:-1:-1;;;22689:53:0;;17622:2:1;22689:53:0::1;::::0;::::1;17604:21:1::0;17661:2;17641:18;;;17634:30;17700:26;17680:18;;;17673:54;17744:18;;22689:53:0::1;17420:348:1::0;22689:53:0::1;22765:11;::::0;;;::::1;-1:-1:-1::0;;;;;22765:11:0::1;22753:106;;22807:11;:40:::0;;-1:-1:-1;;;;;;22807:40:0::1;22841:4;22807:40:::0;::::1;;::::0;;22753:106:::1;22873:11;::::0;22895:6:::1;::::0;22873:87:::1;::::0;-1:-1:-1;;;22873:87:0;;-1:-1:-1;;;;;22895:6:0;;::::1;22873:87;::::0;::::1;17996:74:1::0;18118:10;22910:12:0::1;18106:23:1::0;18086:18;;;18079:51;18178:18;22932:15:0::1;18166:31:1::0;18146:18;;;18139:59;4700:2:0::1;18214:18:1::0;;;18207:45;22873:11:0;;;::::1;;::::0;:21:::1;::::0;17968:19:1;;22873:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;22869:103:::0;22982:14:::1;:21:::0;;-1:-1:-1;;22982:21:0::1;22999:4;22982:21;::::0;;23041:6:::1;::::0;23057:5:::1;::::0;23031:17:::1;::::0;-1:-1:-1;;;;;23041:6:0::1;-1:-1:-1::0;;;;;11034:16:0;11007:7;11034:16;;;:7;:16;;;;;;;10941:117;23031:17:::1;:22;::::0;23051:2:::1;23031:22;:::i;:::-;23030:32;;;;:::i;:::-;23014:13;:48:::0;23097:6:::1;::::0;-1:-1:-1;;;;;23097:6:0::1;11007:7:::0;11034:16;;;:7;:16;;;;;;23113:5:::1;::::0;23087:22:::1;::::0;23107:2:::1;23087:22;:::i;:::-;23086:32;;;;:::i;:::-;23073:10;:45:::0;23143:15:::1;23129:11;:29:::0;22573:593::o;11066:165::-;11144:4;11161:40;11171:10;11183:9;11194:6;11161:9;:40::i;:::-;-1:-1:-1;11219:4:0;;11066:165;-1:-1:-1;;;11066:165:0:o;23364:248::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;23463:4:::1;-1:-1:-1::0;;;;;23446:22:0;::::1;::::0;23438:62:::1;;;::::0;-1:-1:-1;;;23438:62:0;;18465:2:1;23438:62:0::1;::::0;::::1;18447:21:1::0;18504:2;18484:18;;;18477:30;18543:29;18523:18;;;18516:57;18590:18;;23438:62:0::1;18263:351:1::0;23438:62:0::1;23565:6;::::0;23573:30:::1;::::0;-1:-1:-1;;;23573:30:0;;23597:4:::1;23573:30;::::0;::::1;160:74:1::0;23533:5:0;;-1:-1:-1;;;;;23550:14:0;;::::1;::::0;::::1;::::0;23565:6;;;::::1;::::0;23550:14;;23573:15:::1;::::0;133:18:1;;23573:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23550:54;::::0;-1:-1:-1;;;;;;23550:54:0::1;::::0;;;;;;-1:-1:-1;;;;;19000:55:1;;;23550:54:0::1;::::0;::::1;18982:74:1::0;19072:18;;;19065:34;18955:18;;23550:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15752:338::-:0;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;15832:7:::1;:29:::0;;-1:-1:-1;;15872:19:0;15832:29;::::1;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;15872:19:0;;;;;;;::::1;;::::0;;15918:16:::1;15872:19:::0;15832:29;15918:16:::1;:::i;:::-;15902:7;:32:::0;;-1:-1:-1;;15902:32:0::1;::::0;::::1;::::0;;::::1;;;::::0;;15980:9:::1;:17:::0;-1:-1:-1;;15961:36:0::1;::::0;15980:17;;::::1;::::0;::::1;::::0;15961:16:::1;:36;:::i;:::-;16016:7;:13:::0;15945:52:::1;::::0;;::::1;::::0;-1:-1:-1;16016:13:0;;::::1;;:22:::0;-1:-1:-1;16016:22:0::1;16008:74;;;::::0;-1:-1:-1;;;16008:74:0;;19562:2:1;16008:74:0::1;::::0;::::1;19544:21:1::0;19601:2;19581:18;;;19574:30;19640:34;19620:18;;;19613:62;-1:-1:-1;;;19691:18:1;;;19684:37;19738:19;;16008:74:0::1;19360:403:1::0;18217:263:0;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;18326:19:::1;:33:::0;;-1:-1:-1;;;;18326:33:0::1;-1:-1:-1::0;;;18326:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;18370:22:::1;:47:::0;;-1:-1:-1;;18370:47:0::1;::::0;::::1;;;::::0;;18433:39:::1;::::0;2242:41:1;;;18433:39:0::1;::::0;2230:2:1;2215:18;18433:39:0::1;;;;;;;;18217:263:::0;;:::o;12223:680::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;12303:16:::1;::::0;::::1;::::0;::::1;;;12302:17;12294:60;;;::::0;-1:-1:-1;;;12294:60:0;;19970:2:1;12294:60:0::1;::::0;::::1;19952:21:1::0;20009:2;19989:18;;;19982:30;20048:32;20028:18;;;20021:60;20098:18;;12294:60:0::1;19768:354:1::0;12294:60:0::1;12365:20;12398:9;12365:43;;12419:16;12449:10;-1:-1:-1::0;;;;;12449:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12438:40:0::1;;12487:4;12494:10;-1:-1:-1::0;;;;;12494:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12438:74;::::0;-1:-1:-1;;;;;;12438:74:0::1;::::0;;;;;;-1:-1:-1;;;;;20636:15:1;;;12438:74:0::1;::::0;::::1;20618:34:1::0;20688:15;;20668:18;;;20661:43;20530:18;;12438:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12531:6;::::0;-1:-1:-1;;;;;12531:6:0;;::::1;12541:5;12523:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;12523:23:0::1;::::0;;12419:93;;-1:-1:-1;12561:22:0;::::1;12557:200;;12620:10;-1:-1:-1::0;;;;;12620:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12609:43:0::1;;12661:4;12668:10;-1:-1:-1::0;;;;;12668:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12609:77;::::0;-1:-1:-1;;;;;;12609:77:0::1;::::0;;;;;;-1:-1:-1;;;;;20636:15:1;;;12609:77:0::1;::::0;::::1;20618:34:1::0;20688:15;;20668:18;;;20661:43;20530:18;;12609:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12600:6;:86:::0;;-1:-1:-1;;;;;;12600:86:0::1;-1:-1:-1::0;;;;;12600:86:0;;;::::1;::::0;;;::::1;::::0;;12557:200:::1;;;12728:6;:17:::0;;-1:-1:-1;;;;;;12728:17:0::1;-1:-1:-1::0;;;;;12728:17:0;::::1;;::::0;;12557:200:::1;12767:9;:22:::0;;-1:-1:-1;;12767:22:0::1;;-1:-1:-1::0;;;;;12767:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12808:6:::1;::::0;;::::1;-1:-1:-1::0;12800:15:0;;;:7:::1;:15;::::0;;;;:22;;-1:-1:-1;;12800:22:0::1;-1:-1:-1::0;12800:22:0::1;::::0;;12865:9;;12833:62:::1;::::0;12850:4:::1;::::0;12865:9;::::1;;-1:-1:-1::0;;12833:8:0::1;:62::i;16098:191::-:0;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;-1:-1:-1;;;;;16183:23:0;::::1;16175:59;;;::::0;-1:-1:-1;;;16175:59:0;;20917:2:1;16175:59:0::1;::::0;::::1;20899:21:1::0;20956:2;20936:18;;;20929:30;20995:25;20975:18;;;20968:53;21038:18;;16175:59:0::1;20715:347:1::0;16175:59:0::1;16245:15;:36:::0;;-1:-1:-1;;;;;;16245:36:0::1;-1:-1:-1::0;;;;;16245:36:0;;;::::1;::::0;;;::::1;::::0;;16098:191::o;23174:182::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;23241:16:::1;::::0;::::1;::::0;::::1;;;23240:17;23232:58;;;::::0;-1:-1:-1;;;23232:58:0;;21269:2:1;23232:58:0::1;::::0;::::1;21251:21:1::0;21308:2;21288:18;;;21281:30;21347;21327:18;;;21320:58;21395:18;;23232:58:0::1;21067:352:1::0;23232:58:0::1;23309:6;::::0;23301:47:::1;::::0;-1:-1:-1;;;;;23309:6:0;;::::1;::::0;23326:21:::1;23301:47:::0;::::1;;;::::0;23309:6:::1;23301:47:::0;23309:6;23301:47;23326:21;23309:6;23301:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23174:182::o:0;17285:699::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;17485:16;17465;4761:13:::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;17455:26;;;;:::i;:::-;17454:47;;;;:::i;:::-;17438:13;:63:::0;17553:13;17536;4761::::1;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;17526:23;;;;:::i;:::-;17525:41;;;;:::i;:::-;17512:10;:54:::0;;;17585:13:::1;::::0;:27:::1;;17577:73;;;::::0;-1:-1:-1;;;17577:73:0;;21626:2:1;17577:73:0::1;::::0;::::1;21608:21:1::0;21665:2;21645:18;;;21638:30;21704:34;21684:18;;;21677:62;-1:-1:-1;;;21755:18:1;;;21748:31;21796:19;;17577:73:0::1;21424:397:1::0;17577:73:0::1;17694:6;::::0;-1:-1:-1;;;;;17694:6:0::1;11007:7:::0;11034:16;;;:7;:16;;;;;;5465:5:::1;::::0;17684:23:::1;::::0;17704:3:::1;17684:23;:::i;:::-;17683:44;;;;:::i;:::-;17669:10;;:58;;17661:106;;;::::0;-1:-1:-1;;;17661:106:0;;22028:2:1;17661:106:0::1;::::0;::::1;22010:21:1::0;22067:2;22047:18;;;22040:30;22106:34;22086:18;;;22079:62;-1:-1:-1;;;22157:18:1;;;22150:33;22200:19;;17661:106:0::1;21826:399:1::0;17661:106:0::1;17810:9;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;17800:19;;;;:::i;:::-;17786:10;;:33;;17778:92;;;::::0;-1:-1:-1;;;17778:92:0;;22432:2:1;17778:92:0::1;::::0;::::1;22414:21:1::0;22471:2;22451:18;;;22444:30;22510:34;22490:18;;;22483:62;-1:-1:-1;;;22561:18:1;;;22554:44;22615:19;;17778:92:0::1;22230:410:1::0;17778:92:0::1;17916:9;4761:13;4700:2;4761;:13;:::i;:::-;4744:30;::::0;4543:11:::1;4744:30;:::i;:::-;17906:19;;;;:::i;:::-;17889:13;;:36;;17881:95;;;::::0;-1:-1:-1;;;17881:95:0;;22432:2:1;17881:95:0::1;::::0;::::1;22414:21:1::0;22471:2;22451:18;;;22444:30;22510:34;22490:18;;;22483:62;-1:-1:-1;;;22561:18:1;;;22554:44;22615:19;;17881:95:0::1;22230:410:1::0;17881:95:0::1;17285:699:::0;;;;:::o;14426:148::-;8943:6;;-1:-1:-1;;;;;8943:6:0;8953:10;8943:20;8935:50;;;;-1:-1:-1;;;8935:50:0;;9237:2:1;8935:50:0;;;9219:21:1;9276:2;9256:18;;;9249:30;-1:-1:-1;;;;;;;;;;;9295:18:1;;;9288:47;9352:18;;8935:50:0;9035:341:1;8935:50:0;-1:-1:-1;;;;;14522:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;14522:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14426:148::o;11408:310::-;-1:-1:-1;;;;;11503:20:0;;11495:52;;;;-1:-1:-1;;;11495:52:0;;22847:2:1;11495:52:0;;;22829:21:1;22886:2;22866:18;;;22859:30;-1:-1:-1;;;22905:18:1;;;22898:49;22964:18;;11495:52:0;22645:343:1;11495:52:0;-1:-1:-1;;;;;11566:21:0;;11558:53;;;;-1:-1:-1;;;11558:53:0;;22847:2:1;11558:53:0;;;22829:21:1;22886:2;22866:18;;;22859:30;-1:-1:-1;;;22905:18:1;;;22898:49;22964:18;;11558:53:0;22645:343:1;11558:53:0;-1:-1:-1;;;;;11624:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;11677:33;;391:25:1;;;11677:33:0;;364:18:1;11677:33:0;;;;;;;11408:310;;;:::o;18942:2176::-;19021:4;-1:-1:-1;;;;;19046:18:0;;19038:68;;;;-1:-1:-1;;;19038:68:0;;23195:2:1;19038:68:0;;;23177:21:1;23234:2;23214:18;;;23207:30;23273:34;23253:18;;;23246:62;-1:-1:-1;;;23324:18:1;;;23317:35;23369:19;;19038:68:0;22993:401:1;19038:68:0;-1:-1:-1;;;;;19125:16:0;;19117:64;;;;-1:-1:-1;;;19117:64:0;;23601:2:1;19117:64:0;;;23583:21:1;23640:2;23620:18;;;23613:30;23679:34;23659:18;;;23652:62;-1:-1:-1;;;23730:18:1;;;23723:33;23773:19;;19117:64:0;23399:399:1;19117:64:0;19209:1;19200:6;:10;19192:64;;;;-1:-1:-1;;;19192:64:0;;24005:2:1;19192:64:0;;;23987:21:1;24044:2;24024:18;;;24017:30;24083:34;24063:18;;;24056:62;-1:-1:-1;;;24134:18:1;;;24127:39;24183:19;;19192:64:0;23803:405:1;19192:64:0;-1:-1:-1;;;;;19355:13:0;;19267:8;19355:13;;;:7;:13;;;;;;19267:8;;;;19355:13;;19351:162;;;19391:4;19385:10;;19351:162;;;-1:-1:-1;;;;;19417:11:0;;;;;;:7;:11;;;;;;;;19413:100;;;19452:4;19445:11;;19413:100;;;-1:-1:-1;19497:4:0;19413:100;19527:20;19538:4;19544:2;19527:10;:20::i;:::-;19523:874;;;19568:14;;;;19564:319;;19608:5;19603:265;;19638:34;;-1:-1:-1;;;19638:34:0;;24415:2:1;19638:34:0;;;24397:21:1;24454:2;24434:18;;;24427:30;24493:26;24473:18;;;24466:54;24537:18;;19638:34:0;24213:348:1;19603:265:0;-1:-1:-1;;;;;19703:31:0;;;;;;:25;:31;;;;;;;;19702:32;:66;;;;-1:-1:-1;;;;;;19739:29:0;;;;;;:25;:29;;;;;;;;19738:30;19702:66;19698:170;;;19793:55;;-1:-1:-1;;;19793:55:0;;24768:2:1;19793:55:0;;;24750:21:1;24807:2;24787:18;;;24780:30;24846:34;24826:18;;;24819:62;-1:-1:-1;;;24897:18:1;;;24890:43;24950:19;;19793:55:0;24566:409:1;19698:170:0;19901:3;:11;;;;19908:4;19901:11;19897:232;;;-1:-1:-1;;;;;19937:27:0;;;;;;:21;:27;;;;;;;;19936:28;:58;;;;-1:-1:-1;;;;;;19969:25:0;;;;;;:21;:25;;;;;;;;19968:26;19936:58;19932:182;;;20037:12;;20027:6;:22;;20019:75;;;;-1:-1:-1;;;20019:75:0;;25182:2:1;20019:75:0;;;25164:21:1;25221:2;25201:18;;;25194:30;25260:34;25240:18;;;25233:62;-1:-1:-1;;;25311:18:1;;;25304:38;25359:19;;20019:75:0;24980:404:1;20019:75:0;20161:9;;-1:-1:-1;;;;;20147:24:0;;;20161:9;;;;;20147:24;;;;:33;;;20176:4;20175:5;20147:33;20143:243;;;-1:-1:-1;;;;;20206:25:0;;;;;;:21;:25;;;;;;;;20201:170;;20290:14;;20280:6;20264:13;20274:2;-1:-1:-1;;;;;11034:16:0;11007:7;11034:16;;;:7;:16;;;;;;;10941:117;20264:13;:22;;;;:::i;:::-;:40;;20256:95;;;;-1:-1:-1;;;20256:95:0;;25591:2:1;20256:95:0;;;25573:21:1;25630:2;25610:18;;;25603:30;25669:34;25649:18;;;25642:62;-1:-1:-1;;;25720:18:1;;;25713:40;25770:19;;20256:95:0;25389:406:1;20256:95:0;20413:4;20409:632;;;20439:6;;-1:-1:-1;;;20439:6:0;;;;20434:596;;20470:19;;-1:-1:-1;;;20470:19:0;;;;20466:549;;;20563:4;20514:28;11034:16;;;:7;:16;;;;;;20620:13;;20596:37;;20592:404;;20680:10;;20721:22;;;;20717:97;;;20778:13;;20768:6;;-1:-1:-1;;;;;20768:6:0;11007:7;11034:16;;;:7;:16;;;;;;5465:5;;20758:33;;;:::i;:::-;20757:54;;;;:::i;:::-;20747:64;;20717:97;20868:7;20844:20;:31;20840:72;;20902:7;20879:30;;20840:72;20938:34;20951:20;20938:12;:34::i;:::-;20635:361;20592:404;20491:524;20466:549;21058:52;21075:4;21081:2;21085:6;21093:3;21098:4;21104:5;21058:16;:52::i;:::-;21051:59;18942:2176;-1:-1:-1;;;;;;;18942:2176:0:o;24075:1055::-;24194:4;24215:20;24226:4;24232:2;24215:10;:20::i;:::-;24211:228;;;24270:11;;:39;;-1:-1:-1;;;24270:39:0;;-1:-1:-1;;;;;26081:15:1;;;24270:39:0;;;26063:34:1;26133:15;;;26113:18;;;26106:43;26165:18;;;26158:34;;;24239:12:0;;24270:11;;;;;:21;;25975:18:1;;24270:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;24270:39:0;;;;;;;;-1:-1:-1;;24270:39:0;;;;;;;;;;;;:::i;:::-;;;24266:122;;24377:8;;;24266:122;24360:5;-1:-1:-1;24406:7:0;24402:26;;24417:8;;;24402:26;24237:202;24211:228;-1:-1:-1;;;;;24483:25:0;;24449:12;24483:25;;;:19;:25;;;;;;24464:4;;24483:25;;;:52;;-1:-1:-1;;;;;;24512:23:0;;;;;;:19;:23;;;;;;;;24483:52;24479:99;;;-1:-1:-1;24561:5:0;24479:99;-1:-1:-1;;;;;24588:13:0;;;;;;:7;:13;;;;;:23;;24605:6;;24588:13;:23;;24605:6;;24588:23;:::i;:::-;;;;-1:-1:-1;24622:22:0;;-1:-1:-1;24648:7:0;24647:55;;24696:6;24647:55;;;24659:34;24669:4;24675:3;24680:4;24686:6;24659:9;:34::i;:::-;-1:-1:-1;;;;;24713:11:0;;;;;;:7;:11;;;;;:29;;24622:80;;-1:-1:-1;24622:80:0;;24713:11;;;:29;;24622:80;;24713:29;:::i;:::-;;;;;;;;24773:2;-1:-1:-1;;;;;24758:34:0;24767:4;-1:-1:-1;;;;;24758:34:0;;24777:14;24758:34;;;;391:25:1;;379:2;364:18;;245:177;24758:34:0;;;;;;;;24808:16;;;;;;;24803:298;;24841:28;24860:4;24866:2;24841:18;:28::i;:::-;24889:16;;;;;;;24888:17;:41;;;;;24909:20;24920:4;24926:2;24909:10;:20::i;:::-;24888:77;;;;-1:-1:-1;;;;;;24934:31:0;;;;;;:25;:31;;;;;;;;24933:32;24888:77;:111;;;;-1:-1:-1;;;;;;24970:29:0;;;;;;:25;:29;;;;;;;;24969:30;24888:111;:121;;;;;25004:5;25003:6;24888:121;24884:206;;;25030:44;;-1:-1:-1;;;25030:44:0;;26405:2:1;25030:44:0;;;26387:21:1;26444:2;26424:18;;;26417:30;26483:34;26463:18;;;26456:62;-1:-1:-1;;;26534:18:1;;;26527:32;26576:19;;25030:44:0;26203:398:1;24884:206:0;-1:-1:-1;25118:4:0;;24075:1055;-1:-1:-1;;;;;;;;24075:1055:0:o;18488:446::-;18589:6;;18557:4;;-1:-1:-1;;;;;18581:14:0;;;18589:6;;18581:14;;;;:43;;-1:-1:-1;18618:6:0;;-1:-1:-1;;;;;18612:12:0;;;18618:6;;18612:12;;18581:43;:79;;;;-1:-1:-1;18654:6:0;;-1:-1:-1;;;;;18654:6:0;18641:9;:19;;18581:79;:118;;;;-1:-1:-1;;;;;;18678:21:0;;;;;;:17;:21;;;;;;;;18677:22;18581:118;:159;;;;-1:-1:-1;;;;;;18717:23:0;;;;;;:17;:23;;;;;;;;18716:24;18581:159;:186;;;;-1:-1:-1;;;;;;18757:10:0;;5604:42;18757:10;;18581:186;:219;;;;-1:-1:-1;;;;;;18784:16:0;;;;18581:219;:257;;;;-1:-1:-1;;;;;;18817:21:0;;18833:4;18817:21;;18581:257;:302;;;;-1:-1:-1;18871:11:0;;-1:-1:-1;;;;;18855:28:0;;;18871:11;;;;;18855:28;;18581:302;:345;;;;-1:-1:-1;18914:11:0;;-1:-1:-1;;;;;18900:26:0;;;18914:11;;;;;18900:26;;18581:345;18574:352;18488:446;-1:-1:-1;;;18488:446:0:o;21126:868::-;6403:6;:13;;-1:-1:-1;;;;6403:13:0;-1:-1:-1;;;6403:13:0;;;21209:30:::1;::::0;;::::1;::::0;::::1;::::0;;21232:7:::1;21209:30:::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;::::1;;::::0;;;;;;;6403:13;21254:17;21250:56:::1;;21288:7;;;21250:56;21342:4;21322:26;::::0;;;:11:::1;:26;::::0;;;;;;;21357:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21357:9:0::1;21322:46:::0;;;;;;;;-1:-1:-1;;21322:67:0::1;21318:166;;21426:4;21406:26;::::0;;;:11:::1;:26;::::0;;;;;;;21441:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;21441:9:0::1;21406:46:::0;;;;;;;-1:-1:-1;;21406:66:0;;21318:166:::1;21528:16;::::0;;21542:1:::1;21528:16:::0;;;;;::::1;::::0;;21504:21:::1;::::0;21528:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21528:16:0::1;21504:40;;21573:4;21555;21560:1;21555:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;21555:23:0::1;;;-1:-1:-1::0;;;;;21555:23:0::1;;;::::0;::::1;21599:9;;;;;;;;;-1:-1:-1::0;;;;;21599:9:0::1;-1:-1:-1::0;;;;;21599:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21589:4;21594:1;21589:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21589:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;21632:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;21632:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;21707:20;;21742:1:::1;::::0;21758:4;;21785::::1;::::0;21805:15:::1;::::0;21632:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;21628:246;;21856:7;;;;21628:246;21920:15;::::0;:66:::1;::::0;21884:12:::1;::::0;-1:-1:-1;;;;;21920:15:0::1;::::0;21976:5:::1;::::0;21948:21:::1;::::0;21884:12;21920:66;21884:12;21920:66;21948:21;21920:15;21976:5;21920:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;6427:1:0::1;-1:-1:-1::0;6439:6:0;:14;;-1:-1:-1;;;;6439:14:0;;;21126:868::o;25138:1094::-;25246:30;;;;;;;;25269:7;25246:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;25226:7;;;25316:205;;;;-1:-1:-1;25353:9:0;:16;;;25316:205;;;25391:4;25387:134;;;-1:-1:-1;25425:9:0;:17;;;;;;25387:134;;;-1:-1:-1;25488:9:0;:21;;;;;;25387:134;25535:10;25549:1;25535:15;25531:39;;25561:6;25554:13;;;;;;25531:39;25592:11;;;;;-1:-1:-1;;;;;25592:11:0;25616:4;25584:37;:110;;;;;25639:13;25656:1;25639:18;:54;;;;25674:13;25691:2;25674:19;25639:54;25580:138;;;-1:-1:-1;25711:4:0;25580:138;25728:17;5465:5;25748:19;25757:10;25748:6;:19;:::i;:::-;:38;;;;:::i;:::-;25728:58;;25797:18;25846:6;:12;;;25818:40;;25831:6;:11;;;25819:23;;:9;:23;;;;:::i;:::-;25818:40;;;;:::i;:::-;25797:61;-1:-1:-1;25869:14:0;25886:22;25797:61;25886:9;:22;:::i;:::-;25869:39;-1:-1:-1;25923:10:0;;25919:132;;25966:4;25950:22;;;;:7;:22;;;;;:32;;25976:6;;25950:22;:32;;25976:6;;25950:32;:::i;:::-;;;;-1:-1:-1;;26002:37:0;;391:25:1;;;26025:4:0;;-1:-1:-1;;;;;26002:37:0;;;;;379:2:1;364:18;26002:37:0;;;;;;;25919:132;26065:14;;26061:126;;5604:42;26096:13;;;;:7;:13;;;:27;;26113:10;;26096:13;:27;;26113:10;;26096:27;:::i;:::-;;;;-1:-1:-1;;26143:32:0;;391:25:1;;;5604:42:0;;-1:-1:-1;;;;;26143:32:0;;;;;379:2:1;364:18;26143:32:0;;;;;;;26061:126;26206:18;26215:9;26206:6;:18;:::i;:::-;26199:25;25138:1094;-1:-1:-1;;;;;;;;;;25138:1094:0:o;22002:563::-;22085:16;;;;;;;22084:17;22076:65;;;;-1:-1:-1;;;22076:65:0;;28049:2:1;22076:65:0;;;28031:21:1;28088:2;28068:18;;;28061:30;28127:34;28107:18;;;28100:62;-1:-1:-1;;;28178:18:1;;;28171:33;28221:19;;22076:65:0;27847:399:1;22076:65:0;22157:20;22168:4;22174:2;22157:10;:20::i;:::-;22156:21;:37;;;;-1:-1:-1;22187:6:0;;-1:-1:-1;;;;;22181:12:0;;;22187:6;;22181:12;22156:37;22152:406;;;-1:-1:-1;;;;;22210:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;22210:30:0;;;22236:4;22210:30;;;;;;22255:19;:25;;;;;:32;;;;;;;;;;22302:16;:23;;-1:-1:-1;;22302:23:0;22210:30;22302:23;;;;;22352:11;;;;22340:114;;22398:11;:40;;-1:-1:-1;;;;;;22398:40:0;22432:4;22398:40;;;;;22340:114;22468:19;:26;;-1:-1:-1;;;;22468:26:0;-1:-1:-1;;;22468:26:0;;;22514:32;;-1:-1:-1;2242:41:1;;22514:32:0;;2230:2:1;2215:18;22514:32:0;2102:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:548::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1585:3;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1840:2;1833;1829:7;1824:2;1816:6;1812:15;1808:29;1797:9;1793:45;1789:54;1781:62;;;;1301:548;;;;:::o;2294:154::-;-1:-1:-1;;;;;2373:5:1;2369:54;2362:5;2359:65;2349:93;;2438:1;2435;2428:12;2453:315;2521:6;2529;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2637:9;2624:23;2656:31;2681:5;2656:31;:::i;:::-;2706:5;2758:2;2743:18;;;;2730:32;;-1:-1:-1;;;2453:315:1:o;2773:247::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:31;2984:5;2959:31;:::i;3025:456::-;3102:6;3110;3118;3171:2;3159:9;3150:7;3146:23;3142:32;3139:52;;;3187:1;3184;3177:12;3139:52;3226:9;3213:23;3245:31;3270:5;3245:31;:::i;:::-;3295:5;-1:-1:-1;3352:2:1;3337:18;;3324:32;3365:33;3324:32;3365:33;:::i;:::-;3025:456;;3417:7;;-1:-1:-1;;;3471:2:1;3456:18;;;;3443:32;;3025:456::o;3486:248::-;3554:6;3562;3615:2;3603:9;3594:7;3590:23;3586:32;3583:52;;;3631:1;3628;3621:12;3583:52;-1:-1:-1;;3654:23:1;;;3724:2;3709:18;;;3696:32;;-1:-1:-1;3486:248:1:o;3739:127::-;3800:10;3795:3;3791:20;3788:1;3781:31;3831:4;3828:1;3821:15;3855:4;3852:1;3845:15;3871:275;3942:2;3936:9;4007:2;3988:13;;-1:-1:-1;;3984:27:1;3972:40;;4042:18;4027:34;;4063:22;;;4024:62;4021:88;;;4089:18;;:::i;:::-;4125:2;4118:22;3871:275;;-1:-1:-1;3871:275:1:o;4151:183::-;4211:4;4244:18;4236:6;4233:30;4230:56;;;4266:18;;:::i;:::-;-1:-1:-1;4311:1:1;4307:14;4323:4;4303:25;;4151:183::o;4339:662::-;4393:5;4446:3;4439:4;4431:6;4427:17;4423:27;4413:55;;4464:1;4461;4454:12;4413:55;4500:6;4487:20;4526:4;4550:60;4566:43;4606:2;4566:43;:::i;:::-;4550:60;:::i;:::-;4644:15;;;4730:1;4726:10;;;;4714:23;;4710:32;;;4675:12;;;;4754:15;;;4751:35;;;4782:1;4779;4772:12;4751:35;4818:2;4810:6;4806:15;4830:142;4846:6;4841:3;4838:15;4830:142;;;4912:17;;4900:30;;4950:12;;;;4863;;4830:142;;;-1:-1:-1;4990:5:1;4339:662;-1:-1:-1;;;;;;4339:662:1:o;5006:1215::-;5124:6;5132;5185:2;5173:9;5164:7;5160:23;5156:32;5153:52;;;5201:1;5198;5191:12;5153:52;5241:9;5228:23;5270:18;5311:2;5303:6;5300:14;5297:34;;;5327:1;5324;5317:12;5297:34;5365:6;5354:9;5350:22;5340:32;;5410:7;5403:4;5399:2;5395:13;5391:27;5381:55;;5432:1;5429;5422:12;5381:55;5468:2;5455:16;5490:4;5514:60;5530:43;5570:2;5530:43;:::i;5514:60::-;5608:15;;;5690:1;5686:10;;;;5678:19;;5674:28;;;5639:12;;;;5714:19;;;5711:39;;;5746:1;5743;5736:12;5711:39;5770:11;;;;5790:217;5806:6;5801:3;5798:15;5790:217;;;5886:3;5873:17;5903:31;5928:5;5903:31;:::i;:::-;5947:18;;5823:12;;;;5985;;;;5790:217;;;6026:5;-1:-1:-1;;6069:18:1;;6056:32;;-1:-1:-1;;6100:16:1;;;6097:36;;;6129:1;6126;6119:12;6097:36;;6152:63;6207:7;6196:8;6185:9;6181:24;6152:63;:::i;:::-;6142:73;;;5006:1215;;;;;:::o;6415:159::-;6482:20;;6542:6;6531:18;;6521:29;;6511:57;;6564:1;6561;6554:12;6511:57;6415:159;;;:::o;6579:328::-;6653:6;6661;6669;6722:2;6710:9;6701:7;6697:23;6693:32;6690:52;;;6738:1;6735;6728:12;6690:52;6761:28;6779:9;6761:28;:::i;:::-;6751:38;;6808:37;6841:2;6830:9;6826:18;6808:37;:::i;:::-;6798:47;;6864:37;6897:2;6886:9;6882:18;6864:37;:::i;:::-;6854:47;;6579:328;;;;;:::o;6912:382::-;6977:6;6985;7038:2;7026:9;7017:7;7013:23;7009:32;7006:52;;;7054:1;7051;7044:12;7006:52;7093:9;7080:23;7112:31;7137:5;7112:31;:::i;7299:180::-;7358:6;7411:2;7399:9;7390:7;7386:23;7382:32;7379:52;;;7427:1;7424;7417:12;7379:52;-1:-1:-1;7450:23:1;;7299:180;-1:-1:-1;7299:180:1:o;7731:256::-;7797:6;7805;7858:2;7846:9;7837:7;7833:23;7829:32;7826:52;;;7874:1;7871;7864:12;7826:52;7897:28;7915:9;7897:28;:::i;:::-;7887:38;;7944:37;7977:2;7966:9;7962:18;7944:37;:::i;:::-;7934:47;;7731:256;;;;;:::o;7992:388::-;8060:6;8068;8121:2;8109:9;8100:7;8096:23;8092:32;8089:52;;;8137:1;8134;8127:12;8089:52;8176:9;8163:23;8195:31;8220:5;8195:31;:::i;:::-;8245:5;-1:-1:-1;8302:2:1;8287:18;;8274:32;8315:33;8274:32;8315:33;:::i;8645:385::-;8731:6;8739;8747;8755;8808:3;8796:9;8787:7;8783:23;8779:33;8776:53;;;8825:1;8822;8815:12;8776:53;-1:-1:-1;;8848:23:1;;;8918:2;8903:18;;8890:32;;-1:-1:-1;8969:2:1;8954:18;;8941:32;;9020:2;9005:18;8992:32;;-1:-1:-1;8645:385:1;-1:-1:-1;8645:385:1:o;9654:127::-;9715:10;9710:3;9706:20;9703:1;9696:31;9746:4;9743:1;9736:15;9770:4;9767:1;9760:15;9786:422;9875:1;9918:5;9875:1;9932:270;9953:7;9943:8;9940:21;9932:270;;;10012:4;10008:1;10004:6;10000:17;9994:4;9991:27;9988:53;;;10021:18;;:::i;:::-;10071:7;10061:8;10057:22;10054:55;;;10091:16;;;;10054:55;10170:22;;;;10130:15;;;;9932:270;;;9936:3;9786:422;;;;;:::o;10213:806::-;10262:5;10292:8;10282:80;;-1:-1:-1;10333:1:1;10347:5;;10282:80;10381:4;10371:76;;-1:-1:-1;10418:1:1;10432:5;;10371:76;10463:4;10481:1;10476:59;;;;10549:1;10544:130;;;;10456:218;;10476:59;10506:1;10497:10;;10520:5;;;10544:130;10581:3;10571:8;10568:17;10565:43;;;10588:18;;:::i;:::-;-1:-1:-1;;10644:1:1;10630:16;;10659:5;;10456:218;;10758:2;10748:8;10745:16;10739:3;10733:4;10730:13;10726:36;10720:2;10710:8;10707:16;10702:2;10696:4;10693:12;10689:35;10686:77;10683:159;;;-1:-1:-1;10795:19:1;;;10827:5;;10683:159;10874:34;10899:8;10893:4;10874:34;:::i;:::-;10944:6;10940:1;10936:6;10932:19;10923:7;10920:32;10917:58;;;10955:18;;:::i;:::-;10993:20;;10213:806;-1:-1:-1;;;10213:806:1:o;11024:140::-;11082:5;11111:47;11152:4;11142:8;11138:19;11132:4;11111:47;:::i;11169:217::-;11209:1;11235;11225:132;;11279:10;11274:3;11270:20;11267:1;11260:31;11314:4;11311:1;11304:15;11342:4;11339:1;11332:15;11225:132;-1:-1:-1;11371:9:1;;11169:217::o;11391:168::-;11464:9;;;11495;;11512:15;;;11506:22;;11492:37;11482:71;;11533:18;;:::i;11564:128::-;11631:9;;;11652:11;;;11649:37;;;11666:18;;:::i;12464:127::-;12525:10;12520:3;12516:20;12513:1;12506:31;12556:4;12553:1;12546:15;12580:4;12577:1;12570:15;12943:197;12981:3;13009:6;13050:2;13043:5;13039:14;13077:2;13068:7;13065:15;13062:41;;13083:18;;:::i;:::-;13132:1;13119:15;;12943:197;-1:-1:-1;;;12943:197:1:o;13145:125::-;13210:9;;;13231:10;;;13228:36;;;13244:18;;:::i;13973:168::-;14040:6;14066:10;;;14078;;;14062:27;;14101:11;;;14098:37;;;14115:18;;:::i;:::-;14098:37;13973:168;;;;:::o;18619:184::-;18689:6;18742:2;18730:9;18721:7;18717:23;18713:32;18710:52;;;18758:1;18755;18748:12;18710:52;-1:-1:-1;18781:16:1;;18619:184;-1:-1:-1;18619:184:1:o;19110:245::-;19177:6;19230:2;19218:9;19209:7;19205:23;19201:32;19198:52;;;19246:1;19243;19236:12;19198:52;19278:9;19272:16;19297:28;19319:5;19297:28;:::i;20127:251::-;20197:6;20250:2;20238:9;20229:7;20225:23;20221:32;20218:52;;;20266:1;20263;20256:12;20218:52;20298:9;20292:16;20317:31;20342:5;20317:31;:::i;26606:1026::-;26868:4;26916:3;26905:9;26901:19;26947:6;26936:9;26929:25;26973:2;27011:6;27006:2;26995:9;26991:18;26984:34;27054:3;27049:2;27038:9;27034:18;27027:31;27078:6;27113;27107:13;27144:6;27136;27129:22;27182:3;27171:9;27167:19;27160:26;;27221:2;27213:6;27209:15;27195:29;;27242:1;27252:218;27266:6;27263:1;27260:13;27252:218;;;27331:13;;-1:-1:-1;;;;;27327:62:1;27315:75;;27445:15;;;;27410:12;;;;27288:1;27281:9;27252:218;;;-1:-1:-1;;;;;;;27526:55:1;;;;27521:2;27506:18;;27499:83;-1:-1:-1;;;27613:3:1;27598:19;27591:35;27487:3;26606:1026;-1:-1:-1;;;26606:1026:1:o
Swarm Source
ipfs://9eb8fa0b3c0fe714179b9067fb64dbb90a9b3403b3c287a3da4000ed1aed5d61
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.