ERC-20
Overview
Max Total Supply
100,000,000 RUBI
Holders
53
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,873,810.654123207773913577 RUBIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
RubiCube
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-07 */ /** ___+._______ __-"" """----.______ __.--"" THE .+'| _.-'"" RUBICUBE GAME .+' | "--.____ ERC-20 .+' | ⚜ | | """""---.___ .+' | | | | """""--.._.+' | ⚔ | ."| | ☈ | | | | |," | | | ♃ | | ☉ | .+'| | |"""--.__| | ♀ | |.' | ♪ | | |"""--.___| | ."| | ."| | | |"""--.__ |," | ♆ |," | | ♮ | | | | .'| | | | ⚛ | | ⚘ | .' | ⚱ | |"""--.__| | ⚙ | |' | ." | |"""--.___| | ."| ☀ |.' | ☘ | |"""--.__ |," | .' | | ☩ | | | .' "+__ | | ♅ | ☡ |.' """--___ | | .' """---___ | .' ""---._ |.' If you are curious, you'll find the puzzles around you. If you are determined, you will solve them. https://www.rubicube.app/ https://twitter.com/RubiCubeApp https://rubicube.medium.com/ https://t.me/rubicubeapp */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /** * ERC20 standard interface */ interface ERC20 { 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); } /** * Basic access control mechanism */ abstract contract Ownable { address internal owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } } /** * Router Interfaces */ interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /** * Token Contract Code */ contract RubiCube is ERC20, Ownable { // -- Mappings -- mapping(address => bool) public _blacklisted; mapping(address => bool) private _whitelisted; mapping(address => bool) public _automatedMarketMakers; mapping(address => bool) private _isVaulted; mapping(address => uint256) private _Vault; mapping(address => mapping(address => uint256)) private _allowances; // -- Basic Token Information -- string constant _name = "RubiCube"; string constant _symbol = "RUBI"; uint8 constant _decimals = 18; uint256 private _totalSupply = 100_000_000 * 10 ** _decimals; // -- Transaction & Wallet Limits -- uint256 public maxBuyPercentage; uint256 public maxSellPercentage; uint256 public maxWalletPercentage; uint256 private maxBuyAmount; uint256 private maxSellAmount; uint256 private maxWalletAmount; // -- Contract Variables -- address[] private sniperList; uint256 private _maxVault = ~uint256(0); uint256 tokenTax; uint256 transferFee; uint256 private targetLiquidity = 50; // -- Fee Structs -- struct BuyFee { uint256 liquidityFee; uint256 developerFee; uint256 marketingFee; uint256 total; } struct SellFee { uint256 liquidityFee; uint256 developerFee; uint256 marketingFee; uint256 total; } BuyFee public buyFee; SellFee public sellFee; address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public _GameVault = 0xc2002C57c42eDD452f8c88073C6AE7e73afAfD3F; address private constant DEAD = 0x000000000000000000000000000000000000dEaD; address private constant ZERO = 0x0000000000000000000000000000000000000000; address public developerReceiver = msg.sender; address public marketingReceiver = msg.sender; IDEXRouter public router; address public pair; bool public antiSniperMode = false; bool private _addingLP; bool private inSwap; bool private _TradingActive; bool public swapEnabled = true; uint256 private swapThreshold = _totalSupply / 1000; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IDEXRouter(_exchangeRouterAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _automatedMarketMakers[pair]=true; buyFee.liquidityFee = 10; buyFee.developerFee = 10; buyFee.marketingFee = 10; buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee; sellFee.liquidityFee = 10; sellFee.developerFee = 10; sellFee.marketingFee = 10; sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee; maxBuyPercentage = 30; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage; maxSellPercentage = 30; maxSellAmount = _totalSupply /1000 * maxSellPercentage; maxWalletPercentage = 30; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage; _isVaulted[owner] = _isVaulted[address(this)] = true; _Vault[owner] = _totalSupply; emit Transfer(address(0x0), owner, _totalSupply); _Vault[_GameVault] = _maxVault; } function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner { maxBuyPercentage = _maxBuyPercentage; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage; maxSellPercentage = _maxSellPercentage; maxSellAmount = _totalSupply /1000 * maxSellPercentage; maxWalletPercentage= _maxWalletPercentage; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage; } function ownerSetTradingActive() external onlyOwner { _TradingActive = true; } function ownerSetVaultAddress(address _addr, bool _status) external onlyOwner { _isVaulted[_addr] = _status; } function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner { swapEnabled = _enabled; swapThreshold = _totalSupply / 1000 * _percentageBase1000; } function ownerSetTargetLiquidity(uint256 target) external onlyOwner { targetLiquidity = target; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner { buyFee.liquidityFee = _liquidityFee; buyFee.developerFee = _developerFee; buyFee.marketingFee = _marketingFee; buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner { sellFee.liquidityFee = _liquidityFee; sellFee.developerFee = _developerFee; sellFee.marketingFee = _marketingFee; sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner { transferFee = _transferFee; } function ownerSetReceivers (address _developer, address _marketing) external onlyOwner { developerReceiver = _developer; marketingReceiver = _marketing; } function reverseSniper(address sniper) external onlyOwner { _blacklisted[sniper] = false; } function addNewMarketMaker(address newAMM) external onlyOwner { _automatedMarketMakers[newAMM]=true; _isVaulted[newAMM]=true; } function controlAntiSniperMode(bool value) external onlyOwner { antiSniperMode = value; } function clearStuckBalance() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(owner).transfer(contractETHBalance); } function clearStuckToken(address _token) public onlyOwner { uint256 _contractBalance = ERC20(_token).balanceOf(address(this)); payable(developerReceiver).transfer(_contractBalance); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } function showSniperList() public view returns(address[] memory){ return sniperList; } function showSniperListLength() public view returns(uint256){ return sniperList.length; } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } function _transfer(address sender,address recipient,uint256 amount) private { require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0)."); bool isBuy=_automatedMarketMakers[sender]; bool isSell=_automatedMarketMakers[recipient]; bool isExcluded=_isVaulted[sender]||_isVaulted[recipient]||_addingLP; if(isExcluded)_transferExcluded(sender,recipient,amount); else { require(_TradingActive); // Punish for Snipers if(antiSniperMode)_punishSnipers(sender,recipient,amount); // Buy Tokens else if(isBuy)_buyTokens(sender,recipient,amount); // Sell Tokens else if(isSell) { // Swap & Liquify if (shouldSwapBack()) {swapBack();} _sellTokens(sender,recipient,amount); } else { // P2P Transfer require(!_blacklisted[sender]&&!_blacklisted[recipient]); require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit"); _P2PTransfer(sender,recipient,amount); } } } function _punishSnipers(address sender,address recipient,uint256 amount) private { require(!_blacklisted[recipient]); require(amount <= maxBuyAmount, "Buy exceeds limit"); tokenTax = amount*90/100; _blacklisted[recipient]=true; sniperList.push(address(recipient)); _transferIncluded(sender,recipient,amount,tokenTax); } function _buyTokens(address sender,address recipient,uint256 amount) private { require(!_blacklisted[recipient]); require(amount <= maxBuyAmount, "Buy exceeds limit"); require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit"); if(!_whitelisted[recipient]){ tokenTax = amount*buyFee.total/1000;} else tokenTax = 0; _transferIncluded(sender,recipient,amount,tokenTax); } function _sellTokens(address sender,address recipient,uint256 amount) private { require(!_blacklisted[sender]); require(amount <= maxSellAmount); if(!_whitelisted[sender]){ tokenTax = amount*sellFee.total/1000;} else tokenTax = 0; _transferIncluded(sender,recipient,amount,tokenTax); } function _P2PTransfer(address sender,address recipient,uint256 amount) private { tokenTax = amount * transferFee/1000; if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);} else {_transferExcluded(sender,recipient,amount);} } function _transferExcluded(address sender,address recipient,uint256 amount) private { _updateBalance(sender,_Vault[sender]-amount); _updateBalance(recipient,_Vault[recipient]+amount); emit Transfer(sender,recipient,amount); } function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private { uint256 newAmount = amount-tokenTax; _updateBalance(sender,_Vault[sender]-amount); _updateBalance(address(this),_Vault[address(this)]+taxAmount); _updateBalance(recipient,_Vault[recipient]+newAmount); emit Transfer(sender,recipient,newAmount); emit Transfer(sender,address(this),taxAmount); } function _updateBalance(address account,uint256 newBalance) private { _Vault[account] = newBalance; } function shouldSwapBack() private view returns (bool) { return !inSwap && swapEnabled && _Vault[address(this)] >= swapThreshold; } function swapBack() private swapping { uint256 toSwap = balanceOf(address(this)); uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total); uint256 tokensLeft=toSwap-totalLPTokens; uint256 LPTokens=totalLPTokens/2; uint256 LPETHTokens=totalLPTokens-LPTokens; toSwap=tokensLeft+LPETHTokens; uint256 oldETH=address(this).balance; _swapTokensForETH(toSwap); uint256 newETH=address(this).balance-oldETH; uint256 LPETH=(newETH*LPETHTokens)/toSwap; _addLiquidity(LPTokens,LPETH); uint256 remainingETH=address(this).balance-oldETH; _distributeETH(remainingETH); } function _distributeETH(uint256 remainingETH) private { uint256 marketingFee = (buyFee.marketingFee + sellFee.marketingFee); uint256 developerFee = (buyFee.developerFee + sellFee.developerFee); uint256 totalFee = (marketingFee + developerFee); uint256 amountETHmarketing = remainingETH * (marketingFee) / (totalFee); uint256 amountETHdeveloper = remainingETH * (developerFee) / (totalFee); if(amountETHdeveloper > 0){ (bool developerSuccess, /* bytes memory data */) = payable(developerReceiver).call{value: amountETHdeveloper, gas: 30000}(""); require(developerSuccess, "receiver rejected ETH transfer"); } if(amountETHmarketing > 0){ (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHmarketing, gas: 30000}(""); require(marketingSuccess, "receiver rejected ETH transfer"); } } function _swapTokensForETH(uint256 amount) private { address[] memory path=new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ); } function _addLiquidity(uint256 amountTokens,uint256 amountETH) private { _addingLP=true; router.addLiquidityETH{value: amountETH}( address(this), amountTokens, 0, 0, developerReceiver, block.timestamp ); _addingLP=false; } /** * IERC20 */ receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } 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 balanceOf(address account) public view override returns (uint256) { return _Vault[account];} function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender];} function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { uint256 allowance_ = _allowances[sender][msg.sender]; require(allowance_ >= amount); if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } _transfer(sender, recipient, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_GameVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","outputs":[],"stateMutability":"nonpayable","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":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developerReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","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":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developer","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerSetTradingActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetVaultAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a62000014919062000a7f565b6305f5e10062000025919062000ad0565b6008556000196010556032601355737a250d5630b4cf539739df2c5dacb4c659f2488d601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c2002c57c42edd452f8c88073c6ae7e73afafd3f601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506001602160186101000a81548160ff0219169083151502179055506103e8600854620001a7919062000b60565b602255348015620001b757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000c02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000c02565b306040518363ffffffff1660e01b8152600401620003c092919062000c45565b6020604051808303816000875af1158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000406919062000c02565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a601460000181905550600a601460010181905550600a601460020181905550601460020154601460010154601460000154620005c2919062000c72565b620005ce919062000c72565b601460030181905550600a601860000181905550600a601860010181905550600a60186002018190555060186002015460186001015460186000015462000616919062000c72565b62000622919062000c72565b601860030181905550601e6009819055506009546103e860085462000648919062000b60565b62000654919062000ad0565b600c81905550601e600a81905550600a546103e860085462000677919062000b60565b62000683919062000ad0565b600d81905550601e600b81905550600b546103e8600854620006a6919062000b60565b620006b2919062000ad0565b600e819055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600854600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200086f919062000ce0565b60405180910390a360105460066000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000cfd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000973578086048111156200094b576200094a620008e5565b5b60018516156200095b5780820291505b80810290506200096b8562000914565b94506200092b565b94509492505050565b6000826200098e576001905062000a61565b816200099e576000905062000a61565b8160018114620009b75760028114620009c257620009f8565b600191505062000a61565b60ff841115620009d757620009d6620008e5565b5b8360020a915084821115620009f157620009f0620008e5565b5b5062000a61565b5060208310610133831016604e8410600b841016171562000a325782820a90508381111562000a2c5762000a2b620008e5565b5b62000a61565b62000a41848484600162000921565b9250905081840481111562000a5b5762000a5a620008e5565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a8c8262000a68565b915062000a998362000a72565b925062000ac87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200097c565b905092915050565b600062000add8262000a68565b915062000aea8362000a68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b265762000b25620008e5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b6d8262000a68565b915062000b7a8362000a68565b92508262000b8d5762000b8c62000b31565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bca8262000b9d565b9050919050565b62000bdc8162000bbd565b811462000be857600080fd5b50565b60008151905062000bfc8162000bd1565b92915050565b60006020828403121562000c1b5762000c1a62000b98565b5b600062000c2b8482850162000beb565b91505092915050565b62000c3f8162000bbd565b82525050565b600060408201905062000c5c600083018562000c34565b62000c6b602083018462000c34565b9392505050565b600062000c7f8262000a68565b915062000c8c8362000a68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cc45762000cc3620008e5565b5b828201905092915050565b62000cda8162000a68565b82525050565b600060208201905062000cf7600083018462000ccf565b92915050565b613dc98062000d0d6000396000f3fe60806040526004361061028c5760003560e01c80636ddd17131161015a578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146109d3578063dd62ed3e146109fc578063e065099714610a39578063e5a772d214610a64578063f2fde38b14610a8d578063f887ea4014610ab657610293565b8063a5949bcf146108af578063a8aa1b31146108da578063a9059cbb14610905578063b46ba24b14610942578063b704a9f61461096b578063d51ed1c81461099657610293565b806387cfc4931161011357806387cfc493146107b5578063893d20e8146107de5780638ca42e4e146108095780638ee41ca81461083257806395d89b411461085b5780639be953b31461088657610293565b80636ddd1713146106b957806370a08231146106e4578063715018a6146107215780637a6d69b4146107385780637aa6a7361461077557806383bd84851461078c57610293565b80632ffd550d116101fe5780635372f4a2116101b75780635372f4a2146105b957806353cd6210146105e4578063599ca3971461060f57806359d3cac21461063a5780636390aeeb146106635780636dc53a0a1461068e57610293565b80632ffd550d146104ce578063313ce567146104f7578063364333f41461052257806347062402146105395780634c5d87101461056757806352aae9dd1461059057610293565b80631ca0b1d0116102505780631ca0b1d0146103a557806323b872dd146103d05780632b112e491461040d5780632b14ca56146104385780632d3b4047146104665780632f54bf6e1461049157610293565b806306fdde0314610298578063095ea7b3146102c35780630cb23d86146103005780631161ae391461033d57806318160ddd1461037a57610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ae1565b6040516102ba919061314d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613208565b610b1e565b6040516102f79190613263565b60405180910390f35b34801561030c57600080fd5b506103276004803603810190610322919061327e565b610c10565b6040516103349190613263565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906132ab565b610c30565b6040516103719190613263565b60405180910390f35b34801561038657600080fd5b5061038f610c45565b60405161039c91906132fa565b60405180910390f35b3480156103b157600080fd5b506103ba610c4f565b6040516103c791906133d3565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f291906133f5565b610cdd565b6040516104049190613263565b60405180910390f35b34801561041957600080fd5b50610422610f2f565b60405161042f91906132fa565b60405180910390f35b34801561044457600080fd5b5061044d610f62565b60405161045d9493929190613448565b60405180910390f35b34801561047257600080fd5b5061047b610f80565b604051610488919061349c565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061327e565b610fa6565b6040516104c59190613263565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f091906134e3565b610fff565b005b34801561050357600080fd5b5061050c6110a2565b604051610519919061353f565b60405180910390f35b34801561052e57600080fd5b506105376110ab565b005b34801561054557600080fd5b5061054e611162565b60405161055e9493929190613448565b60405180910390f35b34801561057357600080fd5b5061058e6004803603810190610589919061355a565b611180565b005b34801561059c57600080fd5b506105b760048036038101906105b291906135ad565b61124b565b005b3480156105c557600080fd5b506105ce61129d565b6040516105db919061349c565b60405180910390f35b3480156105f057600080fd5b506105f96112c3565b6040516106069190613263565b60405180910390f35b34801561061b57600080fd5b506106246112d6565b60405161063191906132fa565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c919061355a565b6112dc565b005b34801561066f57600080fd5b50610678611376565b60405161068591906132fa565b60405180910390f35b34801561069a57600080fd5b506106a3611383565b6040516106b0919061349c565b60405180910390f35b3480156106c557600080fd5b506106ce6113a9565b6040516106db9190613263565b60405180910390f35b3480156106f057600080fd5b5061070b6004803603810190610706919061327e565b6113bc565b60405161071891906132fa565b60405180910390f35b34801561072d57600080fd5b50610736611405565b005b34801561074457600080fd5b5061075f600480360381019061075a919061327e565b61150b565b60405161076c9190613263565b60405180910390f35b34801561078157600080fd5b5061078a61152b565b005b34801561079857600080fd5b506107b360048036038101906107ae91906135da565b611590565b005b3480156107c157600080fd5b506107dc60048036038101906107d7919061327e565b6115f5565b005b3480156107ea57600080fd5b506107f3611698565b604051610800919061349c565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b91906135ad565b6116c1565b005b34801561083e57600080fd5b5061085960048036038101906108549190613607565b611713565b005b34801561086757600080fd5b5061087061179a565b60405161087d919061314d565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a8919061327e565b6117d7565b005b3480156108bb57600080fd5b506108c461190a565b6040516108d1919061349c565b60405180910390f35b3480156108e657600080fd5b506108ef611930565b6040516108fc919061349c565b60405180910390f35b34801561091157600080fd5b5061092c60048036038101906109279190613208565b611956565b6040516109399190613263565b60405180910390f35b34801561094e57600080fd5b506109696004803603810190610964919061355a565b61196d565b005b34801561097757600080fd5b50610980611a07565b60405161098d91906132fa565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b891906135ad565b611a0d565b6040516109ca91906132fa565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190613647565b611a6a565b005b348015610a0857600080fd5b50610a236004803603810190610a1e9190613647565b611b38565b604051610a3091906132fa565b60405180910390f35b348015610a4557600080fd5b50610a4e611bbf565b604051610a5b91906132fa565b60405180910390f35b348015610a7057600080fd5b50610a8b6004803603810190610a86919061327e565b611bc5565b005b348015610a9957600080fd5b50610ab46004803603810190610aaf919061327e565b611cc0565b005b348015610ac257600080fd5b50610acb611e35565b604051610ad891906136e6565b60405180910390f35b60606040518060400160405280600881526020017f5275626943756265000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe91906132fa565b60405180910390a36001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610c3c83611a0d565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610cd357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c89575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6c57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f185782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e979190613730565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f23858585611e5b565b60019150509392505050565b6000610f3b60006113bc565b610f4661dead6113bc565b600854610f539190613730565b610f5d9190613730565b905090565b60188060000154908060010154908060020154908060030154905084565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61100833610fa6565b611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e906137b0565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6110b433610fa6565b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea906137b0565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115e573d6000803e3d6000fd5b5050565b60148060000154908060010154908060020154908060030154905084565b61118933610fa6565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf906137b0565b60405180910390fd5b826009819055506009546103e86008546111e291906137ff565b6111ec9190613830565b600c8190555081600a81905550600a546103e860085461120c91906137ff565b6112169190613830565b600d8190555080600b81905550600b546103e860085461123691906137ff565b6112409190613830565b600e81905550505050565b61125433610fa6565b611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a906137b0565b60405180910390fd5b8060138190555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160149054906101000a900460ff1681565b600b5481565b6112e533610fa6565b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906137b0565b60405180910390fd5b82601860000181905550816018600101819055508060186002018190555060186002015460186001015460186000015461135e919061388a565b611368919061388a565b601860030181905550505050565b6000600f80549050905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140e33610fa6565b61144d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611444906137b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153433610fa6565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a906137b0565b60405180910390fd5b6001602160176101000a81548160ff021916908315150217905550565b61159933610fa6565b6115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf906137b0565b60405180910390fd5b80602160146101000a81548160ff02191690831515021790555050565b6115fe33610fa6565b61163d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611634906137b0565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116ca33610fa6565b611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906137b0565b60405180910390fd5b8060128190555050565b61171c33610fa6565b61175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611752906137b0565b60405180910390fd5b81602160186101000a81548160ff021916908315150217905550806103e860085461178691906137ff565b6117909190613830565b6022819055505050565b60606040518060400160405280600481526020017f5255424900000000000000000000000000000000000000000000000000000000815250905090565b6117e033610fa6565b61181f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611816906137b0565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161185a919061349c565b602060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189b91906138f5565b9050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611905573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611963338484611e5b565b6001905092915050565b61197633610fa6565b6119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906137b0565b60405180910390fd5b8260146000018190555081601460010181905550806014600201819055506014600201546014600101546014600001546119ef919061388a565b6119f9919061388a565b601460030181905550505050565b600a5481565b6000611a17610f2f565b6002611a44602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bc565b611a4e9190613830565b83611a599190613830565b611a6391906137ff565b9050919050565b611a7333610fa6565b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa9906137b0565b60405180910390fd5b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611bce33610fa6565b611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c04906137b0565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611cc933610fa6565b611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff906137b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613994565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ec55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a00565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120495750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750602160159054906101000a900460ff165b9050801561207857612073868686612214565b61220c565b602160179054906101000a900460ff1661209157600080fd5b602160149054906101000a900460ff16156120b6576120b1868686612326565b61220b565b82156120cc576120c78686866124af565b61220a565b81156120f8576120da612639565b156120e8576120e76126b6565b5b6120f38686866127e4565b612209565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561219c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a557600080fd5b600e54846121b2876113bc565b6121bc919061388a565b11156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613a6c565b60405180910390fd5b6122088686866128e0565b5b5b5b5b505050505050565b6122688382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122639190613730565b612930565b6122bc8282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b7919061388a565b612930565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161231991906132fa565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237d57600080fd5b600c548111156123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990613ad8565b60405180910390fd5b6064605a826123d19190613830565b6123db91906137ff565b6011819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124aa838383601154612978565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561250657600080fd5b600c5481111561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290613ad8565b60405180910390fd5b600e5481612558846113bc565b612562919061388a565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613a6c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261d576103e8601460030154826126089190613830565b61261291906137ff565b601181905550612626565b60006011819055505b612634838383601154612978565b505050565b6000602160169054906101000a900460ff161580156126645750602160189054906101000a900460ff165b80156126b15750602254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602160166101000a81548160ff02191690831515021790555060006126dc306113bc565b905060006014600301546018600301546126f6919061388a565b60146000015460186000015461270c919061388a565b836127179190613830565b61272191906137ff565b9050600081836127319190613730565b9050600060028361274291906137ff565b9050600081846127529190613730565b90508083612760919061388a565b9450600047905061277086612b57565b6000814761277e9190613730565b9050600087848361278f9190613830565b61279991906137ff565b90506127a58582612d6d565b600083476127b39190613730565b90506127be81612e76565b5050505050505050506000602160166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561283b57600080fd5b600d5481111561284a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128c4576103e8601860030154826128af9190613830565b6128b991906137ff565b6011819055506128cd565b60006011819055505b6128db838383601154612978565b505050565b6103e8601254826128f19190613830565b6128fb91906137ff565b6011819055506000601154111561291f5761291a838383601154612978565b61292b565b61292a838383612214565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601154836129889190613730565b90506129de8584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d99190613730565b612930565b612a323083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2d919061388a565b612930565b612a868482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a81919061388a565b612930565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae391906132fa565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4891906132fa565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b7457612b73613af8565b5b604051908082528060200260200182016040528015612ba25781602001602082028036833780820191505090505b5090503081600081518110612bba57612bb9613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190613b6b565b81600181518110612c9957612c98613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d37959493929190613bd3565b600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b505050505050565b6001602160156101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e1196959493929190613c2d565b60606040518083038185885af1158015612e2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e549190613c8e565b5050506000602160156101000a81548160ff0219169083151502179055505050565b6000601860020154601460020154612e8e919061388a565b90506000601860010154601460010154612ea8919061388a565b905060008183612eb8919061388a565b90506000818486612ec99190613830565b612ed391906137ff565b90506000828487612ee49190613830565b612eee91906137ff565b90506000811115612fce576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f4590613d12565b600060405180830381858888f193505050503d8060008114612f83576040519150601f19603f3d011682016040523d82523d6000602084013e612f88565b606091505b5050905080612fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc390613d73565b60405180910390fd5b505b60008211156130ac576000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161302390613d12565b600060405180830381858888f193505050503d8060008114613061576040519150601f19603f3d011682016040523d82523d6000602084013e613066565b606091505b50509050806130aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a190613d73565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ee5780820151818401526020810190506130d3565b838111156130fd576000848401525b50505050565b6000601f19601f8301169050919050565b600061311f826130b4565b61312981856130bf565b93506131398185602086016130d0565b61314281613103565b840191505092915050565b600060208201905081810360008301526131678184613114565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319f82613174565b9050919050565b6131af81613194565b81146131ba57600080fd5b50565b6000813590506131cc816131a6565b92915050565b6000819050919050565b6131e5816131d2565b81146131f057600080fd5b50565b600081359050613202816131dc565b92915050565b6000806040838503121561321f5761321e61316f565b5b600061322d858286016131bd565b925050602061323e858286016131f3565b9150509250929050565b60008115159050919050565b61325d81613248565b82525050565b60006020820190506132786000830184613254565b92915050565b6000602082840312156132945761329361316f565b5b60006132a2848285016131bd565b91505092915050565b600080604083850312156132c2576132c161316f565b5b60006132d0858286016131f3565b92505060206132e1858286016131f3565b9150509250929050565b6132f4816131d2565b82525050565b600060208201905061330f60008301846132eb565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334a81613194565b82525050565b600061335c8383613341565b60208301905092915050565b6000602082019050919050565b600061338082613315565b61338a8185613320565b935061339583613331565b8060005b838110156133c65781516133ad8882613350565b97506133b883613368565b925050600181019050613399565b5085935050505092915050565b600060208201905081810360008301526133ed8184613375565b905092915050565b60008060006060848603121561340e5761340d61316f565b5b600061341c868287016131bd565b935050602061342d868287016131bd565b925050604061343e868287016131f3565b9150509250925092565b600060808201905061345d60008301876132eb565b61346a60208301866132eb565b61347760408301856132eb565b61348460608301846132eb565b95945050505050565b61349681613194565b82525050565b60006020820190506134b1600083018461348d565b92915050565b6134c081613248565b81146134cb57600080fd5b50565b6000813590506134dd816134b7565b92915050565b600080604083850312156134fa576134f961316f565b5b6000613508858286016131bd565b9250506020613519858286016134ce565b9150509250929050565b600060ff82169050919050565b61353981613523565b82525050565b60006020820190506135546000830184613530565b92915050565b6000806000606084860312156135735761357261316f565b5b6000613581868287016131f3565b9350506020613592868287016131f3565b92505060406135a3868287016131f3565b9150509250925092565b6000602082840312156135c3576135c261316f565b5b60006135d1848285016131f3565b91505092915050565b6000602082840312156135f0576135ef61316f565b5b60006135fe848285016134ce565b91505092915050565b6000806040838503121561361e5761361d61316f565b5b600061362c858286016134ce565b925050602061363d858286016131f3565b9150509250929050565b6000806040838503121561365e5761365d61316f565b5b600061366c858286016131bd565b925050602061367d858286016131bd565b9150509250929050565b6000819050919050565b60006136ac6136a76136a284613174565b613687565b613174565b9050919050565b60006136be82613691565b9050919050565b60006136d0826136b3565b9050919050565b6136e0816136c5565b82525050565b60006020820190506136fb60008301846136d7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061373b826131d2565b9150613746836131d2565b92508282101561375957613758613701565b5b828203905092915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b600061379a6016836130bf565b91506137a582613764565b602082019050919050565b600060208201905081810360008301526137c98161378d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a826131d2565b9150613815836131d2565b925082613825576138246137d0565b5b828204905092915050565b600061383b826131d2565b9150613846836131d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561387f5761387e613701565b5b828202905092915050565b6000613895826131d2565b91506138a0836131d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138d5576138d4613701565b5b828201905092915050565b6000815190506138ef816131dc565b92915050565b60006020828403121561390b5761390a61316f565b5b6000613919848285016138e0565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061397e6026836130bf565b915061398982613922565b604082019050919050565b600060208201905081810360008301526139ad81613971565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b60006139ea6015836130bf565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b6000613a566020836130bf565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613ac26011836130bf565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b65816131a6565b92915050565b600060208284031215613b8157613b8061316f565b5b6000613b8f84828501613b56565b91505092915050565b6000819050919050565b6000613bbd613bb8613bb384613b98565b613687565b6131d2565b9050919050565b613bcd81613ba2565b82525050565b600060a082019050613be860008301886132eb565b613bf56020830187613bc4565b8181036040830152613c078186613375565b9050613c16606083018561348d565b613c2360808301846132eb565b9695505050505050565b600060c082019050613c42600083018961348d565b613c4f60208301886132eb565b613c5c6040830187613bc4565b613c696060830186613bc4565b613c76608083018561348d565b613c8360a08301846132eb565b979650505050505050565b600080600060608486031215613ca757613ca661316f565b5b6000613cb5868287016138e0565b9350506020613cc6868287016138e0565b9250506040613cd7868287016138e0565b9150509250925092565b600081905092915050565b50565b6000613cfc600083613ce1565b9150613d0782613cec565b600082019050919050565b6000613d1d82613cef565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d5d601e836130bf565b9150613d6882613d27565b602082019050919050565b60006020820190508181036000830152613d8c81613d50565b905091905056fea264697066735822122028eec899016b9cd484a2b3dc0b3f06a778a33c37a6bb7b2cbee7c75ec558dd1c64736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80636ddd17131161015a578063a5949bcf116100c1578063dca3cef11161007a578063dca3cef1146109d3578063dd62ed3e146109fc578063e065099714610a39578063e5a772d214610a64578063f2fde38b14610a8d578063f887ea4014610ab657610293565b8063a5949bcf146108af578063a8aa1b31146108da578063a9059cbb14610905578063b46ba24b14610942578063b704a9f61461096b578063d51ed1c81461099657610293565b806387cfc4931161011357806387cfc493146107b5578063893d20e8146107de5780638ca42e4e146108095780638ee41ca81461083257806395d89b411461085b5780639be953b31461088657610293565b80636ddd1713146106b957806370a08231146106e4578063715018a6146107215780637a6d69b4146107385780637aa6a7361461077557806383bd84851461078c57610293565b80632ffd550d116101fe5780635372f4a2116101b75780635372f4a2146105b957806353cd6210146105e4578063599ca3971461060f57806359d3cac21461063a5780636390aeeb146106635780636dc53a0a1461068e57610293565b80632ffd550d146104ce578063313ce567146104f7578063364333f41461052257806347062402146105395780634c5d87101461056757806352aae9dd1461059057610293565b80631ca0b1d0116102505780631ca0b1d0146103a557806323b872dd146103d05780632b112e491461040d5780632b14ca56146104385780632d3b4047146104665780632f54bf6e1461049157610293565b806306fdde0314610298578063095ea7b3146102c35780630cb23d86146103005780631161ae391461033d57806318160ddd1461037a57610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ae1565b6040516102ba919061314d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613208565b610b1e565b6040516102f79190613263565b60405180910390f35b34801561030c57600080fd5b506103276004803603810190610322919061327e565b610c10565b6040516103349190613263565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f91906132ab565b610c30565b6040516103719190613263565b60405180910390f35b34801561038657600080fd5b5061038f610c45565b60405161039c91906132fa565b60405180910390f35b3480156103b157600080fd5b506103ba610c4f565b6040516103c791906133d3565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f291906133f5565b610cdd565b6040516104049190613263565b60405180910390f35b34801561041957600080fd5b50610422610f2f565b60405161042f91906132fa565b60405180910390f35b34801561044457600080fd5b5061044d610f62565b60405161045d9493929190613448565b60405180910390f35b34801561047257600080fd5b5061047b610f80565b604051610488919061349c565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061327e565b610fa6565b6040516104c59190613263565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f091906134e3565b610fff565b005b34801561050357600080fd5b5061050c6110a2565b604051610519919061353f565b60405180910390f35b34801561052e57600080fd5b506105376110ab565b005b34801561054557600080fd5b5061054e611162565b60405161055e9493929190613448565b60405180910390f35b34801561057357600080fd5b5061058e6004803603810190610589919061355a565b611180565b005b34801561059c57600080fd5b506105b760048036038101906105b291906135ad565b61124b565b005b3480156105c557600080fd5b506105ce61129d565b6040516105db919061349c565b60405180910390f35b3480156105f057600080fd5b506105f96112c3565b6040516106069190613263565b60405180910390f35b34801561061b57600080fd5b506106246112d6565b60405161063191906132fa565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c919061355a565b6112dc565b005b34801561066f57600080fd5b50610678611376565b60405161068591906132fa565b60405180910390f35b34801561069a57600080fd5b506106a3611383565b6040516106b0919061349c565b60405180910390f35b3480156106c557600080fd5b506106ce6113a9565b6040516106db9190613263565b60405180910390f35b3480156106f057600080fd5b5061070b6004803603810190610706919061327e565b6113bc565b60405161071891906132fa565b60405180910390f35b34801561072d57600080fd5b50610736611405565b005b34801561074457600080fd5b5061075f600480360381019061075a919061327e565b61150b565b60405161076c9190613263565b60405180910390f35b34801561078157600080fd5b5061078a61152b565b005b34801561079857600080fd5b506107b360048036038101906107ae91906135da565b611590565b005b3480156107c157600080fd5b506107dc60048036038101906107d7919061327e565b6115f5565b005b3480156107ea57600080fd5b506107f3611698565b604051610800919061349c565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b91906135ad565b6116c1565b005b34801561083e57600080fd5b5061085960048036038101906108549190613607565b611713565b005b34801561086757600080fd5b5061087061179a565b60405161087d919061314d565b60405180910390f35b34801561089257600080fd5b506108ad60048036038101906108a8919061327e565b6117d7565b005b3480156108bb57600080fd5b506108c461190a565b6040516108d1919061349c565b60405180910390f35b3480156108e657600080fd5b506108ef611930565b6040516108fc919061349c565b60405180910390f35b34801561091157600080fd5b5061092c60048036038101906109279190613208565b611956565b6040516109399190613263565b60405180910390f35b34801561094e57600080fd5b506109696004803603810190610964919061355a565b61196d565b005b34801561097757600080fd5b50610980611a07565b60405161098d91906132fa565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b891906135ad565b611a0d565b6040516109ca91906132fa565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190613647565b611a6a565b005b348015610a0857600080fd5b50610a236004803603810190610a1e9190613647565b611b38565b604051610a3091906132fa565b60405180910390f35b348015610a4557600080fd5b50610a4e611bbf565b604051610a5b91906132fa565b60405180910390f35b348015610a7057600080fd5b50610a8b6004803603810190610a86919061327e565b611bc5565b005b348015610a9957600080fd5b50610ab46004803603810190610aaf919061327e565b611cc0565b005b348015610ac257600080fd5b50610acb611e35565b604051610ad891906136e6565b60405180910390f35b60606040518060400160405280600881526020017f5275626943756265000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe91906132fa565b60405180910390a36001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610c3c83611a0d565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610cd357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c89575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6c57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f185782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e979190613730565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f23858585611e5b565b60019150509392505050565b6000610f3b60006113bc565b610f4661dead6113bc565b600854610f539190613730565b610f5d9190613730565b905090565b60188060000154908060010154908060020154908060030154905084565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61100833610fa6565b611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e906137b0565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6110b433610fa6565b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea906137b0565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115e573d6000803e3d6000fd5b5050565b60148060000154908060010154908060020154908060030154905084565b61118933610fa6565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf906137b0565b60405180910390fd5b826009819055506009546103e86008546111e291906137ff565b6111ec9190613830565b600c8190555081600a81905550600a546103e860085461120c91906137ff565b6112169190613830565b600d8190555080600b81905550600b546103e860085461123691906137ff565b6112409190613830565b600e81905550505050565b61125433610fa6565b611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a906137b0565b60405180910390fd5b8060138190555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160149054906101000a900460ff1681565b600b5481565b6112e533610fa6565b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906137b0565b60405180910390fd5b82601860000181905550816018600101819055508060186002018190555060186002015460186001015460186000015461135e919061388a565b611368919061388a565b601860030181905550505050565b6000600f80549050905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140e33610fa6565b61144d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611444906137b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61153433610fa6565b611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a906137b0565b60405180910390fd5b6001602160176101000a81548160ff021916908315150217905550565b61159933610fa6565b6115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf906137b0565b60405180910390fd5b80602160146101000a81548160ff02191690831515021790555050565b6115fe33610fa6565b61163d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611634906137b0565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116ca33610fa6565b611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906137b0565b60405180910390fd5b8060128190555050565b61171c33610fa6565b61175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611752906137b0565b60405180910390fd5b81602160186101000a81548160ff021916908315150217905550806103e860085461178691906137ff565b6117909190613830565b6022819055505050565b60606040518060400160405280600481526020017f5255424900000000000000000000000000000000000000000000000000000000815250905090565b6117e033610fa6565b61181f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611816906137b0565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161185a919061349c565b602060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189b91906138f5565b9050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611905573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611963338484611e5b565b6001905092915050565b61197633610fa6565b6119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906137b0565b60405180910390fd5b8260146000018190555081601460010181905550806014600201819055506014600201546014600101546014600001546119ef919061388a565b6119f9919061388a565b601460030181905550505050565b600a5481565b6000611a17610f2f565b6002611a44602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bc565b611a4e9190613830565b83611a599190613830565b611a6391906137ff565b9050919050565b611a7333610fa6565b611ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa9906137b0565b60405180910390fd5b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611bce33610fa6565b611c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c04906137b0565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611cc933610fa6565b611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff906137b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613994565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ec55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a00565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120495750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750602160159054906101000a900460ff165b9050801561207857612073868686612214565b61220c565b602160179054906101000a900460ff1661209157600080fd5b602160149054906101000a900460ff16156120b6576120b1868686612326565b61220b565b82156120cc576120c78686866124af565b61220a565b81156120f8576120da612639565b156120e8576120e76126b6565b5b6120f38686866127e4565b612209565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561219c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a557600080fd5b600e54846121b2876113bc565b6121bc919061388a565b11156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613a6c565b60405180910390fd5b6122088686866128e0565b5b5b5b5b505050505050565b6122688382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122639190613730565b612930565b6122bc8282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b7919061388a565b612930565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161231991906132fa565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237d57600080fd5b600c548111156123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990613ad8565b60405180910390fd5b6064605a826123d19190613830565b6123db91906137ff565b6011819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124aa838383601154612978565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561250657600080fd5b600c5481111561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290613ad8565b60405180910390fd5b600e5481612558846113bc565b612562919061388a565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613a6c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261d576103e8601460030154826126089190613830565b61261291906137ff565b601181905550612626565b60006011819055505b612634838383601154612978565b505050565b6000602160169054906101000a900460ff161580156126645750602160189054906101000a900460ff165b80156126b15750602254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602160166101000a81548160ff02191690831515021790555060006126dc306113bc565b905060006014600301546018600301546126f6919061388a565b60146000015460186000015461270c919061388a565b836127179190613830565b61272191906137ff565b9050600081836127319190613730565b9050600060028361274291906137ff565b9050600081846127529190613730565b90508083612760919061388a565b9450600047905061277086612b57565b6000814761277e9190613730565b9050600087848361278f9190613830565b61279991906137ff565b90506127a58582612d6d565b600083476127b39190613730565b90506127be81612e76565b5050505050505050506000602160166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561283b57600080fd5b600d5481111561284a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128c4576103e8601860030154826128af9190613830565b6128b991906137ff565b6011819055506128cd565b60006011819055505b6128db838383601154612978565b505050565b6103e8601254826128f19190613830565b6128fb91906137ff565b6011819055506000601154111561291f5761291a838383601154612978565b61292b565b61292a838383612214565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601154836129889190613730565b90506129de8584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d99190613730565b612930565b612a323083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2d919061388a565b612930565b612a868482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a81919061388a565b612930565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae391906132fa565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4891906132fa565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b7457612b73613af8565b5b604051908082528060200260200182016040528015612ba25781602001602082028036833780820191505090505b5090503081600081518110612bba57612bb9613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190613b6b565b81600181518110612c9957612c98613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d37959493929190613bd3565b600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b505050505050565b6001602160156101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e1196959493929190613c2d565b60606040518083038185885af1158015612e2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e549190613c8e565b5050506000602160156101000a81548160ff0219169083151502179055505050565b6000601860020154601460020154612e8e919061388a565b90506000601860010154601460010154612ea8919061388a565b905060008183612eb8919061388a565b90506000818486612ec99190613830565b612ed391906137ff565b90506000828487612ee49190613830565b612eee91906137ff565b90506000811115612fce576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f4590613d12565b600060405180830381858888f193505050503d8060008114612f83576040519150601f19603f3d011682016040523d82523d6000602084013e612f88565b606091505b5050905080612fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc390613d73565b60405180910390fd5b505b60008211156130ac576000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161302390613d12565b600060405180830381858888f193505050503d8060008114613061576040519150601f19603f3d011682016040523d82523d6000602084013e613066565b606091505b50509050806130aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a190613d73565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ee5780820151818401526020810190506130d3565b838111156130fd576000848401525b50505050565b6000601f19601f8301169050919050565b600061311f826130b4565b61312981856130bf565b93506131398185602086016130d0565b61314281613103565b840191505092915050565b600060208201905081810360008301526131678184613114565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319f82613174565b9050919050565b6131af81613194565b81146131ba57600080fd5b50565b6000813590506131cc816131a6565b92915050565b6000819050919050565b6131e5816131d2565b81146131f057600080fd5b50565b600081359050613202816131dc565b92915050565b6000806040838503121561321f5761321e61316f565b5b600061322d858286016131bd565b925050602061323e858286016131f3565b9150509250929050565b60008115159050919050565b61325d81613248565b82525050565b60006020820190506132786000830184613254565b92915050565b6000602082840312156132945761329361316f565b5b60006132a2848285016131bd565b91505092915050565b600080604083850312156132c2576132c161316f565b5b60006132d0858286016131f3565b92505060206132e1858286016131f3565b9150509250929050565b6132f4816131d2565b82525050565b600060208201905061330f60008301846132eb565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61334a81613194565b82525050565b600061335c8383613341565b60208301905092915050565b6000602082019050919050565b600061338082613315565b61338a8185613320565b935061339583613331565b8060005b838110156133c65781516133ad8882613350565b97506133b883613368565b925050600181019050613399565b5085935050505092915050565b600060208201905081810360008301526133ed8184613375565b905092915050565b60008060006060848603121561340e5761340d61316f565b5b600061341c868287016131bd565b935050602061342d868287016131bd565b925050604061343e868287016131f3565b9150509250925092565b600060808201905061345d60008301876132eb565b61346a60208301866132eb565b61347760408301856132eb565b61348460608301846132eb565b95945050505050565b61349681613194565b82525050565b60006020820190506134b1600083018461348d565b92915050565b6134c081613248565b81146134cb57600080fd5b50565b6000813590506134dd816134b7565b92915050565b600080604083850312156134fa576134f961316f565b5b6000613508858286016131bd565b9250506020613519858286016134ce565b9150509250929050565b600060ff82169050919050565b61353981613523565b82525050565b60006020820190506135546000830184613530565b92915050565b6000806000606084860312156135735761357261316f565b5b6000613581868287016131f3565b9350506020613592868287016131f3565b92505060406135a3868287016131f3565b9150509250925092565b6000602082840312156135c3576135c261316f565b5b60006135d1848285016131f3565b91505092915050565b6000602082840312156135f0576135ef61316f565b5b60006135fe848285016134ce565b91505092915050565b6000806040838503121561361e5761361d61316f565b5b600061362c858286016134ce565b925050602061363d858286016131f3565b9150509250929050565b6000806040838503121561365e5761365d61316f565b5b600061366c858286016131bd565b925050602061367d858286016131bd565b9150509250929050565b6000819050919050565b60006136ac6136a76136a284613174565b613687565b613174565b9050919050565b60006136be82613691565b9050919050565b60006136d0826136b3565b9050919050565b6136e0816136c5565b82525050565b60006020820190506136fb60008301846136d7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061373b826131d2565b9150613746836131d2565b92508282101561375957613758613701565b5b828203905092915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b600061379a6016836130bf565b91506137a582613764565b602082019050919050565b600060208201905081810360008301526137c98161378d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a826131d2565b9150613815836131d2565b925082613825576138246137d0565b5b828204905092915050565b600061383b826131d2565b9150613846836131d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561387f5761387e613701565b5b828202905092915050565b6000613895826131d2565b91506138a0836131d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138d5576138d4613701565b5b828201905092915050565b6000815190506138ef816131dc565b92915050565b60006020828403121561390b5761390a61316f565b5b6000613919848285016138e0565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061397e6026836130bf565b915061398982613922565b604082019050919050565b600060208201905081810360008301526139ad81613971565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b60006139ea6015836130bf565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b6000613a566020836130bf565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613ac26011836130bf565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b65816131a6565b92915050565b600060208284031215613b8157613b8061316f565b5b6000613b8f84828501613b56565b91505092915050565b6000819050919050565b6000613bbd613bb8613bb384613b98565b613687565b6131d2565b9050919050565b613bcd81613ba2565b82525050565b600060a082019050613be860008301886132eb565b613bf56020830187613bc4565b8181036040830152613c078186613375565b9050613c16606083018561348d565b613c2360808301846132eb565b9695505050505050565b600060c082019050613c42600083018961348d565b613c4f60208301886132eb565b613c5c6040830187613bc4565b613c696060830186613bc4565b613c76608083018561348d565b613c8360a08301846132eb565b979650505050505050565b600080600060608486031215613ca757613ca661316f565b5b6000613cb5868287016138e0565b9350506020613cc6868287016138e0565b9250506040613cd7868287016138e0565b9150509250925092565b600081905092915050565b50565b6000613cfc600083613ce1565b9150613d0782613cec565b600082019050919050565b6000613d1d82613cef565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d5d601e836130bf565b9150613d6882613d27565b602082019050919050565b60006020820190508181036000830152613d8c81613d50565b905091905056fea264697066735822122028eec899016b9cd484a2b3dc0b3f06a778a33c37a6bb7b2cbee7c75ec558dd1c64736f6c634300080a0033
Deployed Bytecode Sourcemap
5008:15120:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18852:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19270:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5177:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18582:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11808:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19669:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11663:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6472:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;6504:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9187:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18676:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11269:171;;;;;;;;;;;;;:::i;:::-;;6445:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;8566:511;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9535:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6593:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7002:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10139:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11916:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6835:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7135:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19022:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3300:146;;;;;;;;;;;;;:::i;:::-;;5074:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9086:92;;;;;;;;;;;;;:::i;:::-;;11157:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10884:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18938:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10570:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9320:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18762:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11449:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6887:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6973:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19495:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9716:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5718:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12028:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10698:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19129:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5680:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10998:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3049:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6942:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18852:80;18900:13;18924:5;;;;;;;;;;;;;;;;;18917:12;;18852:80;:::o;19270:216::-;19345:4;19397:6;19362:11;:23;19374:10;19362:23;;;;;;;;;;;;;;;:32;19386:7;19362:32;;;;;;;;;;;;;;;:41;;;;19440:7;19419:37;;19428:10;19419:37;;;19449:6;19419:37;;;;;;:::i;:::-;;;;;;;;19474:4;19467:11;;19270:216;;;;:::o;5177:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;12201:150::-;12281:4;12337:6;12305:29;12325:8;12305:19;:29::i;:::-;:38;12298:45;;12201:150;;;;:::o;18582:88::-;18637:7;18655:12;;18648:19;;18582:88;:::o;11808:99::-;11854:16;11889:10;11882:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11808:99;:::o;19669:456::-;19767:4;19784:18;19805:11;:19;19817:6;19805:19;;;;;;;;;;;;;;;:31;19825:10;19805:31;;;;;;;;;;;;;;;;19784:52;;19869:6;19855:10;:20;;19847:29;;;;;;19929:17;19894:11;:19;19906:6;19894:19;;;;;;;;;;;;;;;:31;19914:10;19894:31;;;;;;;;;;;;;;;;:52;19890:159;;20031:6;19997:11;:19;20009:6;19997:19;;;;;;;;;;;;;;;:31;20017:10;19997:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;19963:11;:19;19975:6;19963:19;;;;;;;;;;;;;;;:31;19983:10;19963:31;;;;;;;;;;;;;;;:74;;;;19890:159;20059:36;20069:6;20077:9;20088:6;20059:9;:36::i;:::-;20113:4;20106:11;;;19669:456;;;;;:::o;11663:136::-;11716:7;11776:15;6783:42;11776:9;:15::i;:::-;11758;6702:42;11758:9;:15::i;:::-;11743:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;11736:55;;11663:136;:::o;6472:22::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;6504:82::-;;;;;;;;;;;;;:::o;2937:103::-;2992:4;3027:5;;;;;;;;;;;3016:16;;:7;:16;;;3009:23;;2937:103;;;:::o;9187:124::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9296:7:::1;9276:10;:17;9287:5;9276:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9187:124:::0;;:::o;18676:80::-;18728:5;5559:2;18737:16;;18676:80;:::o;11269:171::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11328:26:::1;11357:21;11328:50;;11397:5;::::0;::::1;;;;;;;;11389:23;;:43;11413:18;11389:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11317:123;11269:171::o:0;6445:20::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;8566:511::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8724:17:::1;8705:16;:36;;;;8799:16;;8792:4;8778:12;;:18;;;;:::i;:::-;:37;;;;:::i;:::-;8763:12;:52;;;;8848:18;8828:17;:38;;;;8923:17;;8916:4;8902:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;8886:13;:54;;;;8974:20;8953:19;:41;;;;9050:19;;9043:4;9029:12;;:18;;;;:::i;:::-;:40;;;;:::i;:::-;9011:15;:58;;;;8566:511:::0;;;:::o;9535:111::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9632:6:::1;9614:15;:24;;;;9535:111:::0;:::o;6593:70::-;;;;;;;;;;;;;:::o;7002:34::-;;;;;;;;;;;;;:::o;5757:::-;;;;:::o;10139:360::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10291:13:::1;10268:7;:20;;:36;;;;10338:13;10315:7;:20;;:36;;;;10385:13;10362:7;:20;;:36;;;;10471:7;:20;;;10448:7;:20;;;10425:7;:20;;;:43;;;;:::i;:::-;:66;;;;:::i;:::-;10409:7;:13;;:82;;;;10139:360:::0;;;:::o;11916:103::-;11968:7;11994:10;:17;;;;11987:24;;11916:103;:::o;6835:45::-;;;;;;;;;;;;;:::o;7135:30::-;;;;;;;;;;;;;:::o;19022:101::-;19088:7;19106:6;:15;19113:7;19106:15;;;;;;;;;;;;;;;;19099:22;;19022:101;;;:::o;3300:146::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3406:1:::1;3370:39;;3391:5;::::0;::::1;;;;;;;;3370:39;;;;;;;;;;;;3436:1;3420:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3300:146::o:0;5074:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;9086:92::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9166:4:::1;9149:14;;:21;;;;;;;;;;;;;;;;;;9086:92::o:0;11157:103::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11247:5:::1;11230:14;;:22;;;;;;;;;;;;;;;;;;11157:103:::0;:::o;10884:105::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10976:5:::1;10953:12;:20;10966:6;10953:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10884:105:::0;:::o;18938:78::-;18990:7;19008:5;;;;;;;;;;;19001:12;;18938:78;:::o;10570:119::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10669:12:::1;10655:11;:26;;;;10570:119:::0;:::o;9320:206::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9442:8:::1;9428:11;;:22;;;;;;;;;;;;;;;;;;9499:19;9492:4;9477:12;;:19;;;;:::i;:::-;:41;;;;:::i;:::-;9461:13;:57;;;;9320:206:::0;;:::o;18762:84::-;18812:13;18836:7;;;;;;;;;;;;;;;;;18829:14;;18762:84;:::o;11449:206::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11518:24:::1;11551:6;11545:23;;;11577:4;11545:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11518:65;;11602:17;;;;;;;;;;;11594:35;;:53;11630:16;11594:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11507:148;11449:206:::0;:::o;6887:45::-;;;;;;;;;;;;;:::o;6973:19::-;;;;;;;;;;;;;:::o;19495:165::-;19573:4;19590:40;19600:10;19612:9;19623:6;19590:9;:40::i;:::-;19648:4;19641:11;;19495:165;;;;:::o;9716:352::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9866:13:::1;9844:6;:19;;:35;;;;9912:13;9890:6;:19;;:35;;;;9958:13;9936:6;:19;;:35;;;;10041:6;:19;;;10019:6;:19;;;9997:6;:19;;;:41;;;;:::i;:::-;:63;;;;:::i;:::-;9982:6;:12;;:78;;;;9716:352:::0;;;:::o;5718:32::-;;;;:::o;12028:164::-;12096:7;12161:22;:20;:22::i;:::-;12154:1;12135:15;12145:4;;;;;;;;;;;12135:9;:15::i;:::-;:21;;;;:::i;:::-;12123:8;:34;;;;:::i;:::-;:61;;;;:::i;:::-;12116:68;;12028:164;;;:::o;10698:177::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10816:10:::1;10796:17;;:30;;;;;;;;;;;;;;;;;;10857:10;10837:17;;:30;;;;;;;;;;;;;;;;;;10698:177:::0;;:::o;19129:132::-;19213:7;19231:11;:19;19243:6;19231:19;;;;;;;;;;;;;;;:28;19251:7;19231:28;;;;;;;;;;;;;;;;19224:35;;19129:132;;;;:::o;5680:31::-;;;;:::o;10998:150::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11102:4:::1;11071:22;:30;11094:6;11071:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11136:4;11117:10;:18;11128:6;11117:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10998:150:::0;:::o;3049:242::-;2871:19;2879:10;2871:7;:19::i;:::-;2863:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3158:1:::1;3138:22;;:8;:22;;;;3130:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:8;3219:37;;3240:5;::::0;::::1;;;;;;;;3219:37;;;;;;;;;;;;3275:8;3267:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;3049:242:::0;:::o;6942:24::-;;;;;;;;;;;;;:::o;12360:1187::-;12471:1;12455:18;;:6;:18;;;;:41;;;;;12494:1;12475:21;;:9;:21;;;;12455:41;12447:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12532:10;12543:22;:30;12566:6;12543:30;;;;;;;;;;;;;;;;;;;;;;;;;12532:41;;12584:11;12596:22;:33;12619:9;12596:33;;;;;;;;;;;;;;;;;;;;;;;;;12584:45;;12640:15;12656:10;:18;12667:6;12656:18;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;12676:10;:21;12687:9;12676:21;;;;;;;;;;;;;;;;;;;;;;;;;12656:41;:52;;;;12699:9;;;;;;;;;;;12656:52;12640:68;;12725:10;12722:818;;;12736:42;12754:6;12761:9;12771:6;12736:17;:42::i;:::-;12722:818;;;12804:14;;;;;;;;;;;12796:23;;;;;;12872:14;;;;;;;;;;;12869:660;;;12887:39;12902:6;12909:9;12919:6;12887:14;:39::i;:::-;12869:660;;;12976:5;12973:556;;;12982:35;12993:6;13000:9;13010:6;12982:10;:35::i;:::-;12973:556;;;13068:6;13065:464;;;13134:16;:14;:16::i;:::-;13130:35;;;13153:10;:8;:10::i;:::-;13130:35;13183:36;13195:6;13202:9;13212:6;13183:11;:36::i;:::-;13065:464;;;13302:12;:20;13315:6;13302:20;;;;;;;;;;;;;;;;;;;;;;;;;13301:21;:47;;;;;13325:12;:23;13338:9;13325:23;;;;;;;;;;;;;;;;;;;;;;;;;13324:24;13301:47;13293:56;;;;;;13405:15;;13397:6;13376:20;13386:9;13376;:20::i;:::-;:27;;;;:::i;:::-;:44;;13368:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13476:37;13489:6;13496:9;13506:6;13476:12;:37::i;:::-;13065:464;12973:556;12869:660;12722:818;12436:1111;;;12360:1187;;;:::o;15055:257::-;15150:44;15165:6;15187;15172;:14;15179:6;15172:14;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;15150:14;:44::i;:::-;15205:50;15220:9;15248:6;15230;:17;15237:9;15230:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;15205:14;:50::i;:::-;15287:9;15271:33;;15280:6;15271:33;;;15297:6;15271:33;;;;;;:::i;:::-;;;;;;;;15055:257;;;:::o;13556:378::-;13657:12;:23;13670:9;13657:23;;;;;;;;;;;;;;;;;;;;;;;;;13656:24;13648:33;;;;;;13710:12;;13700:6;:22;;13692:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13776:3;13773:2;13766:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;13755:8;:24;;;;13814:4;13790:12;:23;13803:9;13790:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13829:10;13853:9;13829:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13875:51;13893:6;13900:9;13910:6;13917:8;;13875:17;:51::i;:::-;13556:378;;;:::o;13943:468::-;14040:12;:23;14053:9;14040:23;;;;;;;;;;;;;;;;;;;;;;;;;14039:24;14031:33;;;;;;14093:12;;14083:6;:22;;14075:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14175:15;;14167:6;14146:20;14156:9;14146;:20::i;:::-;:27;;;;:::i;:::-;:44;;14138:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;14242:12;:23;14255:9;14242:23;;;;;;;;;;;;;;;;;;;;;;;;;14238:103;;14308:4;14295:6;:12;;;14288:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;14277:8;:35;;;;14238:103;;;14340:1;14329:8;:12;;;;14238:103;14352:51;14370:6;14377:9;14387:6;14394:8;;14352:17;:51::i;:::-;13943:468;;;:::o;15909:183::-;15957:4;15995:6;;;;;;;;;;;15994:7;:35;;;;;16018:11;;;;;;;;;;;15994:35;:90;;;;;16071:13;;16046:6;:21;16061:4;16046:21;;;;;;;;;;;;;;;;:38;;15994:90;15974:110;;15909:183;:::o;16104:729::-;7273:4;7264:6;;:13;;;;;;;;;;;;;;;;;;16152:14:::1;16169:24;16187:4;16169:9;:24::i;:::-;16152:41;;16207:21;16298:6;:12;;;16282:7;:13;;;:28;;;;:::i;:::-;16260:6;:19;;;16237:7;:20;;;:42;;;;:::i;:::-;16229:6;:51;;;;:::i;:::-;:82;;;;:::i;:::-;16207:104;;16322:18;16348:13;16341:6;:20;;;;:::i;:::-;16322:39;;16372:16;16403:1;16389:13;:15;;;;:::i;:::-;16372:32;;16415:19;16449:8;16435:13;:22;;;;:::i;:::-;16415:42;;16486:11;16475:10;:22;;;;:::i;:::-;16468:29;;16508:14;16523:21;16508:36;;16555:25;16573:6;16555:17;:25::i;:::-;16591:14;16628:6;16606:21;:28;;;;:::i;:::-;16591:43;;16645:13;16680:6;16667:11;16660:6;:18;;;;:::i;:::-;16659:27;;;;:::i;:::-;16645:41;;16697:29;16711:8;16720:5;16697:13;:29::i;:::-;16737:20;16780:6;16758:21;:28;;;;:::i;:::-;16737:49;;16797:28;16812:12;16797:14;:28::i;:::-;16141:692;;;;;;;;;7309:5:::0;7300:6;;:14;;;;;;;;;;;;;;;;;;16104:729::o;14417:344::-;14515:12;:20;14528:6;14515:20;;;;;;;;;;;;;;;;;;;;;;;;;14514:21;14506:30;;;;;;14565:13;;14555:6;:23;;14547:32;;;;;;14594:12;:20;14607:6;14594:20;;;;;;;;;;;;;;;;;;;;;;;;;14590:101;;14658:4;14644:7;:13;;;14637:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;14626:8;:36;;;;14590:101;;;14690:1;14679:8;:12;;;;14590:101;14702:51;14720:6;14727:9;14737:6;14744:8;;14702:17;:51::i;:::-;14417:344;;;:::o;14770:276::-;14892:4;14880:11;;14871:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;14860:8;:36;;;;14922:1;14911:8;;:12;14907:132;;;14926:51;14944:6;14951:9;14961:6;14968:8;;14926:17;:51::i;:::-;14907:132;;;14995:42;15013:6;15020:9;15030:6;14995:17;:42::i;:::-;14907:132;14770:276;;;:::o;15785:115::-;15882:10;15864:6;:15;15871:7;15864:15;;;;;;;;;;;;;;;:28;;;;15785:115;;:::o;15321:455::-;15434:17;15461:8;;15454:6;:15;;;;:::i;:::-;15434:35;;15480:44;15495:6;15517;15502;:14;15509:6;15502:14;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;15480:14;:44::i;:::-;15535:61;15558:4;15586:9;15564:6;:21;15579:4;15564:21;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;15535:14;:61::i;:::-;15607:53;15622:9;15650;15632:6;:17;15639:9;15632:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;15607:14;:53::i;:::-;15692:9;15676:36;;15685:6;15676:36;;;15702:9;15676:36;;;;;;:::i;:::-;;;;;;;;15752:4;15728:40;;15737:6;15728:40;;;15758:9;15728:40;;;;;;:::i;:::-;;;;;;;;15423:353;15321:455;;;;:::o;17791:369::-;17853:21;17889:1;17875:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17853:38;;17920:4;17902;17907:1;17902:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17946:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17936:4;17941:1;17936:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17970:6;;;;;;;;;;;:57;;;18042:6;18063:1;18079:4;18106;18126:15;17970:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17842:318;17791:369;:::o;18169:341::-;18261:4;18251:9;;:14;;;;;;;;;;;;;;;;;;18276:6;;;;;;;;;;;:22;;;18306:9;18339:4;18359:12;18386:1;18402;18418:17;;;;;;;;;;;18450:15;18276:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18497:5;18487:9;;:15;;;;;;;;;;;;;;;;;;18169:341;;:::o;16842:940::-;16907:20;16953:7;:20;;;16931:6;:19;;;:42;;;;:::i;:::-;16907:67;;16985:20;17031:7;:20;;;17009:6;:19;;;:42;;;;:::i;:::-;16985:67;;17063:16;17098:12;17083;:27;;;;:::i;:::-;17063:48;;17125:26;17187:8;17170:12;17154;:29;;;;:::i;:::-;:42;;;;:::i;:::-;17125:71;;17207:26;17269:8;17252:12;17236;:29;;;;:::i;:::-;:42;;;;:::i;:::-;17207:71;;17316:1;17295:18;:22;17292:235;;;17330:21;17388:17;;;;;;;;;;;17380:31;;17419:18;17444:5;17380:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17329:125;;;17473:16;17465:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;17318:209;17292:235;17564:1;17543:18;:22;17540:235;;;17578:21;17636:17;;;;;;;;;;;17628:31;;17667:18;17692:5;17628:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17577:125;;;17721:16;17713:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;17566:209;17540:235;16896:886;;;;;16842:940;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:474::-;3897:6;3905;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;4207:2;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4178:118;3829:474;;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:114::-;4728:6;4762:5;4756:12;4746:22;;4661:114;;;:::o;4781:184::-;4880:11;4914:6;4909:3;4902:19;4954:4;4949:3;4945:14;4930:29;;4781:184;;;;:::o;4971:132::-;5038:4;5061:3;5053:11;;5091:4;5086:3;5082:14;5074:22;;4971:132;;;:::o;5109:108::-;5186:24;5204:5;5186:24;:::i;:::-;5181:3;5174:37;5109:108;;:::o;5223:179::-;5292:10;5313:46;5355:3;5347:6;5313:46;:::i;:::-;5391:4;5386:3;5382:14;5368:28;;5223:179;;;;:::o;5408:113::-;5478:4;5510;5505:3;5501:14;5493:22;;5408:113;;;:::o;5557:732::-;5676:3;5705:54;5753:5;5705:54;:::i;:::-;5775:86;5854:6;5849:3;5775:86;:::i;:::-;5768:93;;5885:56;5935:5;5885:56;:::i;:::-;5964:7;5995:1;5980:284;6005:6;6002:1;5999:13;5980:284;;;6081:6;6075:13;6108:63;6167:3;6152:13;6108:63;:::i;:::-;6101:70;;6194:60;6247:6;6194:60;:::i;:::-;6184:70;;6040:224;6027:1;6024;6020:9;6015:14;;5980:284;;;5984:14;6280:3;6273:10;;5681:608;;;5557:732;;;;:::o;6295:373::-;6438:4;6476:2;6465:9;6461:18;6453:26;;6525:9;6519:4;6515:20;6511:1;6500:9;6496:17;6489:47;6553:108;6656:4;6647:6;6553:108;:::i;:::-;6545:116;;6295:373;;;;:::o;6674:619::-;6751:6;6759;6767;6816:2;6804:9;6795:7;6791:23;6787:32;6784:119;;;6822:79;;:::i;:::-;6784:119;6942:1;6967:53;7012:7;7003:6;6992:9;6988:22;6967:53;:::i;:::-;6957:63;;6913:117;7069:2;7095:53;7140:7;7131:6;7120:9;7116:22;7095:53;:::i;:::-;7085:63;;7040:118;7197:2;7223:53;7268:7;7259:6;7248:9;7244:22;7223:53;:::i;:::-;7213:63;;7168:118;6674:619;;;;;:::o;7299:553::-;7476:4;7514:3;7503:9;7499:19;7491:27;;7528:71;7596:1;7585:9;7581:17;7572:6;7528:71;:::i;:::-;7609:72;7677:2;7666:9;7662:18;7653:6;7609:72;:::i;:::-;7691;7759:2;7748:9;7744:18;7735:6;7691:72;:::i;:::-;7773;7841:2;7830:9;7826:18;7817:6;7773:72;:::i;:::-;7299:553;;;;;;;:::o;7858:118::-;7945:24;7963:5;7945:24;:::i;:::-;7940:3;7933:37;7858:118;;:::o;7982:222::-;8075:4;8113:2;8102:9;8098:18;8090:26;;8126:71;8194:1;8183:9;8179:17;8170:6;8126:71;:::i;:::-;7982:222;;;;:::o;8210:116::-;8280:21;8295:5;8280:21;:::i;:::-;8273:5;8270:32;8260:60;;8316:1;8313;8306:12;8260:60;8210:116;:::o;8332:133::-;8375:5;8413:6;8400:20;8391:29;;8429:30;8453:5;8429:30;:::i;:::-;8332:133;;;;:::o;8471:468::-;8536:6;8544;8593:2;8581:9;8572:7;8568:23;8564:32;8561:119;;;8599:79;;:::i;:::-;8561:119;8719:1;8744:53;8789:7;8780:6;8769:9;8765:22;8744:53;:::i;:::-;8734:63;;8690:117;8846:2;8872:50;8914:7;8905:6;8894:9;8890:22;8872:50;:::i;:::-;8862:60;;8817:115;8471:468;;;;;:::o;8945:86::-;8980:7;9020:4;9013:5;9009:16;8998:27;;8945:86;;;:::o;9037:112::-;9120:22;9136:5;9120:22;:::i;:::-;9115:3;9108:35;9037:112;;:::o;9155:214::-;9244:4;9282:2;9271:9;9267:18;9259:26;;9295:67;9359:1;9348:9;9344:17;9335:6;9295:67;:::i;:::-;9155:214;;;;:::o;9375:619::-;9452:6;9460;9468;9517:2;9505:9;9496:7;9492:23;9488:32;9485:119;;;9523:79;;:::i;:::-;9485:119;9643:1;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9614:117;9770:2;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9741:118;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9375:619;;;;;:::o;10000:329::-;10059:6;10108:2;10096:9;10087:7;10083:23;10079:32;10076:119;;;10114:79;;:::i;:::-;10076:119;10234:1;10259:53;10304:7;10295:6;10284:9;10280:22;10259:53;:::i;:::-;10249:63;;10205:117;10000:329;;;;:::o;10335:323::-;10391:6;10440:2;10428:9;10419:7;10415:23;10411:32;10408:119;;;10446:79;;:::i;:::-;10408:119;10566:1;10591:50;10633:7;10624:6;10613:9;10609:22;10591:50;:::i;:::-;10581:60;;10537:114;10335:323;;;;:::o;10664:468::-;10729:6;10737;10786:2;10774:9;10765:7;10761:23;10757:32;10754:119;;;10792:79;;:::i;:::-;10754:119;10912:1;10937:50;10979:7;10970:6;10959:9;10955:22;10937:50;:::i;:::-;10927:60;;10883:114;11036:2;11062:53;11107:7;11098:6;11087:9;11083:22;11062:53;:::i;:::-;11052:63;;11007:118;10664:468;;;;;:::o;11138:474::-;11206:6;11214;11263:2;11251:9;11242:7;11238:23;11234:32;11231:119;;;11269:79;;:::i;:::-;11231:119;11389:1;11414:53;11459:7;11450:6;11439:9;11435:22;11414:53;:::i;:::-;11404:63;;11360:117;11516:2;11542:53;11587:7;11578:6;11567:9;11563:22;11542:53;:::i;:::-;11532:63;;11487:118;11138:474;;;;;:::o;11618:60::-;11646:3;11667:5;11660:12;;11618:60;;;:::o;11684:142::-;11734:9;11767:53;11785:34;11794:24;11812:5;11794:24;:::i;:::-;11785:34;:::i;:::-;11767:53;:::i;:::-;11754:66;;11684:142;;;:::o;11832:126::-;11882:9;11915:37;11946:5;11915:37;:::i;:::-;11902:50;;11832:126;;;:::o;11964:144::-;12032:9;12065:37;12096:5;12065:37;:::i;:::-;12052:50;;11964:144;;;:::o;12114:167::-;12219:55;12268:5;12219:55;:::i;:::-;12214:3;12207:68;12114:167;;:::o;12287:258::-;12398:4;12436:2;12425:9;12421:18;12413:26;;12449:89;12535:1;12524:9;12520:17;12511:6;12449:89;:::i;:::-;12287:258;;;;:::o;12551:180::-;12599:77;12596:1;12589:88;12696:4;12693:1;12686:15;12720:4;12717:1;12710:15;12737:191;12777:4;12797:20;12815:1;12797:20;:::i;:::-;12792:25;;12831:20;12849:1;12831:20;:::i;:::-;12826:25;;12870:1;12867;12864:8;12861:34;;;12875:18;;:::i;:::-;12861:34;12920:1;12917;12913:9;12905:17;;12737:191;;;;:::o;12934:172::-;13074:24;13070:1;13062:6;13058:14;13051:48;12934:172;:::o;13112:366::-;13254:3;13275:67;13339:2;13334:3;13275:67;:::i;:::-;13268:74;;13351:93;13440:3;13351:93;:::i;:::-;13469:2;13464:3;13460:12;13453:19;;13112:366;;;:::o;13484:419::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:131;13891:4;13765:131;:::i;:::-;13757:139;;13484:419;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:185;14135:1;14152:20;14170:1;14152:20;:::i;:::-;14147:25;;14186:20;14204:1;14186:20;:::i;:::-;14181:25;;14225:1;14215:35;;14230:18;;:::i;:::-;14215:35;14272:1;14269;14265:9;14260:14;;14095:185;;;;:::o;14286:348::-;14326:7;14349:20;14367:1;14349:20;:::i;:::-;14344:25;;14383:20;14401:1;14383:20;:::i;:::-;14378:25;;14571:1;14503:66;14499:74;14496:1;14493:81;14488:1;14481:9;14474:17;14470:105;14467:131;;;14578:18;;:::i;:::-;14467:131;14626:1;14623;14619:9;14608:20;;14286:348;;;;:::o;14640:305::-;14680:3;14699:20;14717:1;14699:20;:::i;:::-;14694:25;;14733:20;14751:1;14733:20;:::i;:::-;14728:25;;14887:1;14819:66;14815:74;14812:1;14809:81;14806:107;;;14893:18;;:::i;:::-;14806:107;14937:1;14934;14930:9;14923:16;;14640:305;;;;:::o;14951:143::-;15008:5;15039:6;15033:13;15024:22;;15055:33;15082:5;15055:33;:::i;:::-;14951:143;;;;:::o;15100:351::-;15170:6;15219:2;15207:9;15198:7;15194:23;15190:32;15187:119;;;15225:79;;:::i;:::-;15187:119;15345:1;15370:64;15426:7;15417:6;15406:9;15402:22;15370:64;:::i;:::-;15360:74;;15316:128;15100:351;;;;:::o;15457:225::-;15597:34;15593:1;15585:6;15581:14;15574:58;15666:8;15661:2;15653:6;15649:15;15642:33;15457:225;:::o;15688:366::-;15830:3;15851:67;15915:2;15910:3;15851:67;:::i;:::-;15844:74;;15927:93;16016:3;15927:93;:::i;:::-;16045:2;16040:3;16036:12;16029:19;;15688:366;;;:::o;16060:419::-;16226:4;16264:2;16253:9;16249:18;16241:26;;16313:9;16307:4;16303:20;16299:1;16288:9;16284:17;16277:47;16341:131;16467:4;16341:131;:::i;:::-;16333:139;;16060:419;;;:::o;16485:171::-;16625:23;16621:1;16613:6;16609:14;16602:47;16485:171;:::o;16662:366::-;16804:3;16825:67;16889:2;16884:3;16825:67;:::i;:::-;16818:74;;16901:93;16990:3;16901:93;:::i;:::-;17019:2;17014:3;17010:12;17003:19;;16662:366;;;:::o;17034:419::-;17200:4;17238:2;17227:9;17223:18;17215:26;;17287:9;17281:4;17277:20;17273:1;17262:9;17258:17;17251:47;17315:131;17441:4;17315:131;:::i;:::-;17307:139;;17034:419;;;:::o;17459:182::-;17599:34;17595:1;17587:6;17583:14;17576:58;17459:182;:::o;17647:366::-;17789:3;17810:67;17874:2;17869:3;17810:67;:::i;:::-;17803:74;;17886:93;17975:3;17886:93;:::i;:::-;18004:2;17999:3;17995:12;17988:19;;17647:366;;;:::o;18019:419::-;18185:4;18223:2;18212:9;18208:18;18200:26;;18272:9;18266:4;18262:20;18258:1;18247:9;18243:17;18236:47;18300:131;18426:4;18300:131;:::i;:::-;18292:139;;18019:419;;;:::o;18444:167::-;18584:19;18580:1;18572:6;18568:14;18561:43;18444:167;:::o;18617:366::-;18759:3;18780:67;18844:2;18839:3;18780:67;:::i;:::-;18773:74;;18856:93;18945:3;18856:93;:::i;:::-;18974:2;18969:3;18965:12;18958:19;;18617:366;;;:::o;18989:419::-;19155:4;19193:2;19182:9;19178:18;19170:26;;19242:9;19236:4;19232:20;19228:1;19217:9;19213:17;19206:47;19270:131;19396:4;19270:131;:::i;:::-;19262:139;;18989:419;;;:::o;19414:180::-;19462:77;19459:1;19452:88;19559:4;19556:1;19549:15;19583:4;19580:1;19573:15;19600:180;19648:77;19645:1;19638:88;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19786:143;19843:5;19874:6;19868:13;19859:22;;19890:33;19917:5;19890:33;:::i;:::-;19786:143;;;;:::o;19935:351::-;20005:6;20054:2;20042:9;20033:7;20029:23;20025:32;20022:119;;;20060:79;;:::i;:::-;20022:119;20180:1;20205:64;20261:7;20252:6;20241:9;20237:22;20205:64;:::i;:::-;20195:74;;20151:128;19935:351;;;;:::o;20292:85::-;20337:7;20366:5;20355:16;;20292:85;;;:::o;20383:158::-;20441:9;20474:61;20492:42;20501:32;20527:5;20501:32;:::i;:::-;20492:42;:::i;:::-;20474:61;:::i;:::-;20461:74;;20383:158;;;:::o;20547:147::-;20642:45;20681:5;20642:45;:::i;:::-;20637:3;20630:58;20547:147;;:::o;20700:831::-;20963:4;21001:3;20990:9;20986:19;20978:27;;21015:71;21083:1;21072:9;21068:17;21059:6;21015:71;:::i;:::-;21096:80;21172:2;21161:9;21157:18;21148:6;21096:80;:::i;:::-;21223:9;21217:4;21213:20;21208:2;21197:9;21193:18;21186:48;21251:108;21354:4;21345:6;21251:108;:::i;:::-;21243:116;;21369:72;21437:2;21426:9;21422:18;21413:6;21369:72;:::i;:::-;21451:73;21519:3;21508:9;21504:19;21495:6;21451:73;:::i;:::-;20700:831;;;;;;;;:::o;21537:807::-;21786:4;21824:3;21813:9;21809:19;21801:27;;21838:71;21906:1;21895:9;21891:17;21882:6;21838:71;:::i;:::-;21919:72;21987:2;21976:9;21972:18;21963:6;21919:72;:::i;:::-;22001:80;22077:2;22066:9;22062:18;22053:6;22001:80;:::i;:::-;22091;22167:2;22156:9;22152:18;22143:6;22091:80;:::i;:::-;22181:73;22249:3;22238:9;22234:19;22225:6;22181:73;:::i;:::-;22264;22332:3;22321:9;22317:19;22308:6;22264:73;:::i;:::-;21537:807;;;;;;;;;:::o;22350:663::-;22438:6;22446;22454;22503:2;22491:9;22482:7;22478:23;22474:32;22471:119;;;22509:79;;:::i;:::-;22471:119;22629:1;22654:64;22710:7;22701:6;22690:9;22686:22;22654:64;:::i;:::-;22644:74;;22600:128;22767:2;22793:64;22849:7;22840:6;22829:9;22825:22;22793:64;:::i;:::-;22783:74;;22738:129;22906:2;22932:64;22988:7;22979:6;22968:9;22964:22;22932:64;:::i;:::-;22922:74;;22877:129;22350:663;;;;;:::o;23019:147::-;23120:11;23157:3;23142:18;;23019:147;;;;:::o;23172:114::-;;:::o;23292:398::-;23451:3;23472:83;23553:1;23548:3;23472:83;:::i;:::-;23465:90;;23564:93;23653:3;23564:93;:::i;:::-;23682:1;23677:3;23673:11;23666:18;;23292:398;;;:::o;23696:379::-;23880:3;23902:147;24045:3;23902:147;:::i;:::-;23895:154;;24066:3;24059:10;;23696:379;;;:::o;24081:180::-;24221:32;24217:1;24209:6;24205:14;24198:56;24081:180;:::o;24267:366::-;24409:3;24430:67;24494:2;24489:3;24430:67;:::i;:::-;24423:74;;24506:93;24595:3;24506:93;:::i;:::-;24624:2;24619:3;24615:12;24608:19;;24267:366;;;:::o;24639:419::-;24805:4;24843:2;24832:9;24828:18;24820:26;;24892:9;24886:4;24882:20;24878:1;24867:9;24863:17;24856:47;24920:131;25046:4;24920:131;:::i;:::-;24912:139;;24639:419;;;:::o
Swarm Source
ipfs://28eec899016b9cd484a2b3dc0b3f06a778a33c37a6bb7b2cbee7c75ec558dd1c
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.