ERC-20
Overview
Max Total Supply
1,000,000,000 #1
Holders
55
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NumberOne
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-17 */ /* #1, the #1 token on Eth Telegram: https://t.me/number1token _ _ __ _| || |_ /_ | |_ __ _| | | _| || |_ | | |_ __ _| | | |_||_| |_| */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract NumberOne is IERC20, Ownable { using Address for address; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "#1"; string constant _symbol = "#1"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals); uint256 _maxBuyTxAmount = (_totalSupply * 1) / 100; uint256 _maxSellTxAmount = (_totalSupply * 1) / 100; uint256 _maxWalletSize = (_totalSupply * 2) / 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => uint256) public lastSell; mapping (address => uint256) public lastBuy; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) liquidityCreator; uint256 marketingFee = 800; uint256 liquidityFee = 200; uint256 totalFee = marketingFee + liquidityFee; uint256 sellBias = 0; uint256 feeDenominator = 10000; address payable public liquidityFeeReceiver = payable(0xb00deDF286759a65bA3B066eB76661731f6F88f5); address payable public marketingFeeReceiver = payable(0xb00deDF286759a65bA3B066eB76661731f6F88f5); IDEXRouter public router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping (address => bool) liquidityPools; mapping (address => uint256) public protected; bool protectionEnabled = true; bool protectionDisabled = false; uint256 protectionLimit; uint256 public protectionCount; uint256 protectionTimer; address public pair; uint256 public launchedAt; uint256 public launchedTime; uint256 public deadBlocks; bool startBullRun = false; bool pauseDisabled = false; uint256 public rateLimit = 2; bool public swapEnabled = false; bool processEnabled = true; uint256 public swapThreshold = _totalSupply / 1000; uint256 public swapMinimum = _totalSupply / 10000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } mapping (address => bool) teamMember; modifier onlyTeam() { require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member"); _; } event ProtectedWallet(address, address, uint256, uint8); constructor () { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); liquidityPools[pair] = true; _allowances[owner()][routerAddress] = type(uint256).max; _allowances[address(this)][routerAddress] = type(uint256).max; isFeeExempt[owner()] = true; liquidityCreator[owner()] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[routerAddress] = true; isTxLimitExempt[DEAD] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0x5B19530984eCBf8eBA35F2AE59b5E0073162D267), owner(), _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external pure returns (string memory) { return _symbol; } function name() external pure returns (string memory) { return _name; } function getOwner() external view returns (address) { return owner(); } function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); } function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); } function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); } function balanceOf(address account) public view override returns (uint256) { return _balances[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 approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function setTeamMember(address _team, bool _enabled) external onlyOwner { teamMember[_team] = _enabled; } function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam { uint256 amountETH = address(this).balance; payable(adr).transfer((amountETH * amountPercentage) / 100); } function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam { require(!startBullRun && _deadBlocks < 10); deadBlocks = _deadBlocks; startBullRun = true; launchedAt = block.number; protectionTimer = block.timestamp + _protection; protectionLimit = _limit * (10 ** _decimals); } function pauseTrading() external onlyTeam { require(!pauseDisabled); startBullRun = false; } function disablePause() external onlyTeam { pauseDisabled = true; startBullRun = true; } function setProtection(bool _protect, uint256 _addTime) external onlyTeam { require(!protectionDisabled); protectionEnabled = _protect; require(_addTime < 1 days); protectionTimer += _addTime; } function disableProtection() external onlyTeam { protectionDisabled = true; protectionEnabled = false; } function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam { if (_protect) { require(protectionEnabled); } for (uint i = 0; i < _wallets.length; i++) { if (_protect) { protectionCount++; emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2); } else { if (protected[_wallets[i]] != 0) protectionCount--; } protected[_wallets[i]] = _protect ? block.number : 0; } } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(sender != address(0), "BEP20: transfer from 0x0"); require(recipient != address(0), "BEP20: transfer to 0x0"); require(amount > 0, "Amount must be > zero"); require(_balances[sender] >= amount, "Insufficient balance"); if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); } if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); } checkTxLimit(sender, recipient, amount); if (!liquidityPools[recipient] && recipient != DEAD) { if (!isTxLimitExempt[recipient]) { checkWalletLimit(recipient, amount); } } if(protectionEnabled && protectionTimer > block.timestamp) { if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) { protected[recipient] = block.number; protectionCount++; emit ProtectedWallet(tx.origin, recipient, block.number, 0); } } if(inSwap){ return _basicTransfer(sender, recipient, amount); } _balances[sender] = _balances[sender] - amount; uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount; if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); } _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; launchedTime = block.timestamp; swapEnabled = true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function checkWalletLimit(address recipient, uint256 amount) internal view { uint256 walletLimit = _maxWalletSize; require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size."); } function checkTxLimit(address sender, address recipient, uint256 amount) internal { require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded"); require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded."); if (protected[sender] != 0){ require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support."); lastSell[sender] = block.number; } if (liquidityPools[recipient]) { lastSell[sender] = block.number; } else if (shouldTakeFee(sender)) { if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) { protected[recipient] = block.number; emit ProtectedWallet(tx.origin, recipient, block.number, 1); } lastBuy[recipient] = block.number; if (tx.origin != recipient) lastBuy[tx.origin] = block.number; } } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; } if (selling) return totalFee + sellBias; return totalFee - sellBias; } function takeFee(address recipient, uint256 amount) internal returns (uint256) { bool selling = liquidityPools[recipient]; uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator; _balances[address(this)] += feeAmount; return amount - feeAmount; } function shouldSwapBack(address recipient) internal view returns (bool) { return !liquidityPools[msg.sender] && !inSwap && swapEnabled && liquidityPools[recipient] && _balances[address(this)] >= swapMinimum; } function swapBack(uint256 amount) internal swapping { uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold; if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)]; uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee; amountToSwap -= amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance - balanceBefore; uint256 totalBNBFee = totalFee - (liquidityFee / 2); uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee; uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity; if (amountBNBMarketing > 0) marketingFeeReceiver.transfer(amountBNBMarketing); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, liquidityFeeReceiver, block.timestamp ); } emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify); } function addLiquidityPool(address lp, bool isPool) external onlyOwner { require(lp != pair, "Can't alter current liquidity pair"); liquidityPools[lp] = isPool; } function setRateLimit(uint256 rate) external onlyOwner { require(rate <= 60 seconds); rateLimit = rate; } function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner { require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000); _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor; _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor; } function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() { require(numerator > 0 && divisor > 0 && divisor <= 10000); _maxWalletSize = (_totalSupply * numerator) / divisor; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = _marketingFee + _liquidityFee; sellBias = _sellBias; feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2); } function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner { liquidityFeeReceiver = payable(_liquidityFeeReceiver); marketingFeeReceiver = payable(_marketingFeeReceiver); } function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner { require(_denominator > 0); swapEnabled = _enabled; processEnabled = _processEnabled; swapThreshold = _totalSupply / _denominator; swapMinimum = _swapMinimum * (10 ** _decimals); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO)); } event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","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":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","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":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_protect","type":"bool"}],"name":"protectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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
6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326009600a620005af565b6200004290633b9aca0062000670565b6003556064600354600162000058919062000670565b62000064919062000543565b600455606460035460016200007a919062000670565b62000086919062000543565b600555606460035460026200009c919062000670565b620000a8919062000543565b600655610320600e81905560c8600f819055620000c59162000528565b6010556000601155612710601255601380546001600160a01b031990811673b00dedf286759a65ba3b066eb76661731f6f88f590811790925560148054821690921790915560168054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556019805461ffff19908116600117909155602180548216905560026022556023805490911661010017905560035462000166906103e89062000543565b6024556127106003546200017b919062000543565b6025553480156200018b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200022557600080fd5b505afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002609190620004f6565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002bd57600080fd5b505afa158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f89190620004f6565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200034057600080fd5b505af115801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b9190620004f6565b601d80546001600160a01b0319166001600160a01b039290921691821790556000908152601760205260408120805460ff1916600117905560001990600890620003cd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601680548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c8652848320805483168217905582548416835284832080548316821790559554831682528382208054821687179055855483168252838220805490911690951790945560035484548216855260078452828520819055935491519384521691735b19530984ecbf8eba35f2ae59b5e0073162d267917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006a8565b6000602082840312156200050957600080fd5b81516001600160a01b03811681146200052157600080fd5b9392505050565b600082198211156200053e576200053e62000692565b500190565b6000826200056157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620005a75781600019048211156200058b576200058b62000692565b808516156200059957918102915b93841c93908002906200056b565b509250929050565b60006200052160ff841683600082620005cb575060016200066a565b81620005da575060006200066a565b8160018114620005f35760028114620005fe576200061e565b60019150506200066a565b60ff84111562000612576200061262000692565b50506001821b6200066a565b5060208310610133831016604e8410600b841016171562000643575081810a6200066a565b6200064f838362000566565b806000190482111562000666576200066662000692565b0290505b92915050565b60008160001904831182151516156200068d576200068d62000692565b500290565b634e487b7160e01b600052601160045260246000fd5b6129e580620006b86000396000f3fe6080604052600436106102e85760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d146108be578063f8821a62146108de578063f887ea40146108f4578063fabb0b4f1461091457600080fd5b8063e96fada21461085e578063f1f3bca31461087e578063f2fde38b1461089e57600080fd5b8063bf56b37114610775578063bfa21d6a1461078b578063c1adf7bc146107ab578063c287184e146107d8578063d6860142146107f8578063dd62ed3e1461081857600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610700578063a9059cbb14610720578063abe57e7014610740578063bafe446b1461076057600080fd5b806395d89b411461031d5780639b02c402146106ca578063a4b45c00146106e057600080fd5b80636f4ce428146105e25780636fcba3771461060f57806370a082311461062f578063715018a614610665578063893d20e81461067a5780638da5cb5b146106ac57600080fd5b806346d7edaa1161024f5780635804f1e41161020857806361e08e72116101e257806361e08e721461057d57806363a803e114610593578063658d4b7f146105a85780636ddd1713146105c857600080fd5b80635804f1e414610532578063584f969a1461054857806360bba03d1461055d57600080fd5b806346d7edaa14610465578063492a937b1461049257806350713935146104b257806354a1dfc9146104d257806356a227f2146104f2578063571ac8b01461051257600080fd5b8063234e9494116102a1578063234e9494146103ca57806323b872dd146103df5780632b112e49146103ff578063313ce5671461041457806334848b9a14610430578063421dd7c71461045057600080fd5b80630445b667146102f457806306fdde031461031d578063095db78f1461034e578063095ea7b3146103705780631031e36e146103a057806318160ddd146103b557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a60245481565b6040519081526020015b60405180910390f35b34801561032957600080fd5b506040805180820182526002815261233160f01b6020820152905161031491906126a9565b34801561035a57600080fd5b5061036e610369366004612495565b61092a565b005b34801561037c57600080fd5b5061039061038b366004612469565b610ae6565b6040519015158152602001610314565b3480156103ac57600080fd5b5061036e610b53565b3480156103c157600080fd5b5060035461030a565b3480156103d657600080fd5b5061030a610bb8565b3480156103eb57600080fd5b506103906103fa3660046123f3565b610bd8565b34801561040b57600080fd5b5061030a610c6d565b34801561042057600080fd5b5060405160098152602001610314565b34801561043c57600080fd5b5061036e61044b3660046125f2565b610cae565b34801561045c57600080fd5b5061036e610d4f565b34801561047157600080fd5b5061030a610480366004612380565b60186020526000908152604090205481565b34801561049e57600080fd5b5061036e6104ad366004612434565b610da4565b3480156104be57600080fd5b5061036e6104cd3660046125f2565b610e62565b3480156104de57600080fd5b5061036e6104ed366004612534565b610efd565b3480156104fe57600080fd5b5061036e61050d3660046125ab565b610f80565b34801561051e57600080fd5b5061039061052d366004612380565b611010565b34801561053e57600080fd5b5061030a601f5481565b34801561055457600080fd5b5061036e61101e565b34801561056957600080fd5b5061036e610578366004612434565b611073565b34801561058957600080fd5b5061030a60225481565b34801561059f57600080fd5b5061030a6110c8565b3480156105b457600080fd5b5061036e6105c3366004612434565b6110e3565b3480156105d457600080fd5b506023546103909060ff1681565b3480156105ee57600080fd5b5061030a6105fd366004612380565b60096020526000908152604090205481565b34801561061b57600080fd5b5061036e61062a36600461264c565b611138565b34801561063b57600080fd5b5061030a61064a366004612380565b6001600160a01b031660009081526007602052604090205490565b34801561067157600080fd5b5061036e61119b565b34801561068657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610314565b3480156106b857600080fd5b506000546001600160a01b0316610694565b3480156106d657600080fd5b5061030a601b5481565b3480156106ec57600080fd5b5061036e6106fb3660046123ba565b61120f565b34801561070c57600080fd5b50601d54610694906001600160a01b031681565b34801561072c57600080fd5b5061039061073b366004612469565b611267565b34801561074c57600080fd5b5061036e61075b3660046125d0565b611274565b34801561076c57600080fd5b5061030a6112e5565b34801561078157600080fd5b5061030a601e5481565b34801561079757600080fd5b50601354610694906001600160a01b031681565b3480156107b757600080fd5b5061030a6107c6366004612380565b600a6020526000908152604090205481565b3480156107e457600080fd5b5061036e6107f3366004612592565b611300565b34801561080457600080fd5b5061036e610813366004612576565b61133d565b34801561082457600080fd5b5061030a6108333660046123ba565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561086a57600080fd5b50601454610694906001600160a01b031681565b34801561088a57600080fd5b5061030a610899366004612519565b6113ce565b3480156108aa57600080fd5b5061036e6108b9366004612380565b61141b565b3480156108ca57600080fd5b5061036e6108d9366004612434565b611505565b3480156108ea57600080fd5b5061030a60255481565b34801561090057600080fd5b50601554610694906001600160a01b031681565b34801561092057600080fd5b5061030a60205481565b3360009081526027602052604090205460ff168061095257506000546001600160a01b031633145b6109775760405162461bcd60e51b815260040161096e906126fe565b60405180910390fd5b801561098c5760195460ff1661098c57600080fd5b60005b82811015610ae0578115610a1b57601b80549060006109ad83612950565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea328585848181106109e6576109e6612981565b90506020020160208101906109fb9190612380565b436002604051610a0e949392919061267e565b60405180910390a1610a7b565b60186000858584818110610a3157610a31612981565b9050602002016020810190610a469190612380565b6001600160a01b0316815260208101919091526040016000205415610a7b57601b8054906000610a7583612939565b91905055505b81610a87576000610a89565b435b60186000868685818110610a9f57610a9f612981565b9050602002016020810190610ab49190612380565b6001600160a01b0316815260208101919091526040016000205580610ad881612950565b91505061098f565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b419086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610b7b57506000546001600160a01b031633145b610b975760405162461bcd60e51b815260040161096e906126fe565b602154610100900460ff1615610bac57600080fd5b6021805460ff19169055565b6000610bc66009600a612858565b600554610bd391906127f3565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610c58576001600160a01b0384166000908152600860209081526040808320338452909152902054610c33908390612922565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610c6384848461155a565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610ca1916127db565b600354610bd39190612922565b3360009081526027602052604090205460ff1680610cd657506000546001600160a01b031633145b610cf25760405162461bcd60e51b815260040161096e906126fe565b60215460ff16158015610d055750600a83105b610d0e57600080fd5b60208390556021805460ff1916600117905543601e55610d2e82426127db565b601c55610d3d6009600a612858565b610d479082612903565b601a55505050565b3360009081526027602052604090205460ff1680610d7757506000546001600160a01b031633145b610d935760405162461bcd60e51b815260040161096e906126fe565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b815260040161096e90612735565b601d546001600160a01b0383811691161415610e375760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b606482015260840161096e565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b815260040161096e90612735565b600083118015610e9c5750600082115b8015610ea85750600081115b8015610eb657506127108111155b610ebf57600080fd5b8083600354610ece9190612903565b610ed891906127f3565b6004556003548190610eeb908490612903565b610ef591906127f3565b600555505050565b6000546001600160a01b03163314610f275760405162461bcd60e51b815260040161096e90612735565b60008211610f3457600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610f5e9083906127f3565b602455610f6d6009600a612858565b610f779082612903565b60255550505050565b3360009081526027602052604090205460ff1680610fa857506000546001600160a01b031633145b610fc45760405162461bcd60e51b815260040161096e906126fe565b476001600160a01b0382166108fc6064610fde8685612903565b610fe891906127f3565b6040518115909202916000818181858888f19350505050158015610ae0573d6000803e3d6000fd5b6000610b4d82600019610ae6565b3360009081526027602052604090205460ff168061104657506000546001600160a01b031633145b6110625760405162461bcd60e51b815260040161096e906126fe565b6021805461ffff1916610101179055565b6000546001600160a01b0316331461109d5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b60006110d66009600a612858565b600654610bd391906127f3565b6000546001600160a01b0316331461110d5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111625760405162461bcd60e51b815260040161096e90612735565b600f849055600e83905561117684846127db565b6010556011829055601281905561118e6002826127f3565b60105410610ae057600080fd5b6000546001600160a01b031633146111c55760405162461bcd60e51b815260040161096e90612735565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112395760405162461bcd60e51b815260040161096e90612735565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610c6633848461155a565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161096e90612735565b6000821180156112ae5750600081115b80156112bc57506127108111155b6112c557600080fd5b80826003546112d49190612903565b6112de91906127f3565b6006555050565b60006112f36009600a612858565b600454610bd391906127f3565b6000546001600160a01b0316331461132a5760405162461bcd60e51b815260040161096e90612735565b603c81111561133857600080fd5b602255565b3360009081526027602052604090205460ff168061136557506000546001600160a01b031633145b6113815760405162461bcd60e51b815260040161096e906126fe565b601954610100900460ff161561139657600080fd5b6019805460ff19168315151790556201518081106113b357600080fd5b80601c60008282546113c591906127db565b90915550505050565b600043602054601e546113e191906127db565b106113f5576001601254610b4d9190612922565b811561140b57601154601054610b4d91906127db565b601154601054610b4d9190612922565b6000546001600160a01b031633146114455760405162461bcd60e51b815260040161096e90612735565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461152f5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b0384166115b25760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d203078300000000000000000604482015260640161096e565b6001600160a01b0383166116015760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b604482015260640161096e565b600082116116495760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b604482015260640161096e565b6001600160a01b0384166000908152600760205260409020548211156116a85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161096e565b601e541580156116d057506001600160a01b03831660009081526017602052604090205460ff165b15611757576001600160a01b0384166000908152600d602052604090205460ff1661173d5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e0000000000000000604482015260640161096e565b61175743601e5542601f556023805460ff19166001179055565b60215460ff166117e4576001600160a01b0384166000908152600d602052604090205460ff16806117a057506001600160a01b0383166000908152600d602052604090205460ff165b6117e45760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b604482015260640161096e565b6117ef848484611a5c565b6001600160a01b03831660009081526017602052604090205460ff1615801561182657506001546001600160a01b03848116911614155b15611855576001600160a01b0383166000908152600c602052604090205460ff16611855576118558383611db1565b60195460ff168015611868575042601c54115b15611932576001600160a01b03841660009081526017602052604090205460ff16801561189e5750326001600160a01b03841614155b80156118c057506001600160a01b038316600090815260186020526040902054155b15611932576001600160a01b0383166000908152601860205260408120439055601b8054916118ee83612950565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611929949392919061267e565b60405180910390a15b60265460ff161561194f57611948848484611e36565b9050610c66565b6001600160a01b038416600090815260076020526040902054611973908390612922565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff16156119a857826119b2565b6119b28484611ef0565b90506119bd84611f6e565b156119d15782156119d1576119d183611fe5565b6001600160a01b0384166000908152600760205260409020546119f59082906127db565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a499085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611aae57506001600160a01b03831660009081526017602052604090205460ff16611aa657600554611aaa565b6004545b8111155b611aee5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161096e565b6001600160a01b0383166000908152600c602052604090205460ff1680611b3a57506022546001600160a01b0383166000908152600a60205260409020544391611b37916127db565b11155b611b865760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e000000604482015260640161096e565b6001600160a01b03831660009081526018602052604090205415611c6957611bb06009600a612858565b601a54611bbd9190612903565b8111158015611be257506001600160a01b038316600090815260096020526040902054155b8015611bef575042601c54115b611c4d5760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b606482015260840161096e565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611ca85750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff16611dac5760195460ff168015611cdb575042601c54115b8015611cf55750326000908152600a602052604090205443145b8015611d1757506001600160a01b038216600090815260186020526040902054155b15611d78576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea91611d6f913291869160019061267e565b60405180910390a15b6001600160a01b0382166000818152600a602052604090204390553214611dac57326000908152600a602052604090204390555b505050565b6006546001600160a01b0383166000908152600760205260409020548190611dda9084906127db565b1115611dac5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161096e565b6001600160a01b038316600090815260076020526040812054611e5a908390612922565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e8a9083906127db565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ede9086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526017602052604081205460125460ff909116908290611f1d836113ce565b611f279086612903565b611f3191906127f3565b30600090815260076020526040812080549293508392909190611f559084906127db565b90915550611f6590508185612922565b95945050505050565b3360009081526017602052604081205460ff16158015611f91575060265460ff16155b8015611f9f575060235460ff165b8015611fc357506001600160a01b03821660009081526017602052604090205460ff165b8015610b4d575060255430600090815260076020526040902054101592915050565b6026805460ff19166001179055602454600090821061200657602454612008565b815b306000908152600760205260409020549091508111156120345750306000908152600760205260409020545b60006010546002600f54846120499190612903565b61205391906127f3565b61205d91906127f3565b90506120698183612922565b604080516002808252606082018352929450600092909160208301908036833701905050905030816000815181106120a3576120a3612981565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120f757600080fd5b505afa15801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f919061239d565b8160018151811061214257612142612981565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac9479061218c90879060009087903090429060040161276a565b600060405180830381600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b50505050600081476121cc9190612922565b905060006002600f546121df91906127f3565b6010546121ec9190612922565b90506000816002600f54856122019190612903565b61220b91906127f3565b61221591906127f3565b905060006122238285612922565b90508015612267576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612265573d6000803e3d6000fd5b505b86156123155760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156122d857600080fd5b505af11580156122ec573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612311919061261e565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b8035801515811461237b57600080fd5b919050565b60006020828403121561239257600080fd5b8135610c6681612997565b6000602082840312156123af57600080fd5b8151610c6681612997565b600080604083850312156123cd57600080fd5b82356123d881612997565b915060208301356123e881612997565b809150509250929050565b60008060006060848603121561240857600080fd5b833561241381612997565b9250602084013561242381612997565b929592945050506040919091013590565b6000806040838503121561244757600080fd5b823561245281612997565b91506124606020840161236b565b90509250929050565b6000806040838503121561247c57600080fd5b823561248781612997565b946020939093013593505050565b6000806000604084860312156124aa57600080fd5b833567ffffffffffffffff808211156124c257600080fd5b818601915086601f8301126124d657600080fd5b8135818111156124e557600080fd5b8760208260051b85010111156124fa57600080fd5b602092830195509350612510918601905061236b565b90509250925092565b60006020828403121561252b57600080fd5b610c668261236b565b6000806000806080858703121561254a57600080fd5b6125538561236b565b93506125616020860161236b565b93969395505050506040820135916060013590565b6000806040838503121561258957600080fd5b6124878361236b565b6000602082840312156125a457600080fd5b5035919050565b600080604083850312156125be57600080fd5b8235915060208301356123e881612997565b600080604083850312156125e357600080fd5b50508035926020909101359150565b60008060006060848603121561260757600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561263357600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561266257600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156126d6578581018301518582016040015282016126ba565b818111156126e8576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127ba5784516001600160a01b031683529383019391830191600101612795565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127ee576127ee61296b565b500190565b60008261281057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156128505781600019048211156128365761283661296b565b8085161561284357918102915b93841c939080029061281a565b509250929050565b6000610c6660ff84168360008261287157506001610b4d565b8161287e57506000610b4d565b8160018114612894576002811461289e576128ba565b6001915050610b4d565b60ff8411156128af576128af61296b565b50506001821b610b4d565b5060208310610133831016604e8410600b84101617156128dd575081810a610b4d565b6128e78383612815565b80600019048211156128fb576128fb61296b565b029392505050565b600081600019048311821515161561291d5761291d61296b565b500290565b6000828210156129345761293461296b565b500390565b6000816129485761294861296b565b506000190190565b60006000198214156129645761296461296b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146129ac57600080fd5b5056fea26469706673582212202cf74dc7b0ba586d40274814a930a4382cd8f66d05c2e8b2c6a357cc86a03e5564736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102e85760003560e01c80636f4ce42811610190578063bf56b371116100dc578063e96fada211610095578063f84ba65d1161006f578063f84ba65d146108be578063f8821a62146108de578063f887ea40146108f4578063fabb0b4f1461091457600080fd5b8063e96fada21461085e578063f1f3bca31461087e578063f2fde38b1461089e57600080fd5b8063bf56b37114610775578063bfa21d6a1461078b578063c1adf7bc146107ab578063c287184e146107d8578063d6860142146107f8578063dd62ed3e1461081857600080fd5b806395d89b4111610149578063a8aa1b3111610123578063a8aa1b3114610700578063a9059cbb14610720578063abe57e7014610740578063bafe446b1461076057600080fd5b806395d89b411461031d5780639b02c402146106ca578063a4b45c00146106e057600080fd5b80636f4ce428146105e25780636fcba3771461060f57806370a082311461062f578063715018a614610665578063893d20e81461067a5780638da5cb5b146106ac57600080fd5b806346d7edaa1161024f5780635804f1e41161020857806361e08e72116101e257806361e08e721461057d57806363a803e114610593578063658d4b7f146105a85780636ddd1713146105c857600080fd5b80635804f1e414610532578063584f969a1461054857806360bba03d1461055d57600080fd5b806346d7edaa14610465578063492a937b1461049257806350713935146104b257806354a1dfc9146104d257806356a227f2146104f2578063571ac8b01461051257600080fd5b8063234e9494116102a1578063234e9494146103ca57806323b872dd146103df5780632b112e49146103ff578063313ce5671461041457806334848b9a14610430578063421dd7c71461045057600080fd5b80630445b667146102f457806306fdde031461031d578063095db78f1461034e578063095ea7b3146103705780631031e36e146103a057806318160ddd146103b557600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030a60245481565b6040519081526020015b60405180910390f35b34801561032957600080fd5b506040805180820182526002815261233160f01b6020820152905161031491906126a9565b34801561035a57600080fd5b5061036e610369366004612495565b61092a565b005b34801561037c57600080fd5b5061039061038b366004612469565b610ae6565b6040519015158152602001610314565b3480156103ac57600080fd5b5061036e610b53565b3480156103c157600080fd5b5060035461030a565b3480156103d657600080fd5b5061030a610bb8565b3480156103eb57600080fd5b506103906103fa3660046123f3565b610bd8565b34801561040b57600080fd5b5061030a610c6d565b34801561042057600080fd5b5060405160098152602001610314565b34801561043c57600080fd5b5061036e61044b3660046125f2565b610cae565b34801561045c57600080fd5b5061036e610d4f565b34801561047157600080fd5b5061030a610480366004612380565b60186020526000908152604090205481565b34801561049e57600080fd5b5061036e6104ad366004612434565b610da4565b3480156104be57600080fd5b5061036e6104cd3660046125f2565b610e62565b3480156104de57600080fd5b5061036e6104ed366004612534565b610efd565b3480156104fe57600080fd5b5061036e61050d3660046125ab565b610f80565b34801561051e57600080fd5b5061039061052d366004612380565b611010565b34801561053e57600080fd5b5061030a601f5481565b34801561055457600080fd5b5061036e61101e565b34801561056957600080fd5b5061036e610578366004612434565b611073565b34801561058957600080fd5b5061030a60225481565b34801561059f57600080fd5b5061030a6110c8565b3480156105b457600080fd5b5061036e6105c3366004612434565b6110e3565b3480156105d457600080fd5b506023546103909060ff1681565b3480156105ee57600080fd5b5061030a6105fd366004612380565b60096020526000908152604090205481565b34801561061b57600080fd5b5061036e61062a36600461264c565b611138565b34801561063b57600080fd5b5061030a61064a366004612380565b6001600160a01b031660009081526007602052604090205490565b34801561067157600080fd5b5061036e61119b565b34801561068657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610314565b3480156106b857600080fd5b506000546001600160a01b0316610694565b3480156106d657600080fd5b5061030a601b5481565b3480156106ec57600080fd5b5061036e6106fb3660046123ba565b61120f565b34801561070c57600080fd5b50601d54610694906001600160a01b031681565b34801561072c57600080fd5b5061039061073b366004612469565b611267565b34801561074c57600080fd5b5061036e61075b3660046125d0565b611274565b34801561076c57600080fd5b5061030a6112e5565b34801561078157600080fd5b5061030a601e5481565b34801561079757600080fd5b50601354610694906001600160a01b031681565b3480156107b757600080fd5b5061030a6107c6366004612380565b600a6020526000908152604090205481565b3480156107e457600080fd5b5061036e6107f3366004612592565b611300565b34801561080457600080fd5b5061036e610813366004612576565b61133d565b34801561082457600080fd5b5061030a6108333660046123ba565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561086a57600080fd5b50601454610694906001600160a01b031681565b34801561088a57600080fd5b5061030a610899366004612519565b6113ce565b3480156108aa57600080fd5b5061036e6108b9366004612380565b61141b565b3480156108ca57600080fd5b5061036e6108d9366004612434565b611505565b3480156108ea57600080fd5b5061030a60255481565b34801561090057600080fd5b50601554610694906001600160a01b031681565b34801561092057600080fd5b5061030a60205481565b3360009081526027602052604090205460ff168061095257506000546001600160a01b031633145b6109775760405162461bcd60e51b815260040161096e906126fe565b60405180910390fd5b801561098c5760195460ff1661098c57600080fd5b60005b82811015610ae0578115610a1b57601b80549060006109ad83612950565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea328585848181106109e6576109e6612981565b90506020020160208101906109fb9190612380565b436002604051610a0e949392919061267e565b60405180910390a1610a7b565b60186000858584818110610a3157610a31612981565b9050602002016020810190610a469190612380565b6001600160a01b0316815260208101919091526040016000205415610a7b57601b8054906000610a7583612939565b91905055505b81610a87576000610a89565b435b60186000868685818110610a9f57610a9f612981565b9050602002016020810190610ab49190612380565b6001600160a01b0316815260208101919091526040016000205580610ad881612950565b91505061098f565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b419086815260200190565b60405180910390a35060015b92915050565b3360009081526027602052604090205460ff1680610b7b57506000546001600160a01b031633145b610b975760405162461bcd60e51b815260040161096e906126fe565b602154610100900460ff1615610bac57600080fd5b6021805460ff19169055565b6000610bc66009600a612858565b600554610bd391906127f3565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610c58576001600160a01b0384166000908152600860209081526040808320338452909152902054610c33908390612922565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610c6384848461155a565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610ca1916127db565b600354610bd39190612922565b3360009081526027602052604090205460ff1680610cd657506000546001600160a01b031633145b610cf25760405162461bcd60e51b815260040161096e906126fe565b60215460ff16158015610d055750600a83105b610d0e57600080fd5b60208390556021805460ff1916600117905543601e55610d2e82426127db565b601c55610d3d6009600a612858565b610d479082612903565b601a55505050565b3360009081526027602052604090205460ff1680610d7757506000546001600160a01b031633145b610d935760405162461bcd60e51b815260040161096e906126fe565b6019805461ffff1916610100179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b815260040161096e90612735565b601d546001600160a01b0383811691161415610e375760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b606482015260840161096e565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e8c5760405162461bcd60e51b815260040161096e90612735565b600083118015610e9c5750600082115b8015610ea85750600081115b8015610eb657506127108111155b610ebf57600080fd5b8083600354610ece9190612903565b610ed891906127f3565b6004556003548190610eeb908490612903565b610ef591906127f3565b600555505050565b6000546001600160a01b03163314610f275760405162461bcd60e51b815260040161096e90612735565b60008211610f3457600080fd5b6023805461ffff191685151561ff0019161761010085151502179055600354610f5e9083906127f3565b602455610f6d6009600a612858565b610f779082612903565b60255550505050565b3360009081526027602052604090205460ff1680610fa857506000546001600160a01b031633145b610fc45760405162461bcd60e51b815260040161096e906126fe565b476001600160a01b0382166108fc6064610fde8685612903565b610fe891906127f3565b6040518115909202916000818181858888f19350505050158015610ae0573d6000803e3d6000fd5b6000610b4d82600019610ae6565b3360009081526027602052604090205460ff168061104657506000546001600160a01b031633145b6110625760405162461bcd60e51b815260040161096e906126fe565b6021805461ffff1916610101179055565b6000546001600160a01b0316331461109d5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b60006110d66009600a612858565b600654610bd391906127f3565b6000546001600160a01b0316331461110d5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111625760405162461bcd60e51b815260040161096e90612735565b600f849055600e83905561117684846127db565b6010556011829055601281905561118e6002826127f3565b60105410610ae057600080fd5b6000546001600160a01b031633146111c55760405162461bcd60e51b815260040161096e90612735565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112395760405162461bcd60e51b815260040161096e90612735565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6000610c6633848461155a565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161096e90612735565b6000821180156112ae5750600081115b80156112bc57506127108111155b6112c557600080fd5b80826003546112d49190612903565b6112de91906127f3565b6006555050565b60006112f36009600a612858565b600454610bd391906127f3565b6000546001600160a01b0316331461132a5760405162461bcd60e51b815260040161096e90612735565b603c81111561133857600080fd5b602255565b3360009081526027602052604090205460ff168061136557506000546001600160a01b031633145b6113815760405162461bcd60e51b815260040161096e906126fe565b601954610100900460ff161561139657600080fd5b6019805460ff19168315151790556201518081106113b357600080fd5b80601c60008282546113c591906127db565b90915550505050565b600043602054601e546113e191906127db565b106113f5576001601254610b4d9190612922565b811561140b57601154601054610b4d91906127db565b601154601054610b4d9190612922565b6000546001600160a01b031633146114455760405162461bcd60e51b815260040161096e90612735565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461152f5760405162461bcd60e51b815260040161096e90612735565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60006001600160a01b0384166115b25760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d203078300000000000000000604482015260640161096e565b6001600160a01b0383166116015760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b604482015260640161096e565b600082116116495760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b604482015260640161096e565b6001600160a01b0384166000908152600760205260409020548211156116a85760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161096e565b601e541580156116d057506001600160a01b03831660009081526017602052604090205460ff165b15611757576001600160a01b0384166000908152600d602052604090205460ff1661173d5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e0000000000000000604482015260640161096e565b61175743601e5542601f556023805460ff19166001179055565b60215460ff166117e4576001600160a01b0384166000908152600d602052604090205460ff16806117a057506001600160a01b0383166000908152600d602052604090205460ff165b6117e45760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b604482015260640161096e565b6117ef848484611a5c565b6001600160a01b03831660009081526017602052604090205460ff1615801561182657506001546001600160a01b03848116911614155b15611855576001600160a01b0383166000908152600c602052604090205460ff16611855576118558383611db1565b60195460ff168015611868575042601c54115b15611932576001600160a01b03841660009081526017602052604090205460ff16801561189e5750326001600160a01b03841614155b80156118c057506001600160a01b038316600090815260186020526040902054155b15611932576001600160a01b0383166000908152601860205260408120439055601b8054916118ee83612950565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611929949392919061267e565b60405180910390a15b60265460ff161561194f57611948848484611e36565b9050610c66565b6001600160a01b038416600090815260076020526040902054611973908390612922565b6001600160a01b038516600090815260076020908152604080832093909355600b90529081205460ff16156119a857826119b2565b6119b28484611ef0565b90506119bd84611f6e565b156119d15782156119d1576119d183611fe5565b6001600160a01b0384166000908152600760205260409020546119f59082906127db565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a499085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600c602052604090205460ff1680611aae57506001600160a01b03831660009081526017602052604090205460ff16611aa657600554611aaa565b6004545b8111155b611aee5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161096e565b6001600160a01b0383166000908152600c602052604090205460ff1680611b3a57506022546001600160a01b0383166000908152600a60205260409020544391611b37916127db565b11155b611b865760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e000000604482015260640161096e565b6001600160a01b03831660009081526018602052604090205415611c6957611bb06009600a612858565b601a54611bbd9190612903565b8111158015611be257506001600160a01b038316600090815260096020526040902054155b8015611bef575042601c54115b611c4d5760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b606482015260840161096e565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526017602052604090205460ff1615611ca85750506001600160a01b03166000908152600960205260409020439055565b6001600160a01b0383166000908152600b602052604090205460ff16611dac5760195460ff168015611cdb575042601c54115b8015611cf55750326000908152600a602052604090205443145b8015611d1757506001600160a01b038216600090815260186020526040902054155b15611d78576001600160a01b03821660009081526018602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea91611d6f913291869160019061267e565b60405180910390a15b6001600160a01b0382166000818152600a602052604090204390553214611dac57326000908152600a602052604090204390555b505050565b6006546001600160a01b0383166000908152600760205260409020548190611dda9084906127db565b1115611dac5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161096e565b6001600160a01b038316600090815260076020526040812054611e5a908390612922565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e8a9083906127db565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ede9086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526017602052604081205460125460ff909116908290611f1d836113ce565b611f279086612903565b611f3191906127f3565b30600090815260076020526040812080549293508392909190611f559084906127db565b90915550611f6590508185612922565b95945050505050565b3360009081526017602052604081205460ff16158015611f91575060265460ff16155b8015611f9f575060235460ff165b8015611fc357506001600160a01b03821660009081526017602052604090205460ff165b8015610b4d575060255430600090815260076020526040902054101592915050565b6026805460ff19166001179055602454600090821061200657602454612008565b815b306000908152600760205260409020549091508111156120345750306000908152600760205260409020545b60006010546002600f54846120499190612903565b61205391906127f3565b61205d91906127f3565b90506120698183612922565b604080516002808252606082018352929450600092909160208301908036833701905050905030816000815181106120a3576120a3612981565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120f757600080fd5b505afa15801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f919061239d565b8160018151811061214257612142612981565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b81524792919091169063791ac9479061218c90879060009087903090429060040161276a565b600060405180830381600087803b1580156121a657600080fd5b505af11580156121ba573d6000803e3d6000fd5b50505050600081476121cc9190612922565b905060006002600f546121df91906127f3565b6010546121ec9190612922565b90506000816002600f54856122019190612903565b61220b91906127f3565b61221591906127f3565b905060006122238285612922565b90508015612267576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612265573d6000803e3d6000fd5b505b86156123155760155460135460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b1580156122d857600080fd5b505af11580156122ec573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612311919061261e565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506026805460ff1916905550505050505050565b8035801515811461237b57600080fd5b919050565b60006020828403121561239257600080fd5b8135610c6681612997565b6000602082840312156123af57600080fd5b8151610c6681612997565b600080604083850312156123cd57600080fd5b82356123d881612997565b915060208301356123e881612997565b809150509250929050565b60008060006060848603121561240857600080fd5b833561241381612997565b9250602084013561242381612997565b929592945050506040919091013590565b6000806040838503121561244757600080fd5b823561245281612997565b91506124606020840161236b565b90509250929050565b6000806040838503121561247c57600080fd5b823561248781612997565b946020939093013593505050565b6000806000604084860312156124aa57600080fd5b833567ffffffffffffffff808211156124c257600080fd5b818601915086601f8301126124d657600080fd5b8135818111156124e557600080fd5b8760208260051b85010111156124fa57600080fd5b602092830195509350612510918601905061236b565b90509250925092565b60006020828403121561252b57600080fd5b610c668261236b565b6000806000806080858703121561254a57600080fd5b6125538561236b565b93506125616020860161236b565b93969395505050506040820135916060013590565b6000806040838503121561258957600080fd5b6124878361236b565b6000602082840312156125a457600080fd5b5035919050565b600080604083850312156125be57600080fd5b8235915060208301356123e881612997565b600080604083850312156125e357600080fd5b50508035926020909101359150565b60008060006060848603121561260757600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561263357600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561266257600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600060208083528351808285015260005b818110156126d6578581018301518582016040015282016126ba565b818111156126e8576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127ba5784516001600160a01b031683529383019391830191600101612795565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127ee576127ee61296b565b500190565b60008261281057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156128505781600019048211156128365761283661296b565b8085161561284357918102915b93841c939080029061281a565b509250929050565b6000610c6660ff84168360008261287157506001610b4d565b8161287e57506000610b4d565b8160018114612894576002811461289e576128ba565b6001915050610b4d565b60ff8411156128af576128af61296b565b50506001821b610b4d565b5060208310610133831016604e8410600b84101617156128dd575081810a610b4d565b6128e78383612815565b80600019048211156128fb576128fb61296b565b029392505050565b600081600019048311821515161561291d5761291d61296b565b500290565b6000828210156129345761293461296b565b500390565b6000816129485761294861296b565b506000190190565b60006000198214156129645761296461296b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146129ac57600080fd5b5056fea26469706673582212202cf74dc7b0ba586d40274814a930a4382cd8f66d05c2e8b2c6a357cc86a03e5564736f6c63430008070033
Deployed Bytecode Sourcemap
5178:15852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7165:50;;;;;;;;;;;;;;;;;;;14261:25:1;;;14249:2;14234:18;7165:50:0;;;;;;;;8670:71;;;;;;;;;;-1:-1:-1;8733:5:0;;;;;;;;;;;-1:-1:-1;;;8733:5:0;;;;8670:71;;;;8733:5;8670:71;:::i;11152:617::-;;;;;;;;;;-1:-1:-1;11152:617:0;;;;;:::i;:::-;;:::i;:::-;;9411:216;;;;;;;;;;-1:-1:-1;9411:216:0;;;;;:::i;:::-;;:::i;:::-;;;8107:14:1;;8100:22;8082:41;;8070:2;8055:18;9411:216:0;7942:187:1;10516:115:0;;;;;;;;;;;;;:::i;8418:88::-;;;;;;;;;;-1:-1:-1;8491:12:0;;8418:88;;8935:107;;;;;;;;;;;;;:::i;11941:341::-;;;;;;;;;;-1:-1:-1;11941:341:0;;;;;:::i;:::-;;:::i;20783:138::-;;;;;;;;;;;;;:::i;8512:71::-;;;;;;;;;;-1:-1:-1;8512:71:0;;5490:1;15748:36:1;;15736:2;15721:18;8512:71:0;15606:184:1;10132:372:0;;;;;;;;;;-1:-1:-1;10132:372:0;;;;;:::i;:::-;;:::i;11013:127::-;;;;;;;;;;;;;:::i;6641:45::-;;;;;;;;;;-1:-1:-1;6641:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;18603:184;;;;;;;;;;-1:-1:-1;18603:184:0;;;;;:::i;:::-;;:::i;18931:339::-;;;;;;;;;;-1:-1:-1;18931:339:0;;;;;:::i;:::-;;:::i;20415:360::-;;;;;;;;;;-1:-1:-1;20415:360:0;;;;;:::i;:::-;;:::i;9906:214::-;;;;;;;;;;-1:-1:-1;9906:214:0;;;;;:::i;:::-;;:::i;9635:122::-;;;;;;;;;;-1:-1:-1;9635:122:0;;;;;:::i;:::-;;:::i;6926:27::-;;;;;;;;;;;;;;;;10643:111;;;;;;;;;;;;;:::i;9769:119::-;;;;;;;;;;-1:-1:-1;9769:119:0;;;;;:::i;:::-;;:::i;7057:28::-;;;;;;;;;;;;;;;;9048:105;;;;;;;;;;;;;:::i;19509:119::-;;;;;;;;;;-1:-1:-1;19509:119:0;;;;;:::i;:::-;;:::i;7094:31::-;;;;;;;;;;-1:-1:-1;7094:31:0;;;;;;;;5849:44;;;;;;;;;;-1:-1:-1;5849:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;19771:386;;;;;;;;;;-1:-1:-1;19771:386:0;;;;;:::i;:::-;;:::i;9159:105::-;;;;;;;;;;-1:-1:-1;9159:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9243:18:0;9225:7;9243:18;;;:9;:18;;;;;;;9159:105;4773:148;;;;;;;;;;;;;:::i;8747:71::-;;;;;;;;;;-1:-1:-1;8790:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;8747:71;;;-1:-1:-1;;;;;5647:32:1;;;5629:51;;5617:2;5602:18;8747:71:0;5483:203:1;4563:79:0;;;;;;;;;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;4563:79;;6797:30;;;;;;;;;;;;;;;;20165:242;;;;;;;;;;-1:-1:-1;20165:242:0;;;;;:::i;:::-;;:::i;6866:19::-;;;;;;;;;;-1:-1:-1;6866:19:0;;;;-1:-1:-1;;;;;6866:19:0;;;11777:156;;;;;;;;;;-1:-1:-1;11777:156:0;;;;;:::i;:::-;;:::i;19282:219::-;;;;;;;;;;-1:-1:-1;19282:219:0;;;;;:::i;:::-;;:::i;8824:105::-;;;;;;;;;;;;;:::i;6894:25::-;;;;;;;;;;;;;;;;6280:97;;;;;;;;;;-1:-1:-1;6280:97:0;;;;-1:-1:-1;;;;;6280:97:0;;;5900:43;;;;;;;;;;-1:-1:-1;5900:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;18795:128;;;;;;;;;;-1:-1:-1;18795:128:0;;;;;:::i;:::-;;:::i;10766:235::-;;;;;;;;;;-1:-1:-1;10766:235:0;;;;;:::i;:::-;;:::i;9270:133::-;;;;;;;;;;-1:-1:-1;9270:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9372:19:0;;;9354:7;9372:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9270:133;6384:97;;;;;;;;;;-1:-1:-1;6384:97:0;;;;-1:-1:-1;;;;;6384:97:0;;;16188:243;;;;;;;;;;-1:-1:-1;16188:243:0;;;;;:::i;:::-;;:::i;4927:244::-;;;;;;;;;;-1:-1:-1;4927:244:0;;;;;:::i;:::-;;:::i;19636:127::-;;;;;;;;;;-1:-1:-1;19636:127:0;;;;;:::i;:::-;;:::i;7222:49::-;;;;;;;;;;;;;;;;6490:24;;;;;;;;;;-1:-1:-1;6490:24:0;;;;-1:-1:-1;;;;;6490:24:0;;;6960:25;;;;;;;;;;;;;;;;11152:617;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;;;;;;;;;11252:8:::1;11248:67;;;11285:17;::::0;::::1;;11277:26;;;::::0;::::1;;11340:6;11335:427;11352:19:::0;;::::1;11335:427;;;11411:8;11407:277;;;11440:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;11481:56;11497:9;11508:8;;11517:1;11508:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11521:12;11535:1;11481:56;;;;;;;;;:::i;:::-;;;;;;;;11407:277;;;11595:9;:22;11605:8;;11614:1;11605:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11595:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11595:22:0;;:27;11591:71:::1;;11645:15;:17:::0;;;:15:::1;:17;::::0;::::1;:::i;:::-;;;;;;11591:71;11723:8;:27;;11749:1;11723:27;;;11734:12;11723:27;11698:9;:22;11708:8;;11717:1;11708:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11698:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11698:22:0;:52;11373:3;::::1;::::0;::::1;:::i;:::-;;;;11335:427;;;;11152:617:::0;;;:::o;9411:216::-;9515:10;9486:4;9503:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9503:32:0;;;;;;;;;;:41;;;9560:37;9486:4;;9503:32;;9560:37;;;;9538:6;14261:25:1;;14249:2;14234:18;;14115:177;9560:37:0;;;;;;;;-1:-1:-1;9615:4:0;9411:216;;;;;:::o;10516:115::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;10578:13:::1;::::0;::::1;::::0;::::1;;;10577:14;10569:23;;;::::0;::::1;;10603:12;:20:::0;;-1:-1:-1;;10603:20:0::1;::::0;;10516:115::o;8935:107::-;8985:7;9023:15;5490:1;9023:2;:15;:::i;:::-;9003:16;;:36;;;;:::i;:::-;8996:43;;8935:107;:::o;11941:341::-;-1:-1:-1;;;;;12061:19:0;;12041:4;12061:19;;;:11;:19;;;;;;;;12081:10;12061:31;;;;;;;;-1:-1:-1;;12061:52:0;12058:157;;-1:-1:-1;;;;;12163:19:0;;;;;;:11;:19;;;;;;;;12183:10;12163:31;;;;;;;;:40;;12197:6;;12163:40;:::i;:::-;-1:-1:-1;;;;;12129:19:0;;;;;;:11;:19;;;;;;;;12149:10;12129:31;;;;;;;:74;12058:157;12234:40;12248:6;12256:9;12267:6;12234:13;:40::i;:::-;12227:47;;11941:341;;;;;;:::o;20783:138::-;20907:4;;-1:-1:-1;;;;;20907:4:0;;;20836:7;9243:18;;;:9;:18;;;;;;;20889:4;;;;;9243:18;;;;;20836:7;;20879:33;;;:::i;:::-;20863:12;;:50;;;;:::i;10132:372::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;10249:12:::1;::::0;::::1;;10248:13;:33:::0;::::1;;;;10279:2;10265:11;:16;10248:33;10240:42;;;::::0;::::1;;10293:10;:24:::0;;;10328:12:::1;:19:::0;;-1:-1:-1;;10328:19:0::1;10343:4;10328:19;::::0;;10371:12:::1;10358:10;:25:::0;10412:29:::1;10430:11:::0;10412:15:::1;:29;:::i;:::-;10394:15;:47:::0;10480:15:::1;5490:1;10480:2;:15;:::i;:::-;10470:26;::::0;:6;:26:::1;:::i;:::-;10452:15;:44:::0;-1:-1:-1;;;10132:372:0:o;11013:127::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;11071:18:::1;:25:::0;;-1:-1:-1;;11107:25:0;11071::::1;11107::::0;;;11013:127::o;18603:184::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;18698:4:::1;::::0;-1:-1:-1;;;;;18692:10:0;;::::1;18698:4:::0;::::1;18692:10;;18684:57;;;::::0;-1:-1:-1;;;18684:57:0;;13914:2:1;18684:57:0::1;::::0;::::1;13896:21:1::0;13953:2;13933:18;;;13926:30;13992:34;13972:18;;;13965:62;-1:-1:-1;;;14043:18:1;;;14036:32;14085:19;;18684:57:0::1;13712:398:1::0;18684:57:0::1;-1:-1:-1::0;;;;;18752:18:0;;;::::1;;::::0;;;:14:::1;:18;::::0;;;;:27;;-1:-1:-1;;18752:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18603:184::o;18931:339::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;19066:1:::1;19051:12;:16;:37;;;;;19087:1;19071:13;:17;19051:37;:52;;;;;19102:1;19092:7;:11;19051:52;:72;;;;;19118:5;19107:7;:16;;19051:72;19043:81;;;::::0;::::1;;19185:7;19169:12;19154;;:27;;;;:::i;:::-;19153:39;;;;:::i;:::-;19135:15;:57:::0;19223:12:::1;::::0;19255:7;;19223:28:::1;::::0;19238:13;;19223:28:::1;:::i;:::-;19222:40;;;;:::i;:::-;19203:16;:59:::0;-1:-1:-1;;;18931:339:0:o;20415:360::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;20578:1:::1;20563:12;:16;20555:25;;;::::0;::::1;;20591:11;:22:::0;;-1:-1:-1;;20624:32:0;20591:22;::::1;;-1:-1:-1::0;;20624:32:0;;20591:22:::1;20624:32:::0;::::1;;;;::::0;;20683:12:::1;::::0;:27:::1;::::0;20698:12;;20683:27:::1;:::i;:::-;20667:13;:43:::0;20751:15:::1;5490:1;20751:2;:15;:::i;:::-;20735:32;::::0;:12;:32:::1;:::i;:::-;20721:11;:46:::0;-1:-1:-1;;;;20415:360:0:o;9906:214::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;10021:21:::1;-1:-1:-1::0;;;;;10053:21:0;::::1;:59;10108:3;10076:28;10088:16:::0;10021:21;10076:28:::1;:::i;:::-;10075:36;;;;:::i;:::-;10053:59;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;9635:122:::0;9690:4;9714:35;9722:7;-1:-1:-1;;9714:7:0;:35::i;10643:111::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;10696:13:::1;:20:::0;;-1:-1:-1;;10727:19:0;;;;;10643:111::o;9769:119::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9852:17:0;;;::::1;;::::0;;;:10:::1;:17;::::0;;;;:28;;-1:-1:-1;;9852:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9769:119::o;9048:105::-;9098:7;9134:15;5490:1;9134:2;:15;:::i;:::-;9116:14;;:34;;;;:::i;19509:119::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19592:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19592:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19509:119::o;19771:386::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;19908:12:::1;:28:::0;;;19947:12:::1;:28:::0;;;19997:29:::1;19923:13:::0;19962;19997:29:::1;:::i;:::-;19986:8;:40:::0;20037:8:::1;:20:::0;;;20068:14:::1;:32:::0;;;20130:18:::1;20147:1;20085:15:::0;20130:18:::1;:::i;:::-;20119:8;;:29;20111:38;;;::::0;::::1;4773:148:::0;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;4880:1:::1;4864:6:::0;;4843:40:::1;::::0;-1:-1:-1;;;;;4864:6:0;;::::1;::::0;4843:40:::1;::::0;4880:1;;4843:40:::1;4911:1;4894:19:::0;;-1:-1:-1;;;;;;4894:19:0::1;::::0;;4773:148::o;20165:242::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;20282:20:::1;:53:::0;;-1:-1:-1;;;;;20282:53:0;;::::1;-1:-1:-1::0;;;;;;20282:53:0;;::::1;;::::0;;;20346:20:::1;:53:::0;;;;;::::1;::::0;::::1;;::::0;;20165:242::o;11777:156::-;11857:4;11881:44;11895:10;11907:9;11918:6;11881:13;:44::i;19282:219::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;19392:1:::1;19380:9;:13;:28;;;;;19407:1;19397:7;:11;19380:28;:48;;;;;19423:5;19412:7;:16;;19380:48;19372:57;;;::::0;::::1;;19486:7;19473:9;19458:12;;:24;;;;:::i;:::-;19457:36;;;;:::i;:::-;19440:14;:53:::0;-1:-1:-1;;19282:219:0:o;8824:105::-;8873:7;8910:15;5490:1;8910:2;:15;:::i;:::-;8891;;:35;;;;:::i;18795:128::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;18877:10:::1;18869:4;:18;;18861:27;;;::::0;::::1;;18899:9;:16:::0;18795:128::o;10766:235::-;2678:10;7453:24;;;;:10;:24;;;;;;;;;:49;;-1:-1:-1;4601:7:0;4628:6;-1:-1:-1;;;;;4628:6:0;7481:10;:21;7453:49;7445:89;;;;-1:-1:-1;;;7445:89:0;;;;;;;:::i;:::-;10860:18:::1;::::0;::::1;::::0;::::1;;;10859:19;10851:28;;;::::0;::::1;;10890:17;:28:::0;;-1:-1:-1;;10890:28:0::1;::::0;::::1;;;::::0;;10948:6:::1;10937:17:::0;::::1;10929:26;;;::::0;::::1;;10985:8;10966:15;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;10766:235:0:o;16188:243::-;16244:7;16294:12;16280:10;;16267;;:23;;;;:::i;:::-;:39;16264:73;;16333:1;16316:14;;:18;;;;:::i;16264:73::-;16351:7;16347:39;;;16378:8;;16367;;:19;;;;:::i;16347:39::-;16415:8;;16404;;:19;;;;:::i;4927:244::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5016:22:0;::::1;5008:73;;;::::0;-1:-1:-1;;;5008:73:0;;10619:2:1;5008:73:0::1;::::0;::::1;10601:21:1::0;10658:2;10638:18;;;10631:30;10697:34;10677:18;;;10670:62;-1:-1:-1;;;10748:18:1;;;10741:36;10794:19;;5008:73:0::1;10417:402:1::0;5008:73:0::1;5118:6;::::0;;5097:38:::1;::::0;-1:-1:-1;;;;;5097:38:0;;::::1;::::0;5118:6;::::1;::::0;5097:38:::1;::::0;::::1;5146:6;:17:::0;;-1:-1:-1;;;;;;5146:17:0::1;-1:-1:-1::0;;;;;5146:17:0;;;::::1;::::0;;;::::1;::::0;;4927:244::o;19636:127::-;4688:6;;-1:-1:-1;;;;;4688:6:0;2678:10;4688:22;4680:67;;;;-1:-1:-1;;;4680:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19723:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19723:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19636:127::o;12290:1734::-;12382:4;-1:-1:-1;;;;;12407:20:0;;12399:57;;;;-1:-1:-1;;;12399:57:0;;10266:2:1;12399:57:0;;;10248:21:1;10305:2;10285:18;;;10278:30;10344:26;10324:18;;;10317:54;10388:18;;12399:57:0;10064:348:1;12399:57:0;-1:-1:-1;;;;;12475:23:0;;12467:58;;;;-1:-1:-1;;;12467:58:0;;11026:2:1;12467:58:0;;;11008:21:1;11065:2;11045:18;;;11038:30;-1:-1:-1;;;11084:18:1;;;11077:52;11146:18;;12467:58:0;10824:346:1;12467:58:0;12553:1;12544:6;:10;12536:44;;;;-1:-1:-1;;;12536:44:0;;9164:2:1;12536:44:0;;;9146:21:1;9203:2;9183:18;;;9176:30;-1:-1:-1;;;9222:18:1;;;9215:51;9283:18;;12536:44:0;8962:345:1;12536:44:0;-1:-1:-1;;;;;12599:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;12599:27:0;12591:60;;;;-1:-1:-1;;;12591:60:0;;11377:2:1;12591:60:0;;;11359:21:1;11416:2;11396:18;;;11389:30;-1:-1:-1;;;11435:18:1;;;11428:50;11495:18;;12591:60:0;11175:344:1;12591:60:0;14103:10;;:15;;;12665:40;;-1:-1:-1;;;;;;12680:25:0;;;;;;:14;:25;;;;;;;;12665:40;12662:120;;;-1:-1:-1;;;;;12716:24:0;;;;;;:16;:24;;;;;;;;12708:61;;;;-1:-1:-1;;;12708:61:0;;12440:2:1;12708:61:0;;;12422:21:1;12479:2;12459:18;;;12452:30;12518:26;12498:18;;;12491:54;12562:18;;12708:61:0;12238:348:1;12708:61:0;12771:8;14185:12;14172:10;:25;14223:15;14208:12;:30;14249:11;:18;;-1:-1:-1;;14249:18:0;14263:4;14249:18;;;14134:141;12771:8;12796:12;;;;12792:111;;-1:-1:-1;;;;;12819:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;12847:27:0;;;;;;:16;:27;;;;;;;;12819:55;12811:89;;;;-1:-1:-1;;;12811:89:0;;13564:2:1;12811:89:0;;;13546:21:1;13603:2;13583:18;;;13576:30;-1:-1:-1;;;13622:18:1;;;13615:51;13683:18;;12811:89:0;13362:345:1;12811:89:0;12915:39;12928:6;12936:9;12947:6;12915:12;:39::i;:::-;-1:-1:-1;;;;;12980:25:0;;;;;;:14;:25;;;;;;;;12979:26;:47;;;;-1:-1:-1;13022:4:0;;-1:-1:-1;;;;;13009:17:0;;;13022:4;;13009:17;;12979:47;12975:182;;;-1:-1:-1;;;;;13048:26:0;;;;;;:15;:26;;;;;;;;13043:103;;13095:35;13112:9;13123:6;13095:16;:35::i;:::-;13180:17;;;;:54;;;;;13219:15;13201;;:33;13180:54;13177:351;;;-1:-1:-1;;;;;13254:22:0;;;;;;:14;:22;;;;;;;;:48;;;;-1:-1:-1;13280:9:0;-1:-1:-1;;;;;13280:22:0;;;;13254:48;:77;;;;-1:-1:-1;;;;;;13306:20:0;;;;;;:9;:20;;;;;;:25;13254:77;13251:266;;;-1:-1:-1;;;;;13352:20:0;;;;;;:9;:20;;;;;13375:12;13352:35;;13406:15;:17;;;;;;:::i;:::-;;;;;;13447:54;13463:9;13474;13485:12;13499:1;13447:54;;;;;;;;;:::i;:::-;;;;;;;;13251:266;13551:6;;;;13548:63;;;13567:41;13582:6;13590:9;13601:6;13567:14;:41::i;:::-;13560:48;;;;13548:63;-1:-1:-1;;;;;13643:17:0;;;;;;:9;:17;;;;;;:26;;13663:6;;13643:26;:::i;:::-;-1:-1:-1;;;;;13623:17:0;;;;;;:9;:17;;;;;;;;:46;;;;16153:11;:19;;;;;;;;16152:20;13707:59;;13760:6;13707:59;;;13731:26;13739:9;13750:6;13731:7;:26::i;:::-;13682:84;;13790:25;13805:9;13790:14;:25::i;:::-;13787:66;;;13822:10;;13818:32;;13834:16;13843:6;13834:8;:16::i;:::-;-1:-1:-1;;;;;13896:20:0;;;;;;:9;:20;;;;;;:37;;13919:14;;13896:37;:::i;:::-;-1:-1:-1;;;;;13873:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13951:43;;;;;;;;;;13979:14;14261:25:1;;14249:2;14234:18;;14115:177;13951:43:0;;;;;;;;-1:-1:-1;14012:4:0;;12290:1734;-1:-1:-1;;;;12290:1734:0:o;14838:1220::-;-1:-1:-1;;;;;14939:23:0;;;;;;:15;:23;;;;;;;;;:98;;-1:-1:-1;;;;;;14977:22:0;;;;;;:14;:22;;;;;;;;:59;;15020:16;;14977:59;;;15002:15;;14977:59;14966:6;:71;;14939:98;14931:128;;;;-1:-1:-1;;;14931:128:0;;9920:2:1;14931:128:0;;;9902:21:1;9959:2;9939:18;;;9932:30;-1:-1:-1;;;9978:18:1;;;9971:47;10035:18;;14931:128:0;9718:341:1;14931:128:0;-1:-1:-1;;;;;15078:23:0;;;;;;:15;:23;;;;;;;;;:73;;-1:-1:-1;15126:9:0;;-1:-1:-1;;;;;15105:18:0;;;;;;:7;:18;;;;;;15139:12;;15105:30;;;:::i;:::-;:46;;15078:73;15070:115;;;;-1:-1:-1;;;15070:115:0;;12082:2:1;15070:115:0;;;12064:21:1;12121:2;12101:18;;;12094:30;12160:31;12140:18;;;12133:59;12209:18;;15070:115:0;11880:353:1;15070:115:0;-1:-1:-1;;;;;15210:17:0;;;;;;:9;:17;;;;;;:22;15206:261;;15285:15;5490:1;15285:2;:15;:::i;:::-;15266;;:35;;;;:::i;:::-;15256:6;:45;;:70;;;;-1:-1:-1;;;;;;15305:16:0;;;;;;:8;:16;;;;;;:21;15256:70;:107;;;;;15348:15;15330;;:33;15256:107;15248:161;;;;-1:-1:-1;;;15248:161:0;;12793:2:1;15248:161:0;;;12775:21:1;12832:2;12812:18;;;12805:30;12871:34;12851:18;;;12844:62;-1:-1:-1;;;12922:18:1;;;12915:39;12971:19;;15248:161:0;12591:405:1;15248:161:0;-1:-1:-1;;;;;15424:16:0;;;;;;:8;:16;;;;;15443:12;15424:31;;15206:261;-1:-1:-1;;;;;15491:25:0;;;;;;:14;:25;;;;;;;;15487:564;;;-1:-1:-1;;;;;;;15533:16:0;;;;;:8;:16;;;;;15552:12;15533:31;;14838:1220::o;15487:564::-;-1:-1:-1;;;;;16153:19:0;;16128:4;16153:19;;;:11;:19;;;;;;;;15582:469;;15628:17;;;;:54;;;;;15667:15;15649;;:33;15628:54;:92;;;;-1:-1:-1;15694:9:0;15686:18;;;;:7;:18;;;;;;15708:12;15686:34;15628:92;:121;;;;-1:-1:-1;;;;;;15724:20:0;;;;;;:9;:20;;;;;;:25;15628:121;15624:275;;;-1:-1:-1;;;;;15770:20:0;;;;;;:9;:20;;;;;;;15793:12;15770:35;;;;15829:54;;;;;;15845:9;;15780;;15881:1;;15829:54;:::i;:::-;;;;;;;;15624:275;-1:-1:-1;;;;;15913:18:0;;;;;;:7;:18;;;;;15934:12;15913:33;;15965:9;:22;15961:78;;16014:9;16006:18;;;;:7;:18;;;;;16027:12;16006:33;;15961:78;14838:1220;;;:::o;14595:235::-;14703:14;;-1:-1:-1;;;;;14736:20:0;;14681:19;14736:20;;;:9;:20;;;;;;14703:14;;14736:29;;14759:6;;14736:29;:::i;:::-;:44;;14728:94;;;;-1:-1:-1;;;14728:94:0;;9514:2:1;14728:94:0;;;9496:21:1;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;-1:-1:-1;;;9643:18:1;;;9636:35;9688:19;;14728:94:0;9312:401:1;14283:300:0;-1:-1:-1;;;;;14413:17:0;;14376:4;14413:17;;;:9;:17;;;;;;:26;;14433:6;;14413:26;:::i;:::-;-1:-1:-1;;;;;14393:17:0;;;;;;;:9;:17;;;;;;:46;;;;14473:20;;;;;;;:29;;14496:6;;14473:29;:::i;:::-;-1:-1:-1;;;;;14450:20:0;;;;;;;:9;:20;;;;;;;:52;;;;14518:35;;;;;;;;;;14546:6;14261:25:1;;14249:2;14234:18;;14115:177;14518:35:0;;;;;;;;-1:-1:-1;14571:4:0;14283:300;;;;;:::o;16439:317::-;-1:-1:-1;;;;;16544:25:0;;16509:7;16544:25;;;:14;:25;;;;;;16634:14;;16544:25;;;;;16509:7;;16610:20;16544:25;16610:11;:20::i;:::-;16601:29;;:6;:29;:::i;:::-;16600:48;;;;:::i;:::-;16687:4;16669:24;;;;:9;:24;;;;;:37;;16580:68;;-1:-1:-1;16580:68:0;;16669:24;;;:37;;16580:68;;16669:37;:::i;:::-;;;;-1:-1:-1;16730:18:0;;-1:-1:-1;16739:9:0;16730:6;:18;:::i;:::-;16723:25;16439:317;-1:-1:-1;;;;;16439:317:0:o;16764:259::-;16870:10;16830:4;16855:26;;;:14;:26;;;;;;;;16854:27;:47;;;;-1:-1:-1;16895:6:0;;;;16894:7;16854:47;:71;;;;-1:-1:-1;16914:11:0;;;;16854:71;:109;;;;-1:-1:-1;;;;;;16938:25:0;;;;;;:14;:25;;;;;;;;16854:109;:161;;;;-1:-1:-1;17004:11:0;;16994:4;16976:24;;;;:9;:24;;;;;;:39;;16847:168;16764:259;-1:-1:-1;;16764:259:0:o;17031:1560::-;7318:6;:13;;-1:-1:-1;;7318:13:0;7327:4;7318:13;;;17126::::1;::::0;7318:6;;17117:22;::::1;:47;;17151:13;;17117:47;;;17142:6;17117:47;17197:4;17179:24;::::0;;;:9:::1;:24;::::0;;;;;17094:70;;-1:-1:-1;17179:39:0;-1:-1:-1;17175:84:0::1;;;-1:-1:-1::0;17253:4:0::1;17235:24;::::0;;;:9:::1;:24;::::0;;;;;17175:84:::1;17280:23;17342:8;;17337:1;17322:12;;17307;:27;;;;:::i;:::-;:31;;;;:::i;:::-;17306:44;;;;:::i;:::-;17280:70:::0;-1:-1:-1;17361:31:0::1;17280:70:::0;17361:31;::::1;:::i;:::-;17429:16;::::0;;17443:1:::1;17429:16:::0;;;;;::::1;::::0;;17361:31;;-1:-1:-1;17405:21:0::1;::::0;17429:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17429:16:0::1;17405:40;;17474:4;17456;17461:1;17456:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17456:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17500:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;17500:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;17456:7;;17500:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17490:4;17495:1;17490:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17490:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17592:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;17592:188:0;;17558:21:::1;::::0;17592:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;17664:12;;17534:21:::1;::::0;17707:4;;17734::::1;::::0;17754:15:::1;::::0;17592:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17793:17;17837:13;17813:21;:37;;;;:::i;:::-;17793:57;;17861:19;17910:1;17895:12;;:16;;;;:::i;:::-;17883:8;;:29;;;;:::i;:::-;17861:51;;17925:26;17987:11;17982:1;17967:12;;17955:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;17954:44;;;;:::i;:::-;17925:73:::0;-1:-1:-1;18009:26:0::1;18038:30;17925:73:::0;18038:9;:30:::1;:::i;:::-;18009:59:::0;-1:-1:-1;18093:22:0;;18089:90:::1;;18130:20;::::0;:49:::1;::::0;-1:-1:-1;;;;;18130:20:0;;::::1;::::0;:49;::::1;;;::::0;18160:18;;18130:20:::1;:49:::0;:20;:49;18160:18;18130:20;:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18089:90;18203:19:::0;;18200:293:::1;;18238:6;::::0;18412:20:::1;::::0;18238:243:::1;::::0;-1:-1:-1;;;18238:243:0;;18314:4:::1;18238:243;::::0;::::1;7671:34:1::0;7721:18;;;7714:34;;;18238:6:0::1;7764:18:1::0;;;7757:34;;;7807:18;;;7800:34;-1:-1:-1;;;;;18412:20:0;;::::1;7850:19:1::0;;;7843:44;18451:15:0::1;7903:19:1::0;;;7896:35;18238:6:0;::::1;::::0;:22:::1;::::0;18268:18;;7605:19:1;;18238:243:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18200:293;18510:73;::::0;;15484:25:1;;;15540:2;15525:18;;15518:34;;;15568:18;;;15561:34;;;18510:73:0::1;::::0;15472:2:1;15457:18;18510:73:0::1;;;;;;;-1:-1:-1::0;;7336:6:0;:14;;-1:-1:-1;;7336:14:0;;;-1:-1:-1;;;;;;;17031:1560:0:o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:52;;;1683:1;1680;1673:12;1635:52;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1541:315;;;;;:::o;1861:::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:52;;;2006:1;2003;1996:12;1958:52;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1861:315:1:o;2181:689::-;2273:6;2281;2289;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2398:9;2385:23;2427:18;2468:2;2460:6;2457:14;2454:34;;;2484:1;2481;2474:12;2454:34;2522:6;2511:9;2507:22;2497:32;;2567:7;2560:4;2556:2;2552:13;2548:27;2538:55;;2589:1;2586;2579:12;2538:55;2629:2;2616:16;2655:2;2647:6;2644:14;2641:34;;;2671:1;2668;2661:12;2641:34;2726:7;2719:4;2709:6;2706:1;2702:14;2698:2;2694:23;2690:34;2687:47;2684:67;;;2747:1;2744;2737:12;2684:67;2778:4;2770:13;;;;-1:-1:-1;2802:6:1;-1:-1:-1;2827:37:1;;2843:20;;;-1:-1:-1;2827:37:1;:::i;:::-;2817:47;;2181:689;;;;;:::o;2875:180::-;2931:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:52;;;3000:1;2997;2990:12;2952:52;3023:26;3039:9;3023:26;:::i;3060:385::-;3140:6;3148;3156;3164;3217:3;3205:9;3196:7;3192:23;3188:33;3185:53;;;3234:1;3231;3224:12;3185:53;3257:26;3273:9;3257:26;:::i;:::-;3247:36;;3302:35;3333:2;3322:9;3318:18;3302:35;:::i;:::-;3060:385;;3292:45;;-1:-1:-1;;;;3384:2:1;3369:18;;3356:32;;3435:2;3420:18;3407:32;;3060:385::o;3450:248::-;3515:6;3523;3576:2;3564:9;3555:7;3551:23;3547:32;3544:52;;;3592:1;3589;3582:12;3544:52;3615:26;3631:9;3615:26;:::i;3703:180::-;3762:6;3815:2;3803:9;3794:7;3790:23;3786:32;3783:52;;;3831:1;3828;3821:12;3783:52;-1:-1:-1;3854:23:1;;3703:180;-1:-1:-1;3703:180:1:o;3888:315::-;3956:6;3964;4017:2;4005:9;3996:7;3992:23;3988:32;3985:52;;;4033:1;4030;4023:12;3985:52;4069:9;4056:23;4046:33;;4129:2;4118:9;4114:18;4101:32;4142:31;4167:5;4142:31;:::i;4208:248::-;4276:6;4284;4337:2;4325:9;4316:7;4312:23;4308:32;4305:52;;;4353:1;4350;4343:12;4305:52;-1:-1:-1;;4376:23:1;;;4446:2;4431:18;;;4418:32;;-1:-1:-1;4208:248:1:o;4461:316::-;4538:6;4546;4554;4607:2;4595:9;4586:7;4582:23;4578:32;4575:52;;;4623:1;4620;4613:12;4575:52;-1:-1:-1;;4646:23:1;;;4716:2;4701:18;;4688:32;;-1:-1:-1;4767:2:1;4752:18;;;4739:32;;4461:316;-1:-1:-1;4461:316:1:o;4782:306::-;4870:6;4878;4886;4939:2;4927:9;4918:7;4914:23;4910:32;4907:52;;;4955:1;4952;4945:12;4907:52;4984:9;4978:16;4968:26;;5034:2;5023:9;5019:18;5013:25;5003:35;;5078:2;5067:9;5063:18;5057:25;5047:35;;4782:306;;;;;:::o;5093:385::-;5179:6;5187;5195;5203;5256:3;5244:9;5235:7;5231:23;5227:33;5224:53;;;5273:1;5270;5263:12;5224:53;-1:-1:-1;;5296:23:1;;;5366:2;5351:18;;5338:32;;-1:-1:-1;5417:2:1;5402:18;;5389:32;;5468:2;5453:18;5440:32;;-1:-1:-1;5093:385:1;-1:-1:-1;5093:385:1:o;5915:464::-;-1:-1:-1;;;;;6208:15:1;;;6190:34;;6260:15;;;;6255:2;6240:18;;6233:43;6307:2;6292:18;;6285:34;6367:4;6355:17;;;6350:2;6335:18;;6328:45;6139:3;6124:19;;5915:464::o;8360:597::-;8472:4;8501:2;8530;8519:9;8512:21;8562:6;8556:13;8605:6;8600:2;8589:9;8585:18;8578:34;8630:1;8640:140;8654:6;8651:1;8648:13;8640:140;;;8749:14;;;8745:23;;8739:30;8715:17;;;8734:2;8711:26;8704:66;8669:10;;8640:140;;;8798:6;8795:1;8792:13;8789:91;;;8868:1;8863:2;8854:6;8843:9;8839:22;8835:31;8828:42;8789:91;-1:-1:-1;8941:2:1;8920:15;-1:-1:-1;;8916:29:1;8901:45;;;;8948:2;8897:54;;8360:597;-1:-1:-1;;;8360:597:1:o;11524:351::-;11726:2;11708:21;;;11765:2;11745:18;;;11738:30;11804:29;11799:2;11784:18;;11777:57;11866:2;11851:18;;11524:351::o;13001:356::-;13203:2;13185:21;;;13222:18;;;13215:30;13281:34;13276:2;13261:18;;13254:62;13348:2;13333:18;;13001:356::o;14297:980::-;14559:4;14607:3;14596:9;14592:19;14638:6;14627:9;14620:25;14664:2;14702:6;14697:2;14686:9;14682:18;14675:34;14745:3;14740:2;14729:9;14725:18;14718:31;14769:6;14804;14798:13;14835:6;14827;14820:22;14873:3;14862:9;14858:19;14851:26;;14912:2;14904:6;14900:15;14886:29;;14933:1;14943:195;14957:6;14954:1;14951:13;14943:195;;;15022:13;;-1:-1:-1;;;;;15018:39:1;15006:52;;15113:15;;;;15078:12;;;;15054:1;14972:9;14943:195;;;-1:-1:-1;;;;;;;15194:32:1;;;;15189:2;15174:18;;15167:60;-1:-1:-1;;;15258:3:1;15243:19;15236:35;15155:3;14297:980;-1:-1:-1;;;14297:980:1:o;15795:128::-;15835:3;15866:1;15862:6;15859:1;15856:13;15853:39;;;15872:18;;:::i;:::-;-1:-1:-1;15908:9:1;;15795:128::o;15928:217::-;15968:1;15994;15984:132;;16038:10;16033:3;16029:20;16026:1;16019:31;16073:4;16070:1;16063:15;16101:4;16098:1;16091:15;15984:132;-1:-1:-1;16130:9:1;;15928:217::o;16150:422::-;16239:1;16282:5;16239:1;16296:270;16317:7;16307:8;16304:21;16296:270;;;16376:4;16372:1;16368:6;16364:17;16358:4;16355:27;16352:53;;;16385:18;;:::i;:::-;16435:7;16425:8;16421:22;16418:55;;;16455:16;;;;16418:55;16534:22;;;;16494:15;;;;16296:270;;;16300:3;16150:422;;;;;:::o;16577:140::-;16635:5;16664:47;16705:4;16695:8;16691:19;16685:4;16771:5;16801:8;16791:80;;-1:-1:-1;16842:1:1;16856:5;;16791:80;16890:4;16880:76;;-1:-1:-1;16927:1:1;16941:5;;16880:76;16972:4;16990:1;16985:59;;;;17058:1;17053:130;;;;16965:218;;16985:59;17015:1;17006:10;;17029:5;;;17053:130;17090:3;17080:8;17077:17;17074:43;;;17097:18;;:::i;:::-;-1:-1:-1;;17153:1:1;17139:16;;17168:5;;16965:218;;17267:2;17257:8;17254:16;17248:3;17242:4;17239:13;17235:36;17229:2;17219:8;17216:16;17211:2;17205:4;17202:12;17198:35;17195:77;17192:159;;;-1:-1:-1;17304:19:1;;;17336:5;;17192:159;17383:34;17408:8;17402:4;17383:34;:::i;:::-;17453:6;17449:1;17445:6;17441:19;17432:7;17429:32;17426:58;;;17464:18;;:::i;:::-;17502:20;;16722:806;-1:-1:-1;;;16722:806:1:o;17533:168::-;17573:7;17639:1;17635;17631:6;17627:14;17624:1;17621:21;17616:1;17609:9;17602:17;17598:45;17595:71;;;17646:18;;:::i;:::-;-1:-1:-1;17686:9:1;;17533:168::o;17706:125::-;17746:4;17774:1;17771;17768:8;17765:34;;;17779:18;;:::i;:::-;-1:-1:-1;17816:9:1;;17706:125::o;17836:136::-;17875:3;17903:5;17893:39;;17912:18;;:::i;:::-;-1:-1:-1;;;17948:18:1;;17836:136::o;17977:135::-;18016:3;-1:-1:-1;;18037:17:1;;18034:43;;;18057:18;;:::i;:::-;-1:-1:-1;18104:1:1;18093:13;;17977:135::o;18117:127::-;18178:10;18173:3;18169:20;18166:1;18159:31;18209:4;18206:1;18199:15;18233:4;18230:1;18223:15;18249:127;18310:10;18305:3;18301:20;18298:1;18291:31;18341:4;18338:1;18331:15;18365:4;18362:1;18355:15;18513:131;-1:-1:-1;;;;;18588:31:1;;18578:42;;18568:70;;18634:1;18631;18624:12;18568:70;18513:131;:::o
Swarm Source
ipfs://2cf74dc7b0ba586d40274814a930a4382cd8f66d05c2e8b2c6a357cc86a03e55
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.