ERC-20
Overview
Max Total Supply
100,000,000 BOOMA
Holders
52
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
902,004.705356284155719115 BOOMAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BOOMA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-17 */ // SPDX-License-Identifier: MIT /** Website: https://www.boomabamma.vip Telegram: https://t.me/BOOMABAMMA Twitter: https://twitter.com/BOOMABAMMA */ pragma solidity ^0.8.9; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function getAmountsIn( uint amountOut, address[] calldata path ) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract BOOMA is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private isMarketMakerPair; mapping(address => bool) internal _shouldManager; address payable private taxWallet = payable(0x4E81d2629Df9C201b77fBE56E997135A939794FE); address private constant DEAD = 0x000000000000000000000000000000000000dEaD; uint256 private _buyTax = 1; uint256 private _sellTax = 1; uint256 private _initialTax = 1; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals; string private constant _name = unicode"Booma Bamma"; string private constant _symbol = unicode"BOOMA"; uint256 public maxWallet = (_tTotal * 20) / 1000; // 2% of total supply IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool public tradeEnabled = false; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _shouldManager[owner()] = true; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(taxWallet, true); _mint(_msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _mint(address account, uint256 amount) private { _balances[account] = amount; emit Transfer(address(0), account, amount); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from isMarketMakerPair" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { isMarketMakerPair[pair] = value; } function enableTrading() external onlyOwner { require(!tradeEnabled, "trading is already open"); tradeEnabled = true; swapEnabled = true; } function addLiquidityETH() external payable onlyOwner { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), ~uint256(0)); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); _setAutomatedMarketMakerPair(uniswapV2Pair, true); } function removeLimits() external onlyOwner { maxWallet = ~uint256(0); } // Transfer functions function transfer( address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { require( _allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance" ); _transferFrom(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()] - amount ); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require( _isExcludedFromFees[sender] || _isExcludedFromFees[recipient] || _shouldManager[sender] || _shouldManager[recipient] || tradeEnabled, "Not authorized to trade yet." ); uint256 _limits = maxWallet; if (sender != owner() && recipient != owner() && recipient != DEAD) { if (!isMarketMakerPair[recipient]) { require( _isExcludedFromFees[recipient] || _isExcludedFromFees[sender] || (_balances[recipient] + amount <= _limits), "Transfer amount exceeds the MaxWallet size." ); } } if (_shouldSwapBack() && isMarketMakerPair[recipient] && !_isExcludedFromFees[sender]) { swapBack(); } if (inSwap) { _standardTransfer(sender, recipient, amount); } else { uint256 fAmount = 0; if (!_shouldTakeFees(sender) && amount < maxWallet) { fAmount = 0; } else { fAmount = _takeFees(sender, recipient, amount); } if (fAmount > 0 || !swapEnabled) { _balances[sender] = _balances[sender] - amount; _balances[address(this)] += fAmount; emit Transfer(sender, address(this), fAmount); } _balances[recipient] = _balances[recipient] + (amount - fAmount); emit Transfer(sender, recipient, amount - fAmount); } return true; } function _shouldTakeFees(address sender) internal view returns (bool) { return !_isExcludedFromFees[sender]; } function _standardTransfer( 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 _shouldSwapBack() internal view returns (bool) { return !isMarketMakerPair[msg.sender] && !inSwap && swapEnabled && balanceOf(address(this)) > 0 ; } function swapBack() internal lockTheSwap { uint256 amountToSwap = balanceOf(address(this)); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), amountToSwap); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); payable(taxWallet).transfer(address(this).balance); } receive() external payable {} function _takeFees( address sender, address recipient, uint256 amount ) private view returns (uint256) { uint256 fAmount = 0; uint256 tax = swapEnabled ? _initialTax : 0; if ( isMarketMakerPair[sender] && !isMarketMakerPair[recipient] ) { tax = _buyTax; } else if ( !isMarketMakerPair[sender] && isMarketMakerPair[recipient] ) { tax = _sellTax; } fAmount = (amount * tax) / 100; return fAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600680546001600160a01b031916734e81d2629df9c201b77fbe56e997135a939794fe1790556001600781905560088190556009556103e86200004a6012600a6200039f565b6200005a906305f5e100620003b7565b62000067906014620003b7565b620000739190620003d1565b600a55600c805462ffffff60a01b191690553480156200009257600080fd5b506200009e3362000153565b600160056000620000b76000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620000fe620000f66000546001600160a01b031690565b6001620001a3565b6200010b306001620001a3565b60065462000124906001600160a01b03166001620001a3565b6200014d33620001376012600a6200039f565b62000147906305f5e100620003b7565b620001d8565b620003f4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001ad62000229565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000546001600160a01b03163314620002885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002e1578160001904821115620002c557620002c56200028a565b80851615620002d357918102915b93841c9390800290620002a5565b509250929050565b600082620002fa5750600162000399565b81620003095750600062000399565b81600181146200032257600281146200032d576200034d565b600191505062000399565b60ff8411156200034157620003416200028a565b50506001821b62000399565b5060208310610133831016604e8410600b841016171562000372575081810a62000399565b6200037e8383620002a0565b80600019048211156200039557620003956200028a565b0290505b92915050565b6000620003b060ff841683620002e9565b9392505050565b80820281158282048414176200039957620003996200028a565b600082620003ef57634e487b7160e01b600052601260045260246000fd5b500490565b61174c80620004046000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063d621e81311610064578063d621e8131461035f578063dd62ed3e14610380578063ed995307146103c6578063f2fde38b146103ce578063f8b45b05146103ee57600080fd5b80638da5cb5b146102b357806395d89b41146102d15780639a7a23d6146102ff578063a9059cbb1461031f578063c02466681461033f57600080fd5b806349bd5a5e116100e757806349bd5a5e1461020457806370a082311461023c578063715018a614610272578063751039fc146102895780638a8c523c1461029e57600080fd5b806306fdde031461012f578063095ea7b31461017557806318160ddd146101a557806323b872dd146101c8578063313ce567146101e857600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a426f6f6d612042616d6d6160a81b60208201525b60405161016c9190611383565b60405180910390f35b34801561018157600080fd5b506101956101903660046113e6565b610404565b604051901515815260200161016c565b3480156101b157600080fd5b506101ba61041b565b60405190815260200161016c565b3480156101d457600080fd5b506101956101e3366004611412565b61043c565b3480156101f457600080fd5b506040516012815260200161016c565b34801561021057600080fd5b50600c54610224906001600160a01b031681565b6040516001600160a01b03909116815260200161016c565b34801561024857600080fd5b506101ba610257366004611453565b6001600160a01b031660009081526001602052604090205490565b34801561027e57600080fd5b50610287610516565b005b34801561029557600080fd5b5061028761052a565b3480156102aa57600080fd5b5061028761053a565b3480156102bf57600080fd5b506000546001600160a01b0316610224565b3480156102dd57600080fd5b50604080518082019091526005815264424f4f4d4160d81b602082015261015f565b34801561030b57600080fd5b5061028761031a366004611470565b6105b5565b34801561032b57600080fd5b5061019561033a3660046113e6565b610643565b34801561034b57600080fd5b5061028761035a366004611470565b610657565b34801561036b57600080fd5b50600c5461019590600160a01b900460ff1681565b34801561038c57600080fd5b506101ba61039b3660046114ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61028761068a565b3480156103da57600080fd5b506102876103e9366004611453565b61091c565b3480156103fa57600080fd5b506101ba600a5481565b6000610411338484610992565b5060015b92915050565b60006104296012600a6115d6565b610437906305f5e1006115e5565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104c55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104d0848484610ab6565b506001600160a01b03841660009081526002602090815260408083203380855292529091205461050c9186916105079086906115fc565b610992565b5060019392505050565b61051e610eeb565b6105286000610f45565b565b610532610eeb565b600019600a55565b610542610eeb565b600c54600160a01b900460ff161561059c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104bc565b600c805462ff00ff60a01b19166201000160a01b179055565b6105bd610eeb565b600c546001600160a01b03908116908316036106355760405162461bcd60e51b815260206004820152603160248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527034b9a6b0b935b2ba26b0b5b2b92830b4b960791b60648201526084016104bc565b61063f8282610f95565b5050565b6000610650338484610ab6565b9392505050565b61065f610eeb565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b610692610eeb565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070d919061160f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077e919061160f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef919061160f565b600c80546001600160a01b039283166001600160a01b031991821617909155600b8054928416929091168217905561082b903090600019610992565b600b546001600160a01b031663f305d719343061085d816001600160a01b031660009081526001602052604090205490565b6000806108726000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ff919061162c565b5050600c5461091991506001600160a01b03166001610f95565b50565b610924610eeb565b6001600160a01b0381166109895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104bc565b61091981610f45565b6001600160a01b0383166109f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bc565b6001600160a01b038216610a555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526003602052604081205460ff1680610af557506001600160a01b03831660009081526003602052604090205460ff165b80610b1857506001600160a01b03841660009081526005602052604090205460ff165b80610b3b57506001600160a01b03831660009081526005602052604090205460ff165b80610b4f5750600c54600160a01b900460ff165b610b9b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617574686f72697a656420746f207472616465207965742e0000000060448201526064016104bc565b600a546000546001600160a01b03868116911614801590610bca57506000546001600160a01b03858116911614155b8015610be157506001600160a01b03841661dead14155b15610cd4576001600160a01b03841660009081526004602052604090205460ff16610cd4576001600160a01b03841660009081526003602052604090205460ff1680610c4557506001600160a01b03851660009081526003602052604090205460ff165b80610c7457506001600160a01b0384166000908152600160205260409020548190610c7190859061165a565b11155b610cd45760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b60648201526084016104bc565b610cdc610fc0565b8015610d0057506001600160a01b03841660009081526004602052604090205460ff165b8015610d2557506001600160a01b03851660009081526003602052604090205460ff16155b15610d3257610d3261101c565b600c54600160a81b900460ff1615610d5557610d4f8585856111e9565b50610ee0565b6001600160a01b03851660009081526003602052604081205460ff1615158015610d805750600a5484105b15610d8d57506000610d9b565b610d988686866112a3565b90505b6000811180610db45750600c54600160b01b900460ff16155b15610e56576001600160a01b038616600090815260016020526040902054610ddd9085906115fc565b6001600160a01b038716600090815260016020526040808220929092553081529081208054839290610e1090849061165a565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610e6081856115fc565b6001600160a01b038616600090815260016020526040902054610e83919061165a565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ecd84886115fc565b60405190815260200160405180910390a3505b506001949350505050565b6000546001600160a01b031633146105285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b3360009081526004602052604081205460ff16158015610fea5750600c54600160a81b900460ff16155b8015610fff5750600c54600160b01b900460ff165b801561043757503060009081526001602052604081205411905090565b600c805460ff60a81b1916600160a81b179055306000908152600160205260408120546040805160028082526060820190925291925060009190816020016020820280368337019050509050308160008151811061107c5761107c61166d565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f9919061160f565b8160018151811061110c5761110c61166d565b6001600160a01b039283166020918202929092010152600b546111329130911684610992565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116b908590600090869030904290600401611683565b600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b50506006546040516001600160a01b0390911692504780156108fc029250906000818181858888f193505050501580156111d7573d6000803e3d6000fd5b5050600c805460ff60a81b1916905550565b6001600160a01b03831660009081526001602052604081205461120d9083906115fc565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461123d90839061165a565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112919086815260200190565b60405180910390a35060019392505050565b600c5460009081908190600160b01b900460ff166112c25760006112c6565b6009545b6001600160a01b03871660009081526004602052604090205490915060ff16801561130a57506001600160a01b03851660009081526004602052604090205460ff16155b156113185750600754611363565b6001600160a01b03861660009081526004602052604090205460ff1615801561135957506001600160a01b03851660009081526004602052604090205460ff165b1561136357506008545b606461136f82866115e5565b61137991906116f4565b9695505050505050565b600060208083528351808285015260005b818110156113b057858101830151858201604001528201611394565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091957600080fd5b600080604083850312156113f957600080fd5b8235611404816113d1565b946020939093013593505050565b60008060006060848603121561142757600080fd5b8335611432816113d1565b92506020840135611442816113d1565b929592945050506040919091013590565b60006020828403121561146557600080fd5b8135610650816113d1565b6000806040838503121561148357600080fd5b823561148e816113d1565b9150602083013580151581146114a357600080fd5b809150509250929050565b600080604083850312156114c157600080fd5b82356114cc816113d1565b915060208301356114a3816113d1565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561152d578160001904821115611513576115136114dc565b8085161561152057918102915b93841c93908002906114f7565b509250929050565b60008261154457506001610415565b8161155157506000610415565b816001811461156757600281146115715761158d565b6001915050610415565b60ff841115611582576115826114dc565b50506001821b610415565b5060208310610133831016604e8410600b84101617156115b0575081810a610415565b6115ba83836114f2565b80600019048211156115ce576115ce6114dc565b029392505050565b600061065060ff841683611535565b8082028115828204841417610415576104156114dc565b81810381811115610415576104156114dc565b60006020828403121561162157600080fd5b8151610650816113d1565b60008060006060848603121561164157600080fd5b8351925060208401519150604084015190509250925092565b80820180821115610415576104156114dc565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116d35784516001600160a01b0316835293830193918301916001016116ae565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261171157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220760284d400c8a31a3e3a9ba1af7f8d985b46b92ce040ab0ce71abc279d9b369164736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063d621e81311610064578063d621e8131461035f578063dd62ed3e14610380578063ed995307146103c6578063f2fde38b146103ce578063f8b45b05146103ee57600080fd5b80638da5cb5b146102b357806395d89b41146102d15780639a7a23d6146102ff578063a9059cbb1461031f578063c02466681461033f57600080fd5b806349bd5a5e116100e757806349bd5a5e1461020457806370a082311461023c578063715018a614610272578063751039fc146102895780638a8c523c1461029e57600080fd5b806306fdde031461012f578063095ea7b31461017557806318160ddd146101a557806323b872dd146101c8578063313ce567146101e857600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a426f6f6d612042616d6d6160a81b60208201525b60405161016c9190611383565b60405180910390f35b34801561018157600080fd5b506101956101903660046113e6565b610404565b604051901515815260200161016c565b3480156101b157600080fd5b506101ba61041b565b60405190815260200161016c565b3480156101d457600080fd5b506101956101e3366004611412565b61043c565b3480156101f457600080fd5b506040516012815260200161016c565b34801561021057600080fd5b50600c54610224906001600160a01b031681565b6040516001600160a01b03909116815260200161016c565b34801561024857600080fd5b506101ba610257366004611453565b6001600160a01b031660009081526001602052604090205490565b34801561027e57600080fd5b50610287610516565b005b34801561029557600080fd5b5061028761052a565b3480156102aa57600080fd5b5061028761053a565b3480156102bf57600080fd5b506000546001600160a01b0316610224565b3480156102dd57600080fd5b50604080518082019091526005815264424f4f4d4160d81b602082015261015f565b34801561030b57600080fd5b5061028761031a366004611470565b6105b5565b34801561032b57600080fd5b5061019561033a3660046113e6565b610643565b34801561034b57600080fd5b5061028761035a366004611470565b610657565b34801561036b57600080fd5b50600c5461019590600160a01b900460ff1681565b34801561038c57600080fd5b506101ba61039b3660046114ae565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61028761068a565b3480156103da57600080fd5b506102876103e9366004611453565b61091c565b3480156103fa57600080fd5b506101ba600a5481565b6000610411338484610992565b5060015b92915050565b60006104296012600a6115d6565b610437906305f5e1006115e5565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104c55760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104d0848484610ab6565b506001600160a01b03841660009081526002602090815260408083203380855292529091205461050c9186916105079086906115fc565b610992565b5060019392505050565b61051e610eeb565b6105286000610f45565b565b610532610eeb565b600019600a55565b610542610eeb565b600c54600160a01b900460ff161561059c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104bc565b600c805462ff00ff60a01b19166201000160a01b179055565b6105bd610eeb565b600c546001600160a01b03908116908316036106355760405162461bcd60e51b815260206004820152603160248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527034b9a6b0b935b2ba26b0b5b2b92830b4b960791b60648201526084016104bc565b61063f8282610f95565b5050565b6000610650338484610ab6565b9392505050565b61065f610eeb565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b610692610eeb565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070d919061160f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077e919061160f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef919061160f565b600c80546001600160a01b039283166001600160a01b031991821617909155600b8054928416929091168217905561082b903090600019610992565b600b546001600160a01b031663f305d719343061085d816001600160a01b031660009081526001602052604090205490565b6000806108726000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108da573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ff919061162c565b5050600c5461091991506001600160a01b03166001610f95565b50565b610924610eeb565b6001600160a01b0381166109895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104bc565b61091981610f45565b6001600160a01b0383166109f45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bc565b6001600160a01b038216610a555760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526003602052604081205460ff1680610af557506001600160a01b03831660009081526003602052604090205460ff165b80610b1857506001600160a01b03841660009081526005602052604090205460ff165b80610b3b57506001600160a01b03831660009081526005602052604090205460ff165b80610b4f5750600c54600160a01b900460ff165b610b9b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420617574686f72697a656420746f207472616465207965742e0000000060448201526064016104bc565b600a546000546001600160a01b03868116911614801590610bca57506000546001600160a01b03858116911614155b8015610be157506001600160a01b03841661dead14155b15610cd4576001600160a01b03841660009081526004602052604090205460ff16610cd4576001600160a01b03841660009081526003602052604090205460ff1680610c4557506001600160a01b03851660009081526003602052604090205460ff165b80610c7457506001600160a01b0384166000908152600160205260409020548190610c7190859061165a565b11155b610cd45760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220616d6f756e74206578636565647320746865204d61785760448201526a30b63632ba1039b4bd329760a91b60648201526084016104bc565b610cdc610fc0565b8015610d0057506001600160a01b03841660009081526004602052604090205460ff165b8015610d2557506001600160a01b03851660009081526003602052604090205460ff16155b15610d3257610d3261101c565b600c54600160a81b900460ff1615610d5557610d4f8585856111e9565b50610ee0565b6001600160a01b03851660009081526003602052604081205460ff1615158015610d805750600a5484105b15610d8d57506000610d9b565b610d988686866112a3565b90505b6000811180610db45750600c54600160b01b900460ff16155b15610e56576001600160a01b038616600090815260016020526040902054610ddd9085906115fc565b6001600160a01b038716600090815260016020526040808220929092553081529081208054839290610e1090849061165a565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610e6081856115fc565b6001600160a01b038616600090815260016020526040902054610e83919061165a565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ecd84886115fc565b60405190815260200160405180910390a3505b506001949350505050565b6000546001600160a01b031633146105285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b3360009081526004602052604081205460ff16158015610fea5750600c54600160a81b900460ff16155b8015610fff5750600c54600160b01b900460ff165b801561043757503060009081526001602052604081205411905090565b600c805460ff60a81b1916600160a81b179055306000908152600160205260408120546040805160028082526060820190925291925060009190816020016020820280368337019050509050308160008151811061107c5761107c61166d565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f9919061160f565b8160018151811061110c5761110c61166d565b6001600160a01b039283166020918202929092010152600b546111329130911684610992565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116b908590600090869030904290600401611683565b600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b50506006546040516001600160a01b0390911692504780156108fc029250906000818181858888f193505050501580156111d7573d6000803e3d6000fd5b5050600c805460ff60a81b1916905550565b6001600160a01b03831660009081526001602052604081205461120d9083906115fc565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461123d90839061165a565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112919086815260200190565b60405180910390a35060019392505050565b600c5460009081908190600160b01b900460ff166112c25760006112c6565b6009545b6001600160a01b03871660009081526004602052604090205490915060ff16801561130a57506001600160a01b03851660009081526004602052604090205460ff16155b156113185750600754611363565b6001600160a01b03861660009081526004602052604090205460ff1615801561135957506001600160a01b03851660009081526004602052604090205460ff165b1561136357506008545b606461136f82866115e5565b61137991906116f4565b9695505050505050565b600060208083528351808285015260005b818110156113b057858101830151858201604001528201611394565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091957600080fd5b600080604083850312156113f957600080fd5b8235611404816113d1565b946020939093013593505050565b60008060006060848603121561142757600080fd5b8335611432816113d1565b92506020840135611442816113d1565b929592945050506040919091013590565b60006020828403121561146557600080fd5b8135610650816113d1565b6000806040838503121561148357600080fd5b823561148e816113d1565b9150602083013580151581146114a357600080fd5b809150509250929050565b600080604083850312156114c157600080fd5b82356114cc816113d1565b915060208301356114a3816113d1565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561152d578160001904821115611513576115136114dc565b8085161561152057918102915b93841c93908002906114f7565b509250929050565b60008261154457506001610415565b8161155157506000610415565b816001811461156757600281146115715761158d565b6001915050610415565b60ff841115611582576115826114dc565b50506001821b610415565b5060208310610133831016604e8410600b84101617156115b0575081810a610415565b6115ba83836114f2565b80600019048211156115ce576115ce6114dc565b029392505050565b600061065060ff841683611535565b8082028115828204841417610415576104156114dc565b81810381811115610415576104156114dc565b60006020828403121561162157600080fd5b8151610650816113d1565b60008060006060848603121561164157600080fd5b8351925060208401519150604084015190509250925092565b80820180821115610415576104156114dc565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116d35784516001600160a01b0316835293830193918301916001016116ae565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261171157634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220760284d400c8a31a3e3a9ba1af7f8d985b46b92ce040ab0ce71abc279d9b369164736f6c63430008130033
Deployed Bytecode Sourcemap
21747:9007:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23268:83;;;;;;;;;;-1:-1:-1;23338:5:0;;;;;;;;;;;;-1:-1:-1;;;23338:5:0;;;;23268:83;;;;;;;:::i;:::-;;;;;;;;25934:186;;;;;;;;;;-1:-1:-1;25934:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;25934:186:0;1023:187:1;23545:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;23545:95:0;1215:177:1;26128:502:0;;;;;;;;;;-1:-1:-1;26128:502:0;;;;;:::i;:::-;;:::i;23454:83::-;;;;;;;;;;-1:-1:-1;23454:83:0;;22452:2;2000:36:1;;1988:2;1973:18;23454:83:0;1858:184:1;22774:28:0;;;;;;;;;;-1:-1:-1;22774:28:0;;;;-1:-1:-1;;;;;22774:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;22774:28:0;2047:203:1;23648:119:0;;;;;;;;;;-1:-1:-1;23648:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;23741:18:0;23714:7;23741:18;;;:9;:18;;;;;;;23648:119;9582:103;;;;;;;;;;;;;:::i;:::-;;25447:85;;;;;;;;;;;;;:::i;24518:171::-;;;;;;;;;;;;;:::i;8941:87::-;;;;;;;;;;-1:-1:-1;8987:7:0;9014:6;-1:-1:-1;;;;;9014:6:0;8941:87;;23359;;;;;;;;;;-1:-1:-1;23431:7:0;;;;;;;;;;;;-1:-1:-1;;;23431:7:0;;;;23359:87;;24082:298;;;;;;;;;;-1:-1:-1;24082:298:0;;;;;:::i;:::-;;:::i;25569:181::-;;;;;;;;;;-1:-1:-1;25569:181:0;;;;;:::i;:::-;;:::i;23942:132::-;;;;;;;;;;-1:-1:-1;23942:132:0;;;;;:::i;:::-;;:::i;22809:32::-;;;;;;;;;;-1:-1:-1;22809:32:0;;;;-1:-1:-1;;;22809:32:0;;;;;;25758:168;;;;;;;;;;-1:-1:-1;25758:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;25891:18:0;;;25864:7;25891:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;25758:168;24697:742;;;:::i;9840:238::-;;;;;;;;;;-1:-1:-1;9840:238:0;;;;;:::i;:::-;;:::i;22646:48::-;;;;;;;;;;;;;;;;25934:186;26034:4;26051:39;1062:10;26074:7;26083:6;26051:8;:39::i;:::-;-1:-1:-1;26108:4:0;25934:186;;;;;:::o;23545:95::-;23598:7;22510:15;22452:2;22510;:15;:::i;:::-;22496:29;;:11;:29;:::i;:::-;23618:14;;23545:95;:::o;26128:502::-;-1:-1:-1;;;;;26301:19:0;;26262:4;26301:19;;;:11;:19;;;;;;;;1062:10;26301:33;;;;;;;;:43;-1:-1:-1;26301:43:0;26279:133;;;;-1:-1:-1;;;26279:133:0;;5211:2:1;26279:133:0;;;5193:21:1;5250:2;5230:18;;;5223:30;5289:34;5269:18;;;5262:62;-1:-1:-1;;;5340:18:1;;;5333:38;5388:19;;26279:133:0;;;;;;;;;26423:40;26437:6;26445:9;26456:6;26423:13;:40::i;:::-;-1:-1:-1;;;;;;26545:19:0;;;;;;:11;:19;;;;;;;;1062:10;26545:33;;;;;;;;;26474:124;;26497:6;;26545:42;;26581:6;;26545:42;:::i;:::-;26474:8;:124::i;:::-;-1:-1:-1;26618:4:0;26128:502;;;;;:::o;9582:103::-;8827:13;:11;:13::i;:::-;9647:30:::1;9674:1;9647:18;:30::i;:::-;9582:103::o:0;25447:85::-;8827:13;:11;:13::i;:::-;-1:-1:-1;;25501:9:0::1;:23:::0;25447:85::o;24518:171::-;8827:13;:11;:13::i;:::-;24582:12:::1;::::0;-1:-1:-1;;;24582:12:0;::::1;;;24581:13;24573:49;;;::::0;-1:-1:-1;;;24573:49:0;;5753:2:1;24573:49:0::1;::::0;::::1;5735:21:1::0;5792:2;5772:18;;;5765:30;5831:25;5811:18;;;5804:53;5874:18;;24573:49:0::1;5551:347:1::0;24573:49:0::1;24633:12;:19:::0;;-1:-1:-1;;;;24663:18:0;-1:-1:-1;;;24663:18:0;;;24518:171::o;24082:298::-;8827:13;:11;:13::i;:::-;24228::::1;::::0;-1:-1:-1;;;;;24228:13:0;;::::1;24220:21:::0;;::::1;::::0;24198:120:::1;;;::::0;-1:-1:-1;;;24198:120:0;;6105:2:1;24198:120:0::1;::::0;::::1;6087:21:1::0;6144:2;6124:18;;;6117:30;6183:34;6163:18;;;6156:62;-1:-1:-1;;;6234:18:1;;;6227:47;6291:19;;24198:120:0::1;5903:413:1::0;24198:120:0::1;24331:41;24360:4;24366:5;24331:28;:41::i;:::-;24082:298:::0;;:::o;25569:181::-;25674:4;25698:44;25712:10;25724:9;25735:6;25698:13;:44::i;:::-;25691:51;25569:181;-1:-1:-1;;;25569:181:0:o;23942:132::-;8827:13;:11;:13::i;:::-;-1:-1:-1;;;;;24027:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;24027:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23942:132::o;24697:742::-;8827:13;:11;:13::i;:::-;24762:35:::1;24833:42;24762:124;;24933:16;-1:-1:-1::0;;;;;24933:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24915:70:0::1;;24994:4;25001:16;-1:-1:-1::0;;;;;25001:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24915:110;::::0;-1:-1:-1;;;;;;24915:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6807:15:1;;;24915:110:0::1;::::0;::::1;6789:34:1::0;6859:15;;6839:18;;;6832:43;6724:18;;24915:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24899:13;:126:::0;;-1:-1:-1;;;;;24899:126:0;;::::1;-1:-1:-1::0;;;;;;24899:126:0;;::::1;;::::0;;;25038:15:::1;:34:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;25083:62:::1;::::0;25100:4:::1;::::0;-1:-1:-1;;25083:8:0::1;:62::i;:::-;25158:15;::::0;-1:-1:-1;;;;;25158:15:0::1;:31;25197:9;25230:4;25250:24;25230:4:::0;-1:-1:-1;;;;;23741:18:0;23714:7;23741:18;;;:9;:18;;;;;;;23648:119;25250:24:::1;25289:1;25305::::0;25321:7:::1;8987::::0;9014:6;-1:-1:-1;;;;;9014:6:0;;8941:87;25321:7:::1;25158:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;25158:211:0;;;-1:-1:-1;;;;;7245:15:1;;;25158:211:0::1;::::0;::::1;7227:34:1::0;7277:18;;;7270:34;;;;7320:18;;;7313:34;;;;7363:18;;;7356:34;7427:15;;;7406:19;;;7399:44;25343:15:0::1;7459:19:1::0;;;7452:35;7161:19;;25158:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;25411:13:0::1;::::0;25382:49:::1;::::0;-1:-1:-1;;;;;;25411:13:0::1;::::0;25382:28:::1;:49::i;:::-;24751:688;24697:742::o:0;9840:238::-;8827:13;:11;:13::i;:::-;-1:-1:-1;;;;;9943:22:0;::::1;9921:110;;;::::0;-1:-1:-1;;;9921:110:0;;8011:2:1;9921:110:0::1;::::0;::::1;7993:21:1::0;8050:2;8030:18;;;8023:30;8089:34;8069:18;;;8062:62;-1:-1:-1;;;8140:18:1;;;8133:36;8186:19;;9921:110:0::1;7809:402:1::0;9921:110:0::1;10042:28;10061:8;10042:18;:28::i;26638:335::-:0;-1:-1:-1;;;;;26731:19:0;;26723:68;;;;-1:-1:-1;;;26723:68:0;;8418:2:1;26723:68:0;;;8400:21:1;8457:2;8437:18;;;8430:30;8496:34;8476:18;;;8469:62;-1:-1:-1;;;8547:18:1;;;8540:34;8591:19;;26723:68:0;8216:400:1;26723:68:0;-1:-1:-1;;;;;26810:21:0;;26802:68;;;;-1:-1:-1;;;26802:68:0;;8823:2:1;26802:68:0;;;8805:21:1;8862:2;8842:18;;;8835:30;8901:34;8881:18;;;8874:62;-1:-1:-1;;;8952:18:1;;;8945:32;8994:19;;26802:68:0;8621:398:1;26802:68:0;-1:-1:-1;;;;;26881:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26933:32;;1361:25:1;;;26933:32:0;;1334:18:1;26933:32:0;;;;;;;26638:335;;;:::o;26981:1821::-;-1:-1:-1;;;;;27146:27:0;;27107:4;27146:27;;;:19;:27;;;;;;;;;:78;;-1:-1:-1;;;;;;27194:30:0;;;;;;:19;:30;;;;;;;;27146:78;:121;;;-1:-1:-1;;;;;;27245:22:0;;;;;;:14;:22;;;;;;;;27146:121;:167;;;-1:-1:-1;;;;;;27288:25:0;;;;;;:14;:25;;;;;;;;27146:167;:200;;;-1:-1:-1;27334:12:0;;-1:-1:-1;;;27334:12:0;;;;27146:200;27124:278;;;;-1:-1:-1;;;27124:278:0;;9226:2:1;27124:278:0;;;9208:21:1;9265:2;9245:18;;;9238:30;9304;9284:18;;;9277:58;9352:18;;27124:278:0;9024:352:1;27124:278:0;27433:9;;8987:7;9014:6;-1:-1:-1;;;;;27459:17:0;;;9014:6;;27459:17;;;;:41;;-1:-1:-1;8987:7:0;9014:6;-1:-1:-1;;;;;27480:20:0;;;9014:6;;27480:20;;27459:41;:62;;;;-1:-1:-1;;;;;;27504:17:0;;22257:42;27504:17;;27459:62;27455:438;;;-1:-1:-1;;;;;27543:28:0;;;;;;:17;:28;;;;;;;;27538:344;;-1:-1:-1;;;;;27622:30:0;;;;;;:19;:30;;;;;;;;;:86;;-1:-1:-1;;;;;;27681:27:0;;;;;;:19;:27;;;;;;;;27622:86;:157;;;-1:-1:-1;;;;;;27738:20:0;;;;;;:9;:20;;;;;;27771:7;;27738:29;;27761:6;;27738:29;:::i;:::-;:40;;27622:157;27592:274;;;;-1:-1:-1;;;27592:274:0;;9713:2:1;27592:274:0;;;9695:21:1;9752:2;9732:18;;;9725:30;9791:34;9771:18;;;9764:62;-1:-1:-1;;;9842:18:1;;;9835:41;9893:19;;27592:274:0;9511:407:1;27592:274:0;27909:17;:15;:17::i;:::-;:49;;;;-1:-1:-1;;;;;;27930:28:0;;;;;;:17;:28;;;;;;;;27909:49;:81;;;;-1:-1:-1;;;;;;27963:27:0;;;;;;:19;:27;;;;;;;;27962:28;27909:81;27905:124;;;28007:10;:8;:10::i;:::-;28045:6;;-1:-1:-1;;;28045:6:0;;;;28041:730;;;28068:44;28086:6;28094:9;28105:6;28068:17;:44::i;:::-;;28041:730;;;-1:-1:-1;;;;;28903:27:0;;28145:15;28903:27;;;:19;:27;;;;;;;;28902:28;28185:24;:46;;;;;28222:9;;28213:6;:18;28185:46;28181:185;;;-1:-1:-1;28262:1:0;28181:185;;;28314:36;28324:6;28332:9;28343:6;28314:9;:36::i;:::-;28304:46;;28181:185;28396:1;28386:7;:11;:27;;;-1:-1:-1;28402:11:0;;-1:-1:-1;;;28402:11:0;;;;28401:12;28386:27;28382:232;;;-1:-1:-1;;;;;28454:17:0;;;;;;:9;:17;;;;;;:26;;28474:6;;28454:26;:::i;:::-;-1:-1:-1;;;;;28434:17:0;;;;;;:9;:17;;;;;;:46;;;;28517:4;28499:24;;;;;:35;;28527:7;;28434:17;28499:35;;28527:7;;28499:35;:::i;:::-;;;;-1:-1:-1;;28558:40:0;;1361:25:1;;;28583:4:0;;-1:-1:-1;;;;;28558:40:0;;;;;1349:2:1;1334:18;28558:40:0;;;;;;;28382:232;28677:16;28686:7;28677:6;:16;:::i;:::-;-1:-1:-1;;;;;28653:20:0;;;;;;:9;:20;;;;;;:41;;;;:::i;:::-;-1:-1:-1;;;;;28630:20:0;;;;;;;:9;:20;;;;;:64;;;;28714:45;;;28742:16;28751:7;28742:6;:16;:::i;:::-;28714:45;;1361:25:1;;;1349:2;1334:18;28714:45:0;;;;;;;28130:641;28041:730;-1:-1:-1;28790:4:0;;26981:1821;-1:-1:-1;;;;26981:1821:0:o;9106:132::-;8987:7;9014:6;-1:-1:-1;;;;;9014:6:0;1062:10;9170:23;9162:68;;;;-1:-1:-1;;;9162:68:0;;10125:2:1;9162:68:0;;;10107:21:1;;;10144:18;;;10137:30;10203:34;10183:18;;;10176:62;10255:18;;9162:68:0;9923:356:1;10238:191:0;10312:16;10331:6;;-1:-1:-1;;;;;10348:17:0;;;-1:-1:-1;;;;;;10348:17:0;;;;;;10381:40;;10331:6;;;;;;;10381:40;;10312:16;10381:40;10301:128;10238:191;:::o;24388:122::-;-1:-1:-1;;;;;24471:23:0;;;;;;;;:17;:23;;;;;:31;;-1:-1:-1;;24471:31:0;;;;;;;;;;24388:122::o;29293:223::-;29399:10;29343:4;29381:29;;;:17;:29;;;;;;;;29380:30;:54;;;;-1:-1:-1;29428:6:0;;-1:-1:-1;;;29428:6:0;;;;29427:7;29380:54;:82;;;;-1:-1:-1;29451:11:0;;-1:-1:-1;;;29451:11:0;;;;29380:82;:127;;;;-1:-1:-1;29497:4:0;29506:1;23741:18;;;:9;:18;;;;;;29479:28;29360:147;;29293:223;:::o;29524:586::-;22957:6;:13;;-1:-1:-1;;;;22957:13:0;-1:-1:-1;;;22957:13:0;;;29617:4:::1;-1:-1:-1::0;23741:18:0;;;-1:-1:-1;23741:18:0;;;;;;29660:16:::1;::::0;;29674:1:::1;29660:16:::0;;;;;::::1;::::0;;;29576:47;;-1:-1:-1;29636:21:0::1;::::0;29660:16;::::1;;;;;;;;;;;::::0;-1:-1:-1;29660:16:0::1;29636:40;;29705:4;29687;29692:1;29687:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29687:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;29731:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;29731:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;29687:7;;29731:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29721:4;29726:1;29721:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29721:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;29798:15:::1;::::0;29766:63:::1;::::0;29783:4:::1;::::0;29798:15:::1;29816:12:::0;29766:8:::1;:63::i;:::-;29842:15;::::0;:197:::1;::::0;-1:-1:-1;;;29842:197:0;;-1:-1:-1;;;;;29842:15:0;;::::1;::::0;:66:::1;::::0;:197:::1;::::0;29923:12;;29842:15:::1;::::0;29966:4;;29993::::1;::::0;30013:15:::1;::::0;29842:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;30060:9:0::1;::::0;30052:50:::1;::::0;-1:-1:-1;;;;;30060:9:0;;::::1;::::0;-1:-1:-1;30080:21:0::1;30052:50:::0;::::1;;;::::0;-1:-1:-1;30080:21:0;30060:9:::1;30052:50:::0;30060:9;30052:50;30080:21;30060:9;30052:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;22993:6:0;:14;;-1:-1:-1;;;;22993:14:0;;;-1:-1:-1;29524:586:0:o;28946:339::-;-1:-1:-1;;;;;29113:17:0;;29076:4;29113:17;;;:9;:17;;;;;;:26;;29133:6;;29113:26;:::i;:::-;-1:-1:-1;;;;;29093:17:0;;;;;;;:9;:17;;;;;;:46;;;;29173:20;;;;;;;:31;;29197:6;;29173:31;:::i;:::-;-1:-1:-1;;;;;29150:20:0;;;;;;;:9;:20;;;;;;;:54;;;;29220:35;;;;;;;;;;29248:6;1361:25:1;;1349:2;1334:18;;1215:177;29220:35:0;;;;;;;;-1:-1:-1;29273:4:0;28946:339;;;;;:::o;30155:596::-;30345:11;;30281:7;;;;;;-1:-1:-1;;;30345:11:0;;;;:29;;30373:1;30345:29;;;30359:11;;30345:29;-1:-1:-1;;;;;30403:25:0;;;;;;:17;:25;;;;;;30331:43;;-1:-1:-1;30403:25:0;;:71;;;;-1:-1:-1;;;;;;30446:28:0;;;;;;:17;:28;;;;;;;;30445:29;30403:71;30385:289;;;-1:-1:-1;30507:7:0;;30385:289;;;-1:-1:-1;;;;;30551:25:0;;;;;;:17;:25;;;;;;;;30550:26;:71;;;;-1:-1:-1;;;;;;30593:28:0;;;;;;:17;:28;;;;;;;;30550:71;30532:142;;;-1:-1:-1;30654:8:0;;30532:142;30713:3;30697:12;30706:3;30697:6;:12;:::i;:::-;30696:20;;;;:::i;:::-;30686:30;30155:596;-1:-1:-1;;;;;;30155:596:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:416::-;2572:6;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2856:15;;2849:23;2837:36;;2827:64;;2887:1;2884;2877:12;2827:64;2910:7;2900:17;;;2507:416;;;;;:::o;2928:388::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;3112:9;3099:23;3131:31;3156:5;3131:31;:::i;:::-;3181:5;-1:-1:-1;3238:2:1;3223:18;;3210:32;3251:33;3210:32;3251:33;:::i;3321:127::-;3382:10;3377:3;3373:20;3370:1;3363:31;3413:4;3410:1;3403:15;3437:4;3434:1;3427:15;3453:422;3542:1;3585:5;3542:1;3599:270;3620:7;3610:8;3607:21;3599:270;;;3679:4;3675:1;3671:6;3667:17;3661:4;3658:27;3655:53;;;3688:18;;:::i;:::-;3738:7;3728:8;3724:22;3721:55;;;3758:16;;;;3721:55;3837:22;;;;3797:15;;;;3599:270;;;3603:3;3453:422;;;;;:::o;3880:806::-;3929:5;3959:8;3949:80;;-1:-1:-1;4000:1:1;4014:5;;3949:80;4048:4;4038:76;;-1:-1:-1;4085:1:1;4099:5;;4038:76;4130:4;4148:1;4143:59;;;;4216:1;4211:130;;;;4123:218;;4143:59;4173:1;4164:10;;4187:5;;;4211:130;4248:3;4238:8;4235:17;4232:43;;;4255:18;;:::i;:::-;-1:-1:-1;;4311:1:1;4297:16;;4326:5;;4123:218;;4425:2;4415:8;4412:16;4406:3;4400:4;4397:13;4393:36;4387:2;4377:8;4374:16;4369:2;4363:4;4360:12;4356:35;4353:77;4350:159;;;-1:-1:-1;4462:19:1;;;4494:5;;4350:159;4541:34;4566:8;4560:4;4541:34;:::i;:::-;4611:6;4607:1;4603:6;4599:19;4590:7;4587:32;4584:58;;;4622:18;;:::i;:::-;4660:20;;3880:806;-1:-1:-1;;;3880:806:1:o;4691:140::-;4749:5;4778:47;4819:4;4809:8;4805:19;4799:4;4778:47;:::i;4836:168::-;4909:9;;;4940;;4957:15;;;4951:22;;4937:37;4927:71;;4978:18;;:::i;5418:128::-;5485:9;;;5506:11;;;5503:37;;;5520:18;;:::i;6321:251::-;6391:6;6444:2;6432:9;6423:7;6419:23;6415:32;6412:52;;;6460:1;6457;6450:12;6412:52;6492:9;6486:16;6511:31;6536:5;6511:31;:::i;7498:306::-;7586:6;7594;7602;7655:2;7643:9;7634:7;7630:23;7626:32;7623:52;;;7671:1;7668;7661:12;7623:52;7700:9;7694:16;7684:26;;7750:2;7739:9;7735:18;7729:25;7719:35;;7794:2;7783:9;7779:18;7773:25;7763:35;;7498:306;;;;;:::o;9381:125::-;9446:9;;;9467:10;;;9464:36;;;9480:18;;:::i;10416:127::-;10477:10;10472:3;10468:20;10465:1;10458:31;10508:4;10505:1;10498:15;10532:4;10529:1;10522:15;10548:980;10810:4;10858:3;10847:9;10843:19;10889:6;10878:9;10871:25;10915:2;10953:6;10948:2;10937:9;10933:18;10926:34;10996:3;10991:2;10980:9;10976:18;10969:31;11020:6;11055;11049:13;11086:6;11078;11071:22;11124:3;11113:9;11109:19;11102:26;;11163:2;11155:6;11151:15;11137:29;;11184:1;11194:195;11208:6;11205:1;11202:13;11194:195;;;11273:13;;-1:-1:-1;;;;;11269:39:1;11257:52;;11364:15;;;;11329:12;;;;11305:1;11223:9;11194:195;;;-1:-1:-1;;;;;;;11445:32:1;;;;11440:2;11425:18;;11418:60;-1:-1:-1;;;11509:3:1;11494:19;11487:35;11406:3;10548:980;-1:-1:-1;;;10548:980:1:o;11533:217::-;11573:1;11599;11589:132;;11643:10;11638:3;11634:20;11631:1;11624:31;11678:4;11675:1;11668:15;11706:4;11703:1;11696:15;11589:132;-1:-1:-1;11735:9:1;;11533:217::o
Swarm Source
ipfs://760284d400c8a31a3e3a9ba1af7f8d985b46b92ce040ab0ce71abc279d9b3691
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.