ERC-20
Overview
Max Total Supply
9,947,964,326,601,403.494058378 Emoti2.0
Holders
41
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
74,685,671,992,114.367423321 Emoti2.0Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Emoticoin2
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-16 */ // SPDX-License-Identifier: MIT /** Telegram: https://t.me/emoticoin2 Website: https://emoticoin2.online Twitter: https://Twitter.com/emoticoin2 **/ pragma solidity 0.8.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface InterfaceLP { function sync() external; function mint(address to) external returns (uint liquidity); } abstract contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory _tokenName, string memory _tokenSymbol, uint8 _tokenDecimals ) { _name = _tokenName; _symbol = _tokenSymbol; _decimals = _tokenDecimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract Ownable { address private _owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(msg.sender == _owner, "Not owner"); _; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library Address { /** * @dev The ETH balance of the account is not enough to perform the operation. */ error AddressInsufficientBalance(address account); /** * @dev There's no code at `target` (it is not a contract). */ error AddressEmptyCode(address target); /** * @dev A call to an address target failed. The target may have reverted. */ error FailedInnerCall(); /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { if (address(this).balance < amount) { revert AddressInsufficientBalance(address(this)); } (bool success, ) = recipient.call{value: amount}(""); if (!success) { revert FailedInnerCall(); } } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason or custom error, it is bubbled * up by this function (like regular Solidity function calls). However, if * the call reverted with no returned reason, this function reverts with a * {FailedInnerCall} error. * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { if (address(this).balance < value) { revert AddressInsufficientBalance(address(this)); } (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an * unsuccessful call. */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata ) internal view returns (bytes memory) { if (!success) { _revert(returndata); } else { // only check if target is a contract if the call was successful and the return data is empty // otherwise we already know that it was a contract if (returndata.length == 0 && target.code.length == 0) { revert AddressEmptyCode(target); } return returndata; } } /** * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the * revert reason or with a default {FailedInnerCall} error. */ function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) { if (!success) { _revert(returndata); } else { return returndata; } } /** * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}. */ function _revert(bytes memory returndata) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert FailedInnerCall(); } } } interface IWETH { function deposit() external payable; } contract Emoticoin2 is ERC20Detailed, Ownable { uint256 public rebaseFrequency = 2 hours; uint256 public nextRebase; uint256 public finalRebase; bool public autoRebase = true; bool public rebaseStarted = false; uint256 public rebasesThisCycle; uint256 public lastRebaseThisCycle; uint256 public maxTxnAmount; uint256 public maxWallet; address public taxWallet; uint256 public taxPercentBuy; uint256 public taxPercentSell; string public _1_x; string public _2_telegram; string public _3_website; mapping (address => bool) public isWhitelisted; uint8 private constant DECIMALS = 9; uint256 private constant INITIAL_TOKENS_SUPPLY = 18_236_939_125_700_000 * 10**DECIMALS; uint256 private constant TOTAL_PARTS = type(uint256).max - (type(uint256).max % INITIAL_TOKENS_SUPPLY); event Rebase(uint256 indexed time, uint256 totalSupply); event RemovedLimits(); IWETH public immutable weth; IDEXRouter public immutable router; address public immutable pair; bool public limitsInEffect = true; bool public tradingIsLive = false; uint256 private _totalSupply; uint256 private _partsPerToken; uint256 private partsSwapThreshold = (TOTAL_PARTS / 100000 * 25); mapping(address => uint256) private _partBalances; mapping(address => mapping(address => uint256)) private _allowedTokens; mapping(address => bool) private _bots; modifier validRecipient(address to) { require(to != address(0x0)); _; } bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() ERC20Detailed(block.chainid==1 ? "EmotiCoin2.0" : "EmotiCoin2.0", block.chainid==1 ? "Emoti2.0" : "Emoti2.0", DECIMALS) { address dexAddress; if(block.chainid == 1){ dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else if(block.chainid == 5){ dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; } else if (block.chainid == 97){ dexAddress = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; } else if (block.chainid == 56){ dexAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E; } else { revert("Chain not configured"); } _1_x = "x.com/emoticoin2"; // @dev update _2_telegram = "t.me/emoticoin2"; _3_website = "Emoticoin2.online"; taxWallet = msg.sender; // update taxPercentBuy = 5; taxPercentSell = 5; finalRebase = type(uint256).max; nextRebase = type(uint256).max; router = IDEXRouter(dexAddress); _totalSupply = INITIAL_TOKENS_SUPPLY; _partBalances[msg.sender] = TOTAL_PARTS; _partsPerToken = TOTAL_PARTS/(_totalSupply); isWhitelisted[address(this)] = true; isWhitelisted[address(router)] = true; isWhitelisted[msg.sender] = true; maxTxnAmount = _totalSupply * 2 / 100; maxWallet = _totalSupply * 2 / 100; weth = IWETH(router.WETH()); pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH()); _allowedTokens[address(this)][address(router)] = type(uint256).max; _allowedTokens[address(this)][address(this)] = type(uint256).max; _allowedTokens[address(msg.sender)][address(router)] = type(uint256).max; emit Transfer(address(0x0), address(msg.sender), balanceOf(address(this))); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function allowance(address owner_, address spender) external view override returns (uint256){ return _allowedTokens[owner_][spender]; } function balanceOf(address who) public view override returns (uint256) { return _partBalances[who]/(_partsPerToken); } function shouldRebase() public view returns (bool) { return nextRebase <= block.timestamp || (autoRebase && rebaseStarted && rebasesThisCycle < 10 && lastRebaseThisCycle + 60 <= block.timestamp); } function lpSync() internal { InterfaceLP _pair = InterfaceLP(pair); _pair.sync(); } function transfer(address to, uint256 value) external override validRecipient(to) returns (bool){ _transferFrom(msg.sender, to, value); return true; } function removeLimits() external onlyOwner { require(limitsInEffect, "Limits already removed"); limitsInEffect = false; emit RemovedLimits(); } function whitelistWallet(address _address, bool _isWhitelisted) external onlyOwner { isWhitelisted[_address] = _isWhitelisted; } function updateTaxWallet(address _address) external onlyOwner { require(_address != address(0), "Zero Address"); taxWallet = _address; } function updateTaxPercent(uint256 _taxPercentBuy, uint256 _taxPercentSell) external onlyOwner { require(_taxPercentBuy <= taxPercentBuy || _taxPercentBuy <= 10, "Tax too high"); require(_taxPercentSell <= taxPercentSell || _taxPercentSell <= 10, "Tax too high"); taxPercentBuy = _taxPercentBuy; taxPercentSell = _taxPercentSell; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { address pairAddress = pair; uint256 partAmount = amount*(_partsPerToken); require(!_bots[sender] && !_bots[recipient] && !_bots[msg.sender], "Blacklisted"); if(autoRebase && !inSwap && !isWhitelisted[sender] && !isWhitelisted[recipient]){ require(tradingIsLive, "Trading not live"); if(limitsInEffect){ if (sender == pairAddress || recipient == pairAddress){ require(amount <= maxTxnAmount, "Max Tx Exceeded"); } if (recipient != pairAddress){ require(balanceOf(recipient) + amount <= maxWallet, "Max Wallet Exceeded"); } } if(recipient == pairAddress){ if(balanceOf(address(this)) >= partsSwapThreshold/(_partsPerToken)){ try this.swapBack(){} catch {} } if(shouldRebase()){ rebase(); } } uint256 taxPartAmount; if(sender == pairAddress){ taxPartAmount = partAmount * taxPercentBuy / 100; } else if (recipient == pairAddress) { taxPartAmount = partAmount * taxPercentSell / 100; } if(taxPartAmount > 0){ _partBalances[sender] -= taxPartAmount; _partBalances[address(this)] += taxPartAmount; emit Transfer(sender, address(this), taxPartAmount / _partsPerToken); partAmount -= taxPartAmount; } } _partBalances[sender] = _partBalances[sender]-(partAmount); _partBalances[recipient] = _partBalances[recipient]+(partAmount); emit Transfer(sender, recipient, partAmount/(_partsPerToken)); return true; } function transferFrom(address from, address to, uint256 value) external override validRecipient(to) returns (bool) { if (_allowedTokens[from][msg.sender] != type(uint256).max) { require(_allowedTokens[from][msg.sender] >= value,"Insufficient Allowance"); _allowedTokens[from][msg.sender] = _allowedTokens[from][msg.sender]-(value); } _transferFrom(from, to, value); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool){ uint256 oldValue = _allowedTokens[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedTokens[msg.sender][spender] = 0; } else { _allowedTokens[msg.sender][spender] = oldValue-( subtractedValue ); } emit Approval( msg.sender, spender, _allowedTokens[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool){ _allowedTokens[msg.sender][spender] = _allowedTokens[msg.sender][ spender ]+(addedValue); emit Approval( msg.sender, spender, _allowedTokens[msg.sender][spender] ); return true; } function approve(address spender, uint256 value) public override returns (bool){ _allowedTokens[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function rebase() internal returns (uint256) { uint256 time = block.timestamp; uint256 supplyDelta = _totalSupply * 2 / 100; if(nextRebase < block.timestamp){ rebasesThisCycle = 1; nextRebase += rebaseFrequency; } else { rebasesThisCycle += 1; lastRebaseThisCycle = block.timestamp; } if (supplyDelta == 0) { emit Rebase(time, _totalSupply); return _totalSupply; } _totalSupply = _totalSupply-supplyDelta; if (nextRebase >= finalRebase) { nextRebase = type(uint256).max; autoRebase = false; _totalSupply = 777_777_777 * (10 ** decimals()); if(limitsInEffect){ limitsInEffect = false; emit RemovedLimits(); } if(balanceOf(address(this)) > 0){ try this.swapBack(){} catch {} } taxPercentBuy = 0; taxPercentSell = 0; } _partsPerToken = TOTAL_PARTS/(_totalSupply); lpSync(); emit Rebase(time, _totalSupply); return _totalSupply; } function manualRebase() external { require(shouldRebase(), "Not in time"); rebase(); } function enableTrading() external onlyOwner { require(!tradingIsLive, "Trading Live Already"); _bots[0x58dF81bAbDF15276E761808E872a3838CbeCbcf9] = true; tradingIsLive = true; } function startRebaseCycles() external onlyOwner { require(!rebaseStarted, "already started"); nextRebase = block.timestamp + rebaseFrequency; finalRebase = block.timestamp + 14 days; rebaseStarted = true; } function manageBots(address[] memory _accounts, bool _isBot) external onlyOwner { for(uint256 i = 0; i < _accounts.length; i++){ _bots[_accounts[i]] = _isBot; } } function swapBack() public swapping { uint256 contractBalance = balanceOf(address(this)); if(contractBalance == 0){ return; } if(contractBalance > partsSwapThreshold/(_partsPerToken) * 20){ contractBalance = partsSwapThreshold/(_partsPerToken) * 20; } swapTokensForETH(contractBalance); } function swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = address(router.WETH()); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount path, address(taxWallet), block.timestamp ); } function refreshBalances(address[] memory wallets) external { address wallet; for(uint256 i = 0; i < wallets.length; i++){ wallet = wallets[i]; emit Transfer(wallet, wallet, 0); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"Rebase","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_1_x","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_2_telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_3_website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebaseThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"},{"internalType":"bool","name":"_isBot","type":"bool"}],"name":"manageBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebasesThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startRebaseCycles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingIsLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"},{"inputs":[{"internalType":"uint256","name":"_taxPercentBuy","type":"uint256"},{"internalType":"uint256","name":"_taxPercentSell","type":"uint256"}],"name":"updateTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"name":"whitelistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052611c2060035560068054600161ffff199182168117909255601280549091169091179055620186a06200003a6009600a6200083e565b6200004d906640ca664660b5a062000856565b6200005b9060001962000886565b62000069906000196200089d565b620000759190620008b3565b6200008290601962000856565b6015553480156200009257600080fd5b5046600114620000c7576040518060400160405280600c81526020016b0456d6f7469436f696e322e360a41b815250620000ed565b6040518060400160405280600c81526020016b0456d6f7469436f696e322e360a41b8152505b466001146200011d57604051806040016040528060088152602001670456d6f7469322e360c41b8152506200013f565b604051806040016040528060088152602001670456d6f7469322e360c41b8152505b600960006200014f84826200096f565b5060016200015e83826200096f565b506002805460ff929092166001600160a81b0319909216919091176101003302179055506000905046600103620001ab5750737a250d5630b4cf539739df2c5dacb4c659f2488d62000266565b46600503620001d05750737a250d5630b4cf539739df2c5dacb4c659f2488d62000266565b46606103620001f5575073d99d1c33f9fc3444f8101754abc46c52416550d162000266565b466038036200021a57507310ed43c718714eb63d5aa57b78b54704e256024e62000266565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e66696775726564000000000000000000000000604482015260640160405180910390fd5b60408051808201909152601081526f3c1731b7b697b2b6b7ba34b1b7b4b71960811b6020820152600e906200029c90826200096f565b5060408051808201909152600f8082526e3a1736b297b2b6b7ba34b1b7b4b71960891b602083015290620002d190826200096f565b50604080518082019091526011815270456d6f7469636f696e322e6f6e6c696e6560781b60208201526010906200030990826200096f565b50600b80546001600160a01b031916331790556005600c819055600d819055600019908190556004556001600160a01b03811660a0526200034d6009600a6200083e565b62000360906640ca664660b5a062000856565b601355620003716009600a6200083e565b62000384906640ca664660b5a062000856565b620003929060001962000886565b620003a0906000196200089d565b33600090815260166020526040902055601354620003c16009600a6200083e565b620003d4906640ca664660b5a062000856565b620003e29060001962000886565b620003f0906000196200089d565b620003fc9190620008b3565b601455306000908152601160205260408082208054600160ff19918216811790925560a0516001600160a01b03168452828420805482168317905533845291909220805490911690911790556013546064906200045b90600262000856565b620004679190620008b3565b6009556013546064906200047d90600262000856565b620004899190620008b3565b600a8190555060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f6919062000a3b565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000550573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000576919062000a3b565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ec919062000a3b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000660919062000a3b565b6001600160a01b0390811660c05230600081815260176020818152604080842060a051909616808552958252808420600019908190558585528185208190553380865293835281852096855295909152822093909355907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620006e490620006fc565b60405190815260200160405180910390a35062000a66565b6014546001600160a01b03821660009081526016602052604081205490916200072591620008b3565b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007825781600019048211156200076657620007666200072b565b808516156200077457918102915b93841c939080029062000746565b509250929050565b6000826200079b5750600162000725565b81620007aa5750600062000725565b8160018114620007c35760028114620007ce57620007ee565b600191505062000725565b60ff841115620007e257620007e26200072b565b50506001821b62000725565b5060208310610133831016604e8410600b841016171562000813575081810a62000725565b6200081f838362000741565b80600019048211156200083657620008366200072b565b029392505050565b60006200084f60ff8416836200078a565b9392505050565b80820281158282048414176200072557620007256200072b565b634e487b7160e01b600052601260045260246000fd5b60008262000898576200089862000870565b500690565b818103818111156200072557620007256200072b565b600082620008c557620008c562000870565b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620008f557607f821691505b6020821081036200091657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200096a57600081815260208120601f850160051c81016020861015620009455750805b601f850160051c820191505b81811015620009665782815560010162000951565b5050505b505050565b81516001600160401b038111156200098b576200098b620008ca565b620009a3816200099c8454620008e0565b846200091c565b602080601f831160018114620009db5760008415620009c25750858301515b600019600386901b1c1916600185901b17855562000966565b600085815260208120601f198616915b8281101562000a0c57888601518255948401946001909101908401620009eb565b508582101562000a2b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000a4e57600080fd5b81516001600160a01b03811681146200084f57600080fd5b60805160a05160c0516122f862000ab260003960008181610663015281816113a20152611ccf0152600081816107df01528181611b200152611bdb0152600061043a01526122f86000f3fe6080604052600436106102815760003560e01c806389375abf1161014f578063bac154ea116100c1578063dd62ed3e1161007a578063dd62ed3e1461073b578063f0d00f2e14610781578063f2fde38b14610797578063f7d04321146107b7578063f887ea40146107cd578063f8b45b051461080157600080fd5b8063bac154ea146106a5578063bc7e68a3146106ba578063c5377ae5146106d0578063c5c0050e146106f0578063cf46f24c1461070f578063da07e4d71461072557600080fd5b80639367ffcd116101135780639367ffcd146105f157806395d89b41146106065780639833d9ec1461061b578063a457c2d714610631578063a8aa1b3114610651578063a9059cbb1461068557600080fd5b806389375abf1461056957806389d81e9d1461057f5780638a8c523c1461059f5780638da5cb5b146105b45780639079f932146105d757600080fd5b80633fc8cef3116101f35780636ac5eeee116101ac5780636ac5eeee146104d557806370a08231146104ea578063713be5ef1461050a578063715018a61461051f57806374c9f60314610534578063751039fc1461055457600080fd5b80633fc8cef31461042857806342295e1b1461045c5780634a62bb65146104715780636135af2a1461048b57806361a9d1b1146104ab57806363eab10a146104c057600080fd5b80632dc0562d116102455780632dc0562d1461033d5780632e32598314610375578063313ce5671461039757806339509351146103b95780633af32abf146103d95780633b68edea1461040957600080fd5b806303e2c14c1461028d57806306fdde03146102b6578063095ea7b3146102d857806318160ddd1461030857806323b872dd1461031d57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600d5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb610817565b6040516102ad9190611d46565b3480156102e457600080fd5b506102f86102f3366004611db9565b6108a9565b60405190151581526020016102ad565b34801561031457600080fd5b506013546102a3565b34801561032957600080fd5b506102f8610338366004611de5565b610916565b34801561034957600080fd5b50600b5461035d906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561038157600080fd5b50610395610390366004611ede565b610a34565b005b3480156103a357600080fd5b5060025460405160ff90911681526020016102ad565b3480156103c557600080fd5b506102f86103d4366004611db9565b610ac2565b3480156103e557600080fd5b506102f86103f4366004611f1b565b60116020526000908152604090205460ff1681565b34801561041557600080fd5b506012546102f890610100900460ff1681565b34801561043457600080fd5b5061035d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046857600080fd5b50610395610b48565b34801561047d57600080fd5b506012546102f89060ff1681565b34801561049757600080fd5b506103956104a6366004611f4f565b610bf2565b3480156104b757600080fd5b50610395610c4c565b3480156104cc57600080fd5b506102f8610c99565b3480156104e157600080fd5b50610395610ced565b3480156104f657600080fd5b506102a3610505366004611f1b565b610d6c565b34801561051657600080fd5b506102cb610d93565b34801561052b57600080fd5b50610395610e21565b34801561054057600080fd5b5061039561054f366004611f1b565b610e9f565b34801561056057600080fd5b50610395610f35565b34801561057557600080fd5b506102a360035481565b34801561058b57600080fd5b5061039561059a366004611f84565b610fe4565b3480156105ab57600080fd5b506103956110b8565b3480156105c057600080fd5b5060025461010090046001600160a01b031661035d565b3480156105e357600080fd5b506006546102f89060ff1681565b3480156105fd57600080fd5b506102cb611190565b34801561061257600080fd5b506102cb61119d565b34801561062757600080fd5b506102a360085481565b34801561063d57600080fd5b506102f861064c366004611db9565b6111ac565b34801561065d57600080fd5b5061035d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561069157600080fd5b506102f86106a0366004611db9565b611293565b3480156106b157600080fd5b506102cb6112bf565b3480156106c657600080fd5b506102a360045481565b3480156106dc57600080fd5b506103956106eb366004611fa6565b6112cc565b3480156106fc57600080fd5b506006546102f890610100900460ff1681565b34801561071b57600080fd5b506102a360095481565b34801561073157600080fd5b506102a360055481565b34801561074757600080fd5b506102a3610756366004611feb565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561078d57600080fd5b506102a360075481565b3480156107a357600080fd5b506103956107b2366004611f1b565b611362565b3480156107c357600080fd5b506102a3600c5481565b3480156107d957600080fd5b5061035d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561080d57600080fd5b506102a3600a5481565b60606000805461082690612024565b80601f016020809104026020016040519081016040528092919081815260200182805461085290612024565b801561089f5780601f106108745761010080835404028352916020019161089f565b820191906000526020600020905b81548152906001019060200180831161088257829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109049086815260200190565b60405180910390a35060015b92915050565b6000826001600160a01b03811661092c57600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a1d576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109c95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064015b60405180910390fd5b6001600160a01b03851660009081526017602090815260408083203384529091529020546109f8908490612074565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a2885858561139a565b50600195945050505050565b6000805b8251811015610abd57828181518110610a5357610a53612087565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610aa391815260200190565b60405180910390a380610ab58161209d565b915050610a38565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610af19083906120b6565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610904565b60025461010090046001600160a01b03163314610b775760405162461bcd60e51b81526004016109c0906120c9565b600654610100900460ff1615610bc15760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b60448201526064016109c0565b600354610bce90426120b6565b600455610bde42621275006120b6565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c215760405162461bcd60e51b81526004016109c0906120c9565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b610c54610c99565b610c8e5760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b60448201526064016109c0565b610c96611892565b50565b600042600454111580610ce8575060065460ff168015610cc05750600654610100900460ff165b8015610cce5750600a600754105b8015610ce8575042600854603c610ce591906120b6565b11155b905090565b6019805460ff191660011790556000610d0530610d6c565b905080600003610d155750610d60565b601454601554610d259190612102565b610d30906014612116565b811115610d5557601454601554610d479190612102565b610d52906014612116565b90505b610d5e81611ac9565b505b6019805460ff19169055565b6014546001600160a01b038216600090815260166020526040812054909161091091612102565b600e8054610da090612024565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcc90612024565b8015610e195780601f10610dee57610100808354040283529160200191610e19565b820191906000526020600020905b815481529060010190602001808311610dfc57829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e505760405162461bcd60e51b81526004016109c0906120c9565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610ece5760405162461bcd60e51b81526004016109c0906120c9565b6001600160a01b038116610f135760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016109c0565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f645760405162461bcd60e51b81526004016109c0906120c9565b60125460ff16610faf5760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b60448201526064016109c0565b6012805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b60025461010090046001600160a01b031633146110135760405162461bcd60e51b81526004016109c0906120c9565b600c54821115806110255750600a8211155b6110605760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016109c0565b600d54811115806110725750600a8111155b6110ad5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016109c0565b600c91909155600d55565b60025461010090046001600160a01b031633146110e75760405162461bcd60e51b81526004016109c0906120c9565b601254610100900460ff16156111365760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b60448201526064016109c0565b7358df81babdf15276e761808e872a3838cbecbcf960005260186020527ff1149e5eac8fad9a4507403704abfff08a48c094cc4966abf9674c85bafdf071805460ff191660011790556012805461ff001916610100179055565b600f8054610da090612024565b60606001805461082690612024565b3360009081526017602090815260408083206001600160a01b0386168452909152812054808310611200573360009081526017602090815260408083206001600160a01b038816845290915281205561122f565b61120a8382612074565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166112a957600080fd5b6112b433858561139a565b506001949350505050565b60108054610da090612024565b60025461010090046001600160a01b031633146112fb5760405162461bcd60e51b81526004016109c0906120c9565b60005b8251811015610abd57816018600085848151811061131e5761131e612087565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061135a8161209d565b9150506112fe565b60025461010090046001600160a01b031633146113915760405162461bcd60e51b81526004016109c0906120c9565b610c9681611c51565b6014546000907f00000000000000000000000000000000000000000000000000000000000000009082906113ce9085612116565b6001600160a01b03871660009081526018602052604090205490915060ff1615801561141357506001600160a01b03851660009081526018602052604090205460ff16155b801561142f57503360009081526018602052604090205460ff16155b6114695760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016109c0565b60065460ff16801561147e575060195460ff16155b80156114a357506001600160a01b03861660009081526011602052604090205460ff16155b80156114c857506001600160a01b03851660009081526011602052604090205460ff16155b156117d157601254610100900460ff166115175760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b60448201526064016109c0565b60125460ff161561161057816001600160a01b0316866001600160a01b031614806115535750816001600160a01b0316856001600160a01b0316145b1561159c5760095484111561159c5760405162461bcd60e51b815260206004820152600f60248201526e13585e08151e08115e18d959591959608a1b60448201526064016109c0565b816001600160a01b0316856001600160a01b03161461161057600a54846115c287610d6c565b6115cc91906120b6565b11156116105760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016109c0565b816001600160a01b0316856001600160a01b0316036116ac576014546015546116399190612102565b61164230610d6c565b1061169557306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561168257600080fd5b505af1925050508015611693575060015b505b61169d610c99565b156116ac576116aa611892565b505b6000826001600160a01b0316876001600160a01b0316036116e8576064600c54836116d79190612116565b6116e19190612102565b905061171e565b826001600160a01b0316866001600160a01b03160361171e576064600d54836117119190612116565b61171b9190612102565b90505b80156117cf576001600160a01b0387166000908152601660205260408120805483929061174c908490612074565b909155505030600090815260166020526040812080548392906117709084906120b6565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b19085612102565b60405190815260200160405180910390a36117cc8183612074565b91505b505b6001600160a01b0386166000908152601660205260409020546117f5908290612074565b6001600160a01b0380881660009081526016602052604080822093909355908716815220546118259082906120b6565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118759085612102565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026118ab9190612116565b6118b59190612102565b90504260045410156118e6576001600755600354600480546000906118db9084906120b6565b909155506119039050565b6001600760008282546118f991906120b6565b9091555050426008555b8060000361195157817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161193f91815260200190565b60405180910390a26013549250505090565b8060135461195f9190612074565b60135560055460045410611a48576000196004556006805460ff1916905560025460ff1661198e90600a612211565b61199c90632e5bf271612116565b60135560125460ff16156119de576012805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a15b60006119e930610d6c565b1115611a3d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2a57600080fd5b505af1925050508015611a3b575060015b505b6000600c819055600d555b601354611a576009600a612211565b611a68906640ca664660b5a0612116565b611a7490600019612220565b611a8090600019612074565b611a8a9190612102565b601455611a95611ccb565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161193f91815260200190565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611afe57611afe612087565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190612234565b81600181518110611bb357611bb3612087565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81527f000000000000000000000000000000000000000000000000000000000000000083169263791ac94792611c1b92879260009288929116904290600401612251565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050505050565b6001600160a01b038116611c6457600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611d7357858101830151858201604001528201611d57565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9657600080fd5b8035611db481611d94565b919050565b60008060408385031215611dcc57600080fd5b8235611dd781611d94565b946020939093013593505050565b600080600060608486031215611dfa57600080fd5b8335611e0581611d94565b92506020840135611e1581611d94565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611e4d57600080fd5b8135602067ffffffffffffffff80831115611e6a57611e6a611e26565b8260051b604051601f19603f83011681018181108482111715611e8f57611e8f611e26565b604052938452858101830193838101925087851115611ead57600080fd5b83870191505b84821015611ed357611ec482611da9565b83529183019190830190611eb3565b979650505050505050565b600060208284031215611ef057600080fd5b813567ffffffffffffffff811115611f0757600080fd5b611f1384828501611e3c565b949350505050565b600060208284031215611f2d57600080fd5b8135611f3881611d94565b9392505050565b80358015158114611db457600080fd5b60008060408385031215611f6257600080fd5b8235611f6d81611d94565b9150611f7b60208401611f3f565b90509250929050565b60008060408385031215611f9757600080fd5b50508035926020909101359150565b60008060408385031215611fb957600080fd5b823567ffffffffffffffff811115611fd057600080fd5b611fdc85828601611e3c565b925050611f7b60208401611f3f565b60008060408385031215611ffe57600080fd5b823561200981611d94565b9150602083013561201981611d94565b809150509250929050565b600181811c9082168061203857607f821691505b60208210810361205857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109105761091061205e565b634e487b7160e01b600052603260045260246000fd5b6000600182016120af576120af61205e565b5060010190565b808201808211156109105761091061205e565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b600082612111576121116120ec565b500490565b80820281158282048414176109105761091061205e565b600181815b8085111561216857816000190482111561214e5761214e61205e565b8085161561215b57918102915b93841c9390800290612132565b509250929050565b60008261217f57506001610910565b8161218c57506000610910565b81600181146121a257600281146121ac576121c8565b6001915050610910565b60ff8411156121bd576121bd61205e565b50506001821b610910565b5060208310610133831016604e8410600b84101617156121eb575081810a610910565b6121f5838361212d565b80600019048211156122095761220961205e565b029392505050565b6000611f3860ff841683612170565b60008261222f5761222f6120ec565b500690565b60006020828403121561224657600080fd5b8151611f3881611d94565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122a15784516001600160a01b03168352938301939183019160010161227c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bbdf7336e044cd350512afc731cbda38b31e48a2cb7849ecdacf8de7e30847ce64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102815760003560e01c806389375abf1161014f578063bac154ea116100c1578063dd62ed3e1161007a578063dd62ed3e1461073b578063f0d00f2e14610781578063f2fde38b14610797578063f7d04321146107b7578063f887ea40146107cd578063f8b45b051461080157600080fd5b8063bac154ea146106a5578063bc7e68a3146106ba578063c5377ae5146106d0578063c5c0050e146106f0578063cf46f24c1461070f578063da07e4d71461072557600080fd5b80639367ffcd116101135780639367ffcd146105f157806395d89b41146106065780639833d9ec1461061b578063a457c2d714610631578063a8aa1b3114610651578063a9059cbb1461068557600080fd5b806389375abf1461056957806389d81e9d1461057f5780638a8c523c1461059f5780638da5cb5b146105b45780639079f932146105d757600080fd5b80633fc8cef3116101f35780636ac5eeee116101ac5780636ac5eeee146104d557806370a08231146104ea578063713be5ef1461050a578063715018a61461051f57806374c9f60314610534578063751039fc1461055457600080fd5b80633fc8cef31461042857806342295e1b1461045c5780634a62bb65146104715780636135af2a1461048b57806361a9d1b1146104ab57806363eab10a146104c057600080fd5b80632dc0562d116102455780632dc0562d1461033d5780632e32598314610375578063313ce5671461039757806339509351146103b95780633af32abf146103d95780633b68edea1461040957600080fd5b806303e2c14c1461028d57806306fdde03146102b6578063095ea7b3146102d857806318160ddd1461030857806323b872dd1461031d57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600d5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb610817565b6040516102ad9190611d46565b3480156102e457600080fd5b506102f86102f3366004611db9565b6108a9565b60405190151581526020016102ad565b34801561031457600080fd5b506013546102a3565b34801561032957600080fd5b506102f8610338366004611de5565b610916565b34801561034957600080fd5b50600b5461035d906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561038157600080fd5b50610395610390366004611ede565b610a34565b005b3480156103a357600080fd5b5060025460405160ff90911681526020016102ad565b3480156103c557600080fd5b506102f86103d4366004611db9565b610ac2565b3480156103e557600080fd5b506102f86103f4366004611f1b565b60116020526000908152604090205460ff1681565b34801561041557600080fd5b506012546102f890610100900460ff1681565b34801561043457600080fd5b5061035d7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561046857600080fd5b50610395610b48565b34801561047d57600080fd5b506012546102f89060ff1681565b34801561049757600080fd5b506103956104a6366004611f4f565b610bf2565b3480156104b757600080fd5b50610395610c4c565b3480156104cc57600080fd5b506102f8610c99565b3480156104e157600080fd5b50610395610ced565b3480156104f657600080fd5b506102a3610505366004611f1b565b610d6c565b34801561051657600080fd5b506102cb610d93565b34801561052b57600080fd5b50610395610e21565b34801561054057600080fd5b5061039561054f366004611f1b565b610e9f565b34801561056057600080fd5b50610395610f35565b34801561057557600080fd5b506102a360035481565b34801561058b57600080fd5b5061039561059a366004611f84565b610fe4565b3480156105ab57600080fd5b506103956110b8565b3480156105c057600080fd5b5060025461010090046001600160a01b031661035d565b3480156105e357600080fd5b506006546102f89060ff1681565b3480156105fd57600080fd5b506102cb611190565b34801561061257600080fd5b506102cb61119d565b34801561062757600080fd5b506102a360085481565b34801561063d57600080fd5b506102f861064c366004611db9565b6111ac565b34801561065d57600080fd5b5061035d7f000000000000000000000000fb964b6950dac395ec6366c634325fba4ff8781f81565b34801561069157600080fd5b506102f86106a0366004611db9565b611293565b3480156106b157600080fd5b506102cb6112bf565b3480156106c657600080fd5b506102a360045481565b3480156106dc57600080fd5b506103956106eb366004611fa6565b6112cc565b3480156106fc57600080fd5b506006546102f890610100900460ff1681565b34801561071b57600080fd5b506102a360095481565b34801561073157600080fd5b506102a360055481565b34801561074757600080fd5b506102a3610756366004611feb565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561078d57600080fd5b506102a360075481565b3480156107a357600080fd5b506103956107b2366004611f1b565b611362565b3480156107c357600080fd5b506102a3600c5481565b3480156107d957600080fd5b5061035d7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561080d57600080fd5b506102a3600a5481565b60606000805461082690612024565b80601f016020809104026020016040519081016040528092919081815260200182805461085290612024565b801561089f5780601f106108745761010080835404028352916020019161089f565b820191906000526020600020905b81548152906001019060200180831161088257829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109049086815260200190565b60405180910390a35060015b92915050565b6000826001600160a01b03811661092c57600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a1d576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109c95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064015b60405180910390fd5b6001600160a01b03851660009081526017602090815260408083203384529091529020546109f8908490612074565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a2885858561139a565b50600195945050505050565b6000805b8251811015610abd57828181518110610a5357610a53612087565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610aa391815260200190565b60405180910390a380610ab58161209d565b915050610a38565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610af19083906120b6565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610904565b60025461010090046001600160a01b03163314610b775760405162461bcd60e51b81526004016109c0906120c9565b600654610100900460ff1615610bc15760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b60448201526064016109c0565b600354610bce90426120b6565b600455610bde42621275006120b6565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c215760405162461bcd60e51b81526004016109c0906120c9565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b610c54610c99565b610c8e5760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b60448201526064016109c0565b610c96611892565b50565b600042600454111580610ce8575060065460ff168015610cc05750600654610100900460ff165b8015610cce5750600a600754105b8015610ce8575042600854603c610ce591906120b6565b11155b905090565b6019805460ff191660011790556000610d0530610d6c565b905080600003610d155750610d60565b601454601554610d259190612102565b610d30906014612116565b811115610d5557601454601554610d479190612102565b610d52906014612116565b90505b610d5e81611ac9565b505b6019805460ff19169055565b6014546001600160a01b038216600090815260166020526040812054909161091091612102565b600e8054610da090612024565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcc90612024565b8015610e195780601f10610dee57610100808354040283529160200191610e19565b820191906000526020600020905b815481529060010190602001808311610dfc57829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e505760405162461bcd60e51b81526004016109c0906120c9565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610ece5760405162461bcd60e51b81526004016109c0906120c9565b6001600160a01b038116610f135760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016109c0565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f645760405162461bcd60e51b81526004016109c0906120c9565b60125460ff16610faf5760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b60448201526064016109c0565b6012805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b60025461010090046001600160a01b031633146110135760405162461bcd60e51b81526004016109c0906120c9565b600c54821115806110255750600a8211155b6110605760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016109c0565b600d54811115806110725750600a8111155b6110ad5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016109c0565b600c91909155600d55565b60025461010090046001600160a01b031633146110e75760405162461bcd60e51b81526004016109c0906120c9565b601254610100900460ff16156111365760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b60448201526064016109c0565b7358df81babdf15276e761808e872a3838cbecbcf960005260186020527ff1149e5eac8fad9a4507403704abfff08a48c094cc4966abf9674c85bafdf071805460ff191660011790556012805461ff001916610100179055565b600f8054610da090612024565b60606001805461082690612024565b3360009081526017602090815260408083206001600160a01b0386168452909152812054808310611200573360009081526017602090815260408083206001600160a01b038816845290915281205561122f565b61120a8382612074565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b0381166112a957600080fd5b6112b433858561139a565b506001949350505050565b60108054610da090612024565b60025461010090046001600160a01b031633146112fb5760405162461bcd60e51b81526004016109c0906120c9565b60005b8251811015610abd57816018600085848151811061131e5761131e612087565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061135a8161209d565b9150506112fe565b60025461010090046001600160a01b031633146113915760405162461bcd60e51b81526004016109c0906120c9565b610c9681611c51565b6014546000907f000000000000000000000000fb964b6950dac395ec6366c634325fba4ff8781f9082906113ce9085612116565b6001600160a01b03871660009081526018602052604090205490915060ff1615801561141357506001600160a01b03851660009081526018602052604090205460ff16155b801561142f57503360009081526018602052604090205460ff16155b6114695760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016109c0565b60065460ff16801561147e575060195460ff16155b80156114a357506001600160a01b03861660009081526011602052604090205460ff16155b80156114c857506001600160a01b03851660009081526011602052604090205460ff16155b156117d157601254610100900460ff166115175760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b60448201526064016109c0565b60125460ff161561161057816001600160a01b0316866001600160a01b031614806115535750816001600160a01b0316856001600160a01b0316145b1561159c5760095484111561159c5760405162461bcd60e51b815260206004820152600f60248201526e13585e08151e08115e18d959591959608a1b60448201526064016109c0565b816001600160a01b0316856001600160a01b03161461161057600a54846115c287610d6c565b6115cc91906120b6565b11156116105760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016109c0565b816001600160a01b0316856001600160a01b0316036116ac576014546015546116399190612102565b61164230610d6c565b1061169557306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561168257600080fd5b505af1925050508015611693575060015b505b61169d610c99565b156116ac576116aa611892565b505b6000826001600160a01b0316876001600160a01b0316036116e8576064600c54836116d79190612116565b6116e19190612102565b905061171e565b826001600160a01b0316866001600160a01b03160361171e576064600d54836117119190612116565b61171b9190612102565b90505b80156117cf576001600160a01b0387166000908152601660205260408120805483929061174c908490612074565b909155505030600090815260166020526040812080548392906117709084906120b6565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117b19085612102565b60405190815260200160405180910390a36117cc8183612074565b91505b505b6001600160a01b0386166000908152601660205260409020546117f5908290612074565b6001600160a01b0380881660009081526016602052604080822093909355908716815220546118259082906120b6565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118759085612102565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026118ab9190612116565b6118b59190612102565b90504260045410156118e6576001600755600354600480546000906118db9084906120b6565b909155506119039050565b6001600760008282546118f991906120b6565b9091555050426008555b8060000361195157817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161193f91815260200190565b60405180910390a26013549250505090565b8060135461195f9190612074565b60135560055460045410611a48576000196004556006805460ff1916905560025460ff1661198e90600a612211565b61199c90632e5bf271612116565b60135560125460ff16156119de576012805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a15b60006119e930610d6c565b1115611a3d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2a57600080fd5b505af1925050508015611a3b575060015b505b6000600c819055600d555b601354611a576009600a612211565b611a68906640ca664660b5a0612116565b611a7490600019612220565b611a8090600019612074565b611a8a9190612102565b601455611a95611ccb565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161193f91815260200190565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611afe57611afe612087565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190612234565b81600181518110611bb357611bb3612087565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d83169263791ac94792611c1b92879260009288929116904290600401612251565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050505050565b6001600160a01b038116611c6457600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f000000000000000000000000fb964b6950dac395ec6366c634325fba4ff8781f9050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611d7357858101830151858201604001528201611d57565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9657600080fd5b8035611db481611d94565b919050565b60008060408385031215611dcc57600080fd5b8235611dd781611d94565b946020939093013593505050565b600080600060608486031215611dfa57600080fd5b8335611e0581611d94565b92506020840135611e1581611d94565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611e4d57600080fd5b8135602067ffffffffffffffff80831115611e6a57611e6a611e26565b8260051b604051601f19603f83011681018181108482111715611e8f57611e8f611e26565b604052938452858101830193838101925087851115611ead57600080fd5b83870191505b84821015611ed357611ec482611da9565b83529183019190830190611eb3565b979650505050505050565b600060208284031215611ef057600080fd5b813567ffffffffffffffff811115611f0757600080fd5b611f1384828501611e3c565b949350505050565b600060208284031215611f2d57600080fd5b8135611f3881611d94565b9392505050565b80358015158114611db457600080fd5b60008060408385031215611f6257600080fd5b8235611f6d81611d94565b9150611f7b60208401611f3f565b90509250929050565b60008060408385031215611f9757600080fd5b50508035926020909101359150565b60008060408385031215611fb957600080fd5b823567ffffffffffffffff811115611fd057600080fd5b611fdc85828601611e3c565b925050611f7b60208401611f3f565b60008060408385031215611ffe57600080fd5b823561200981611d94565b9150602083013561201981611d94565b809150509250929050565b600181811c9082168061203857607f821691505b60208210810361205857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109105761091061205e565b634e487b7160e01b600052603260045260246000fd5b6000600182016120af576120af61205e565b5060010190565b808201808211156109105761091061205e565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b600082612111576121116120ec565b500490565b80820281158282048414176109105761091061205e565b600181815b8085111561216857816000190482111561214e5761214e61205e565b8085161561215b57918102915b93841c9390800290612132565b509250929050565b60008261217f57506001610910565b8161218c57506000610910565b81600181146121a257600281146121ac576121c8565b6001915050610910565b60ff8411156121bd576121bd61205e565b50506001821b610910565b5060208310610133831016604e8410600b84101617156121eb575081810a610910565b6121f5838361212d565b80600019048211156122095761220961205e565b029392505050565b6000611f3860ff841683612170565b60008261222f5761222f6120ec565b500690565b60006020828403121561224657600080fd5b8151611f3881611d94565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122a15784516001600160a01b03168352938301939183019160010161227c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bbdf7336e044cd350512afc731cbda38b31e48a2cb7849ecdacf8de7e30847ce64736f6c63430008110033
Deployed Bytecode Sourcemap
9266:12192:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9723:29;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9723:29:0;;;;;;;;1343:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18094:215::-;;;;;;;;;;-1:-1:-1;18094:215:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;18094:215:0;1344:187:1;12896:102:0;;;;;;;;;;-1:-1:-1;12978:12:0;;12896:102;;16699:448;;;;;;;;;;-1:-1:-1;16699:448:0;;;;;:::i;:::-;;:::i;9657:24::-;;;;;;;;;;-1:-1:-1;9657:24:0;;;;-1:-1:-1;;;;;9657:24:0;;;;;;-1:-1:-1;;;;;2161:32:1;;;2143:51;;2131:2;2116:18;9657:24:0;1997:203:1;21179:239:0;;;;;;;;;;-1:-1:-1;21179:239:0;;;;;:::i;:::-;;:::i;:::-;;1529:83;;;;;;;;;;-1:-1:-1;1595:9:0;;1529:83;;1595:9;;;;3745:36:1;;3733:2;3718:18;1529:83:0;3603:184:1;17720:366:0;;;;;;;;;;-1:-1:-1;17720:366:0;;;;;:::i;:::-;;:::i;9851:46::-;;;;;;;;;;-1:-1:-1;9851:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10403:33;;;;;;;;;;-1:-1:-1;10403:33:0;;;;;;;;;;;10244:27;;;;;;;;;;;;;;;19881:247;;;;;;;;;;;;;:::i;10363:33::-;;;;;;;;;;-1:-1:-1;10363:33:0;;;;;;;;14000:142;;;;;;;;;;-1:-1:-1;14000:142:0;;;;;:::i;:::-;;:::i;19548:109::-;;;;;;;;;;;;;:::i;13303:211::-;;;;;;;;;;;;;:::i;20342:377::-;;;;;;;;;;;;;:::i;13163:132::-;;;;;;;;;;-1:-1:-1;13163:132:0;;;;;:::i;:::-;;:::i;9761:18::-;;;;;;;;;;;;;:::i;2535:126::-;;;;;;;;;;;;;:::i;14150:159::-;;;;;;;;;;-1:-1:-1;14150:159:0;;;;;:::i;:::-;;:::i;13817:175::-;;;;;;;;;;;;;:::i;9321:40::-;;;;;;;;;;;;;;;;14317:372;;;;;;;;;;-1:-1:-1;14317:372:0;;;;;:::i;:::-;;:::i;19665:208::-;;;;;;;;;;;;;:::i;2346:79::-;;;;;;;;;;-1:-1:-1;2411:6:0;;;;;-1:-1:-1;;;;;2411:6:0;2346:79;;9433:29;;;;;;;;;;-1:-1:-1;9433:29:0;;;;;;;;9786:25;;;;;;;;;;;;;:::i;1434:87::-;;;;;;;;;;;;;:::i;9547:34::-;;;;;;;;;;;;;;;;17155:557;;;;;;;;;;-1:-1:-1;17155:557:0;;;;;:::i;:::-;;:::i;10321:29::-;;;;;;;;;;;;;;;13636:173;;;;;;;;;;-1:-1:-1;13636:173:0;;;;;:::i;:::-;;:::i;9818:24::-;;;;;;;;;;;;;:::i;9368:25::-;;;;;;;;;;;;;;;;20136:198;;;;;;;;;;-1:-1:-1;20136:198:0;;;;;:::i;:::-;;:::i;9469:33::-;;;;;;;;;;-1:-1:-1;9469:33:0;;;;;;;;;;;9590:27;;;;;;;;;;;;;;;;9400:26;;;;;;;;;;;;;;;;13006:149;;;;;;;;;;-1:-1:-1;13006:149:0;;;;;:::i;:::-;-1:-1:-1;;;;;13116:22:0;;;13090:7;13116:22;;;:14;:22;;;;;;;;:31;;;;;;;;;;;;;13006:149;9509:31;;;;;;;;;;;;;;;;2669:109;;;;;;;;;;-1:-1:-1;2669:109:0;;;;;:::i;:::-;;:::i;9688:28::-;;;;;;;;;;;;;;;;10280:34;;;;;;;;;;;;;;;9624:24;;;;;;;;;;;;;;;;1343:83;1380:13;1413:5;1406:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1343:83;:::o;18094:215::-;18199:10;18168:4;18184:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;18184:35:0;;;;;;;;;;:43;;;18243:36;18168:4;;18184:35;;18243:36;;;;18222:5;160:25:1;;148:2;133:18;;14:177;18243:36:0;;;;;;;;-1:-1:-1;18297:4:0;18094:215;;;;;:::o;16699:448::-;16809:4;16796:2;-1:-1:-1;;;;;10835:18:0;;10827:27;;;;;;-1:-1:-1;;;;;16830:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16851:10:::1;16830:32:::0;;;;;;;;-1:-1:-1;;16830:53:0::1;16826:251;;-1:-1:-1::0;;;;;16908:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16929:10:::1;16908:32:::0;;;;;;;;:41;-1:-1:-1;16908:41:0::1;16900:75;;;::::0;-1:-1:-1;;;16900:75:0;;6630:2:1;16900:75:0::1;::::0;::::1;6612:21:1::0;6669:2;6649:18;;;6642:30;-1:-1:-1;;;6688:18:1;;;6681:52;6750:18;;16900:75:0::1;;;;;;;;;-1:-1:-1::0;;;;;17025:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;17046:10:::1;17025:32:::0;;;;;;;;:40:::1;::::0;17059:5;;17025:40:::1;:::i;:::-;-1:-1:-1::0;;;;;16990:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;17011:10:::1;16990:32:::0;;;;;;;:75;16826:251:::1;17087:30;17101:4;17107:2;17111:5;17087:13;:30::i;:::-;-1:-1:-1::0;17135:4:0::1;::::0;16699:448;-1:-1:-1;;;;;16699:448:0:o;21179:239::-;21250:14;;21275:136;21298:7;:14;21294:1;:18;21275:136;;;21342:7;21350:1;21342:10;;;;;;;;:::i;:::-;;;;;;;21333:19;;21389:6;-1:-1:-1;;;;;21372:27:0;21381:6;-1:-1:-1;;;;;21372:27:0;;21397:1;21372:27;;;;160:25:1;;148:2;133:18;;14:177;21372:27:0;;;;;;;;21314:3;;;;:::i;:::-;;;;21275:136;;;;21239:179;21179:239;:::o;17720:366::-;17871:10;17802:4;17856:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17856:55:0;;;;;;;;;;:68;;17913:10;;17856:68;:::i;:::-;17833:10;17818:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17818:35:0;;;;;;;;;;;;:106;;;17940:116;160:25:1;;;17818:35:0;;17940:116;;133:18:1;17940:116:0;14:177:1;19881:247:0;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;19949:13:::1;::::0;::::1;::::0;::::1;;;19948:14;19940:42;;;::::0;-1:-1:-1;;;19940:42:0;;8175:2:1;19940:42:0::1;::::0;::::1;8157:21:1::0;8214:2;8194:18;;;8187:30;-1:-1:-1;;;8233:18:1;;;8226:45;8288:18;;19940:42:0::1;7973:339:1::0;19940:42:0::1;20024:15;::::0;20006:33:::1;::::0;:15:::1;:33;:::i;:::-;19993:10;:46:::0;20064:25:::1;:15;20082:7;20064:25;:::i;:::-;20050:11;:39:::0;20100:13:::1;:20:::0;;-1:-1:-1;;20100:20:0::1;;;::::0;;19881:247::o;14000:142::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14094:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:40;;-1:-1:-1;;14094:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14000:142::o;19548:109::-;19600:14;:12;:14::i;:::-;19592:38;;;;-1:-1:-1;;;19592:38:0;;8519:2:1;19592:38:0;;;8501:21:1;8558:2;8538:18;;;8531:30;-1:-1:-1;;;8577:18:1;;;8570:41;8628:18;;19592:38:0;8317:335:1;19592:38:0;19641:8;:6;:8::i;:::-;;19548:109::o;13303:211::-;13348:4;13386:15;13372:10;;:29;;:134;;;-1:-1:-1;13406:10:0;;;;:27;;;;-1:-1:-1;13420:13:0;;;;;;;13406:27;:52;;;;;13456:2;13437:16;;:21;13406:52;:99;;;;;13490:15;13462:19;;13484:2;13462:24;;;;:::i;:::-;:43;;13406:99;13365:141;;13303:211;:::o;20342:377::-;10933:6;:13;;-1:-1:-1;;10933:13:0;10942:4;10933:13;;;:6;20415:24:::1;20433:4;20415:9;:24::i;:::-;20389:50;;20453:15;20472:1;20453:20:::0;20450:57:::1;;20489:7;;;20450:57;20560:14;;20540:18;;:35;;;;:::i;:::-;:40;::::0;20578:2:::1;20540:40;:::i;:::-;20522:15;:58;20519:147;;;20634:14;;20614:18;;:35;;;;:::i;:::-;:40;::::0;20652:2:::1;20614:40;:::i;:::-;20596:58;;20519:147;20678:33;20695:15;20678:16;:33::i;:::-;20378:341;10957:1;10969:6:::0;:14;;-1:-1:-1;;10969:14:0;;;20342:377::o;13163:132::-;13272:14;;-1:-1:-1;;;;;13252:18:0;;13225:7;13252:18;;;:13;:18;;;;;;13225:7;;13252:35;;;:::i;9761:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2535:126::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;2616:6:::1;::::0;2597:26:::1;::::0;2616:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;2616:6:0::1;::::0;2597:26:::1;::::0;;;::::1;2634:6;:19:::0;;-1:-1:-1;;;;;;2634:19:0::1;::::0;;2535:126::o;14150:159::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14231:22:0;::::1;14223:47;;;::::0;-1:-1:-1;;;14223:47:0;;9289:2:1;14223:47:0::1;::::0;::::1;9271:21:1::0;9328:2;9308:18;;;9301:30;-1:-1:-1;;;9347:18:1;;;9340:42;9399:18;;14223:47:0::1;9087:336:1::0;14223:47:0::1;14281:9;:20:::0;;-1:-1:-1;;;;;;14281:20:0::1;-1:-1:-1::0;;;;;14281:20:0;;;::::1;::::0;;;::::1;::::0;;14150:159::o;13817:175::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;13879:14:::1;::::0;::::1;;13871:49;;;::::0;-1:-1:-1;;;13871:49:0;;9630:2:1;13871:49:0::1;::::0;::::1;9612:21:1::0;9669:2;9649:18;;;9642:30;-1:-1:-1;;;9688:18:1;;;9681:52;9750:18;;13871:49:0::1;9428:346:1::0;13871:49:0::1;13931:14;:22:::0;;-1:-1:-1;;13931:22:0::1;::::0;;13969:15:::1;::::0;::::1;::::0;13948:5:::1;::::0;13969:15:::1;13817:175::o:0;14317:372::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;14448:13:::1;;14430:14;:31;;:55;;;;14483:2;14465:14;:20;;14430:55;14422:80;;;::::0;-1:-1:-1;;;14422:80:0;;9981:2:1;14422:80:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;-1:-1:-1;;;10039:18:1;;;10032:42;10091:18;;14422:80:0::1;9779:336:1::0;14422:80:0::1;14540:14;;14521:15;:33;;:59;;;;14578:2;14559:15;:21;;14521:59;14513:84;;;::::0;-1:-1:-1;;;14513:84:0;;9981:2:1;14513:84:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;-1:-1:-1;;;10039:18:1;;;10032:42;10091:18;;14513:84:0::1;9779:336:1::0;14513:84:0::1;14608:13;:30:::0;;;;14649:14:::1;:32:::0;14317:372::o;19665:208::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;19729:13:::1;::::0;::::1;::::0;::::1;;;19728:14;19720:47;;;::::0;-1:-1:-1;;;19720:47:0;;10322:2:1;19720:47:0::1;::::0;::::1;10304:21:1::0;10361:2;10341:18;;;10334:30;-1:-1:-1;;;10380:18:1;;;10373:50;10440:18;;19720:47:0::1;10120:344:1::0;19720:47:0::1;19784:42;19778:49;::::0;:5:::1;:49;::::0;;:56;;-1:-1:-1;;19778:56:0::1;19830:4;19778:56;::::0;;19845:13:::1;:20:::0;;-1:-1:-1;;19845:20:0::1;19778:56;19845:20;::::0;;19665:208::o;9786:25::-;;;;;;;:::i;1434:87::-;1473:13;1506:7;1499:14;;;;;:::i;17155:557::-;17292:10;17242:4;17277:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17277:35:0;;;;;;;;;;17327:27;;;17323:228;;17386:10;17409:1;17371:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17371:35:0;;;;;;;;;:39;17323:228;;;17481:58;17509:15;17481:8;:58;:::i;:::-;17458:10;17443:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17443:35:0;;;;;;;;;:96;17323:228;17589:10;17636:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17566:116:0;;17636:35;;;;;;;;;;;17566:116;;160:25:1;;;17566:116:0;;17589:10;17566:116;;133:18:1;17566:116:0;;;;;;;-1:-1:-1;17700:4:0;;17155:557;-1:-1:-1;;;17155:557:0:o;13636:173::-;13727:4;13714:2;-1:-1:-1;;;;;10835:18:0;;10827:27;;;;;;13743:36:::1;13757:10;13769:2;13773:5;13743:13;:36::i;:::-;-1:-1:-1::0;13797:4:0::1;::::0;13636:173;-1:-1:-1;;;;13636:173:0:o;9818:24::-;;;;;;;:::i;20136:198::-;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;20231:9:::1;20227:100;20250:9;:16;20246:1;:20;20227:100;;;20309:6;20287:5;:19;20293:9;20303:1;20293:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20287:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20287:19:0;:28;;-1:-1:-1;;20287:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20268:3;::::1;::::0;::::1;:::i;:::-;;;;20227:100;;2669:109:::0;2487:6;;;;;-1:-1:-1;;;;;2487:6:0;2473:10;:20;2465:42;;;;-1:-1:-1;;;2465:42:0;;;;;;;:::i;:::-;2742:28:::1;2761:8;2742:18;:28::i;14697:1994::-:0;14872:14;;14789:4;;14828;;14789;;14864:23;;:6;:23;:::i;:::-;-1:-1:-1;;;;;14909:13:0;;;;;;:5;:13;;;;;;14843:44;;-1:-1:-1;14909:13:0;;14908:14;:35;;;;-1:-1:-1;;;;;;14927:16:0;;;;;;:5;:16;;;;;;;;14926:17;14908:35;:57;;;;-1:-1:-1;14954:10:0;14948:17;;;;:5;:17;;;;;;;;14947:18;14908:57;14900:81;;;;-1:-1:-1;;;14900:81:0;;10671:2:1;14900:81:0;;;10653:21:1;10710:2;10690:18;;;10683:30;-1:-1:-1;;;10729:18:1;;;10722:41;10780:18;;14900:81:0;10469:335:1;14900:81:0;14997:10;;;;:21;;;;-1:-1:-1;15012:6:0;;;;15011:7;14997:21;:47;;;;-1:-1:-1;;;;;;15023:21:0;;;;;;:13;:21;;;;;;;;15022:22;14997:47;:76;;;;-1:-1:-1;;;;;;15049:24:0;;;;;;:13;:24;;;;;;;;15048:25;14997:76;14994:1446;;;15097:13;;;;;;;15089:42;;;;-1:-1:-1;;;15089:42:0;;11011:2:1;15089:42:0;;;10993:21:1;11050:2;11030:18;;;11023:30;-1:-1:-1;;;11069:18:1;;;11062:46;11125:18;;15089:42:0;10809:340:1;15089:42:0;15149:14;;;;15146:363;;;15197:11;-1:-1:-1;;;;;15187:21:0;:6;-1:-1:-1;;;;;15187:21:0;;:49;;;;15225:11;-1:-1:-1;;;;;15212:24:0;:9;-1:-1:-1;;;;;15212:24:0;;15187:49;15183:147;;;15278:12;;15268:6;:22;;15260:50;;;;-1:-1:-1;;;15260:50:0;;11356:2:1;15260:50:0;;;11338:21:1;11395:2;11375:18;;;11368:30;-1:-1:-1;;;11414:18:1;;;11407:45;11469:18;;15260:50:0;11154:339:1;15260:50:0;15365:11;-1:-1:-1;;;;;15352:24:0;:9;-1:-1:-1;;;;;15352:24:0;;15348:146;;15441:9;;15431:6;15408:20;15418:9;15408;:20::i;:::-;:29;;;;:::i;:::-;:42;;15400:74;;;;-1:-1:-1;;;15400:74:0;;11700:2:1;15400:74:0;;;11682:21:1;11739:2;11719:18;;;11712:30;-1:-1:-1;;;11758:18:1;;;11751:49;11817:18;;15400:74:0;11498:343:1;15400:74:0;15541:11;-1:-1:-1;;;;;15528:24:0;:9;-1:-1:-1;;;;;15528:24:0;;15525:288;;15623:14;;15603:18;;:35;;;;:::i;:::-;15575:24;15593:4;15575:9;:24::i;:::-;:63;15572:139;;15666:4;-1:-1:-1;;;;;15666:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15662:30;;15732:14;:12;:14::i;:::-;15729:69;;;15770:8;:6;:8::i;:::-;;15729:69;15829:21;15880:11;-1:-1:-1;;;;;15870:21:0;:6;-1:-1:-1;;;;;15870:21:0;;15867:241;;15956:3;15940:13;;15927:10;:26;;;;:::i;:::-;:32;;;;:::i;:::-;15911:48;;15867:241;;;16011:11;-1:-1:-1;;;;;15998:24:0;:9;-1:-1:-1;;;;;15998:24:0;;15994:114;;16089:3;16072:14;;16059:10;:27;;;;:::i;:::-;:33;;;;:::i;:::-;16043:49;;15994:114;16127:17;;16124:291;;-1:-1:-1;;;;;16164:21:0;;;;;;:13;:21;;;;;:38;;16189:13;;16164:21;:38;;16189:13;;16164:38;:::i;:::-;;;;-1:-1:-1;;16243:4:0;16221:28;;;;:13;:28;;;;;:45;;16253:13;;16221:28;:45;;16253:13;;16221:45;:::i;:::-;;;;-1:-1:-1;;16338:14:0;;16315:4;;-1:-1:-1;;;;;16290:63:0;;;;;16322:30;;:13;:30;:::i;:::-;16290:63;;160:25:1;;;148:2;133:18;16290:63:0;;;;;;;16372:27;16386:13;16372:27;;:::i;:::-;;;16124:291;15074:1366;14994:1446;-1:-1:-1;;;;;16476:21:0;;;;;;:13;:21;;;;;;:34;;16499:10;;16476:34;:::i;:::-;-1:-1:-1;;;;;16452:21:0;;;;;;;:13;:21;;;;;;:58;;;;16548:24;;;;;;;:37;;16574:10;;16548:37;:::i;:::-;-1:-1:-1;;;;;16521:24:0;;;;;;;:13;:24;;;;;:64;;;;16643:14;;16603:56;;;;;;16631:27;;:10;:27;:::i;:::-;16603:56;;160:25:1;;;148:2;133:18;16603:56:0;;;;;;;-1:-1:-1;16679:4:0;;14697:1994;-1:-1:-1;;;;;14697:1994:0:o;18317:1223::-;18353:7;18373:12;18388:15;18373:30;;18416:19;18457:3;18438:12;;18453:1;18438:16;;;;:::i;:::-;:22;;;;:::i;:::-;18416:44;;18487:15;18474:10;;:28;18471:229;;;18537:1;18518:16;:20;18567:15;;18553:10;:29;;:10;;:29;;18567:15;;18553:29;:::i;:::-;;;;-1:-1:-1;18471:229:0;;-1:-1:-1;18471:229:0;;18635:1;18615:16;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;18673:15:0;18651:19;:37;18471:229;18716:11;18731:1;18716:16;18712:114;;18761:4;18754:26;18767:12;;18754:26;;;;160:25:1;;148:2;133:18;;14:177;18754:26:0;;;;;;;;18802:12;;18795:19;;;;18317:1223;:::o;18712:114::-;18866:11;18853:12;;:24;;;;:::i;:::-;18838:12;:39;18908:11;;18894:10;;:25;18890:492;;-1:-1:-1;;18936:10:0;:30;18981:10;:18;;-1:-1:-1;;18981:18:0;;;1595:9;;;;19044:16;;:2;:16;:::i;:::-;19029:32;;:11;:32;:::i;:::-;19014:12;:47;19081:14;;;;19078:114;;;19115:14;:22;;-1:-1:-1;;19115:22:0;;;19161:15;;;;19132:5;;19161:15;19078:114;19238:1;19211:24;19229:4;19211:9;:24::i;:::-;:28;19208:96;;;19263:4;-1:-1:-1;;;;;19263:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19259:30;;19336:1;19320:13;:17;;;19352:14;:18;18890:492;19424:12;;10022;9940:1;10022:2;:12;:::i;:::-;9997:37;;:22;:37;:::i;:::-;10101:41;;-1:-1:-1;;10101:41:0;:::i;:::-;10080:63;;-1:-1:-1;;10080:63:0;:::i;:::-;19411:26;;;;:::i;:::-;19394:14;:43;19450:8;:6;:8::i;:::-;19483:4;19476:26;19489:12;;19476:26;;;;160:25:1;;148:2;133:18;;14:177;20727:444:0;20818:16;;;20832:1;20818:16;;;;;;;;20794:21;;20818:16;;;;;;;;;;-1:-1:-1;20818:16:0;20794:40;;20863:4;20845;20850:1;20845:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20845:23:0;;;-1:-1:-1;;;;;20845:23:0;;;;;20897:6;-1:-1:-1;;;;;20897:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20879:4;20884:1;20879:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20879:32:0;;;:7;;;;;;;;;:32;21112:9;;20950:213;;-1:-1:-1;;;20950:213:0;;:6;:57;;;;;:213;;21022:11;;21048:1;;21085:4;;21112:9;;;21137:15;;20950:213;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20783:388;20727:444;:::o;2786:187::-;-1:-1:-1;;;;;2860:22:0;;2852:31;;;;;;2920:6;;2899:38;;-1:-1:-1;;;;;2899:38:0;;;;2920:6;;;;;2899:38;;;;;2948:6;:17;;-1:-1:-1;;;;;2948:17:0;;;;;-1:-1:-1;;;;;;2948:17:0;;;;;;;;;2786:187::o;13522:106::-;13560:17;13592:4;13560:37;;13608:5;-1:-1:-1;;;;;13608:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13549:79;13522:106::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2205:127::-;2266:10;2261:3;2257:20;2254:1;2247:31;2297:4;2294:1;2287:15;2321:4;2318:1;2311:15;2337:908;2391:5;2444:3;2437:4;2429:6;2425:17;2421:27;2411:55;;2462:1;2459;2452:12;2411:55;2498:6;2485:20;2524:4;2547:18;2584:2;2580;2577:10;2574:36;;;2590:18;;:::i;:::-;2636:2;2633:1;2629:10;2668:2;2662:9;2731:2;2727:7;2722:2;2718;2714:11;2710:25;2702:6;2698:38;2786:6;2774:10;2771:22;2766:2;2754:10;2751:18;2748:46;2745:72;;;2797:18;;:::i;:::-;2833:2;2826:22;2883:18;;;2959:15;;;2955:24;;;2917:15;;;;-1:-1:-1;2991:15:1;;;2988:35;;;3019:1;3016;3009:12;2988:35;3055:2;3047:6;3043:15;3032:26;;3067:148;3083:6;3078:3;3075:15;3067:148;;;3149:23;3168:3;3149:23;:::i;:::-;3137:36;;3193:12;;;;3100;;;;3067:148;;;3233:6;2337:908;-1:-1:-1;;;;;;;2337:908:1:o;3250:348::-;3334:6;3387:2;3375:9;3366:7;3362:23;3358:32;3355:52;;;3403:1;3400;3393:12;3355:52;3443:9;3430:23;3476:18;3468:6;3465:30;3462:50;;;3508:1;3505;3498:12;3462:50;3531:61;3584:7;3575:6;3564:9;3560:22;3531:61;:::i;:::-;3521:71;3250:348;-1:-1:-1;;;;3250:348:1:o;3792:247::-;3851:6;3904:2;3892:9;3883:7;3879:23;3875:32;3872:52;;;3920:1;3917;3910:12;3872:52;3959:9;3946:23;3978:31;4003:5;3978:31;:::i;:::-;4028:5;3792:247;-1:-1:-1;;;3792:247:1:o;4265:160::-;4330:20;;4386:13;;4379:21;4369:32;;4359:60;;4415:1;4412;4405:12;4430:315;4495:6;4503;4556:2;4544:9;4535:7;4531:23;4527:32;4524:52;;;4572:1;4569;4562:12;4524:52;4611:9;4598:23;4630:31;4655:5;4630:31;:::i;:::-;4680:5;-1:-1:-1;4704:35:1;4735:2;4720:18;;4704:35;:::i;:::-;4694:45;;4430:315;;;;;:::o;4750:248::-;4818:6;4826;4879:2;4867:9;4858:7;4854:23;4850:32;4847:52;;;4895:1;4892;4885:12;4847:52;-1:-1:-1;;4918:23:1;;;4988:2;4973:18;;;4960:32;;-1:-1:-1;4750:248:1:o;5003:416::-;5093:6;5101;5154:2;5142:9;5133:7;5129:23;5125:32;5122:52;;;5170:1;5167;5160:12;5122:52;5210:9;5197:23;5243:18;5235:6;5232:30;5229:50;;;5275:1;5272;5265:12;5229:50;5298:61;5351:7;5342:6;5331:9;5327:22;5298:61;:::i;:::-;5288:71;;;5378:35;5409:2;5398:9;5394:18;5378:35;:::i;5424:388::-;5492:6;5500;5553:2;5541:9;5532:7;5528:23;5524:32;5521:52;;;5569:1;5566;5559:12;5521:52;5608:9;5595:23;5627:31;5652:5;5627:31;:::i;:::-;5677:5;-1:-1:-1;5734:2:1;5719:18;;5706:32;5747:33;5706:32;5747:33;:::i;:::-;5799:7;5789:17;;;5424:388;;;;;:::o;6043:380::-;6122:1;6118:12;;;;6165;;;6186:61;;6240:4;6232:6;6228:17;6218:27;;6186:61;6293:2;6285:6;6282:14;6262:18;6259:38;6256:161;;6339:10;6334:3;6330:20;6327:1;6320:31;6374:4;6371:1;6364:15;6402:4;6399:1;6392:15;6256:161;;6043:380;;;:::o;6779:127::-;6840:10;6835:3;6831:20;6828:1;6821:31;6871:4;6868:1;6861:15;6895:4;6892:1;6885:15;6911:128;6978:9;;;6999:11;;;6996:37;;;7013:18;;:::i;7044:127::-;7105:10;7100:3;7096:20;7093:1;7086:31;7136:4;7133:1;7126:15;7160:4;7157:1;7150:15;7366:135;7405:3;7426:17;;;7423:43;;7446:18;;:::i;:::-;-1:-1:-1;7493:1:1;7482:13;;7366:135::o;7506:125::-;7571:9;;;7592:10;;;7589:36;;;7605:18;;:::i;7636:332::-;7838:2;7820:21;;;7877:1;7857:18;;;7850:29;-1:-1:-1;;;7910:2:1;7895:18;;7888:39;7959:2;7944:18;;7636:332::o;8657:127::-;8718:10;8713:3;8709:20;8706:1;8699:31;8749:4;8746:1;8739:15;8773:4;8770:1;8763:15;8789:120;8829:1;8855;8845:35;;8860:18;;:::i;:::-;-1:-1:-1;8894:9:1;;8789:120::o;8914:168::-;8987:9;;;9018;;9035:15;;;9029:22;;9015:37;9005:71;;9056:18;;:::i;11846:422::-;11935:1;11978:5;11935:1;11992:270;12013:7;12003:8;12000:21;11992:270;;;12072:4;12068:1;12064:6;12060:17;12054:4;12051:27;12048:53;;;12081:18;;:::i;:::-;12131:7;12121:8;12117:22;12114:55;;;12151:16;;;;12114:55;12230:22;;;;12190:15;;;;11992:270;;;11996:3;11846:422;;;;;:::o;12273:806::-;12322:5;12352:8;12342:80;;-1:-1:-1;12393:1:1;12407:5;;12342:80;12441:4;12431:76;;-1:-1:-1;12478:1:1;12492:5;;12431:76;12523:4;12541:1;12536:59;;;;12609:1;12604:130;;;;12516:218;;12536:59;12566:1;12557:10;;12580:5;;;12604:130;12641:3;12631:8;12628:17;12625:43;;;12648:18;;:::i;:::-;-1:-1:-1;;12704:1:1;12690:16;;12719:5;;12516:218;;12818:2;12808:8;12805:16;12799:3;12793:4;12790:13;12786:36;12780:2;12770:8;12767:16;12762:2;12756:4;12753:12;12749:35;12746:77;12743:159;;;-1:-1:-1;12855:19:1;;;12887:5;;12743:159;12934:34;12959:8;12953:4;12934:34;:::i;:::-;13004:6;13000:1;12996:6;12992:19;12983:7;12980:32;12977:58;;;13015:18;;:::i;:::-;13053:20;;12273:806;-1:-1:-1;;;12273:806:1:o;13084:140::-;13142:5;13171:47;13212:4;13202:8;13198:19;13192:4;13171:47;:::i;13229:112::-;13261:1;13287;13277:35;;13292:18;;:::i;:::-;-1:-1:-1;13326:9:1;;13229:112::o;13346:251::-;13416:6;13469:2;13457:9;13448:7;13444:23;13440:32;13437:52;;;13485:1;13482;13475:12;13437:52;13517:9;13511:16;13536:31;13561:5;13536:31;:::i;13602:980::-;13864:4;13912:3;13901:9;13897:19;13943:6;13932:9;13925:25;13969:2;14007:6;14002:2;13991:9;13987:18;13980:34;14050:3;14045:2;14034:9;14030:18;14023:31;14074:6;14109;14103:13;14140:6;14132;14125:22;14178:3;14167:9;14163:19;14156:26;;14217:2;14209:6;14205:15;14191:29;;14238:1;14248:195;14262:6;14259:1;14256:13;14248:195;;;14327:13;;-1:-1:-1;;;;;14323:39:1;14311:52;;14418:15;;;;14383:12;;;;14359:1;14277:9;14248:195;;;-1:-1:-1;;;;;;;14499:32:1;;;;14494:2;14479:18;;14472:60;-1:-1:-1;;;14563:3:1;14548:19;14541:35;14460:3;13602:980;-1:-1:-1;;;13602:980:1:o
Swarm Source
ipfs://bbdf7336e044cd350512afc731cbda38b31e48a2cb7849ecdacf8de7e30847ce
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.