Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000,000 TDG2.0
Holders
134
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
61,969,282,916.792559421328065846 TDG2.0Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TDG2
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-27 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.1; interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } function functionCall( address target, bytes memory data ) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue( target, data, value, "Address: low-level call with value failed" ); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require( address(this).balance >= value, "Address: insufficient balance for call" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return verifyCallResult(success, returndata, errorMessage); } function functionStaticCall( address target, bytes memory data ) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall( address target, bytes memory data ) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface ISwapPair { function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface ISwapFactory { function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); } interface ISwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut( uint256 amountIn, address[] calldata path ) external view returns (uint256[] memory amounts); function getAmountsIn( uint256 amountOut, address[] calldata path ) external view returns (uint256[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ERC20 is IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; uint256 private _totalCirculation; uint256 private _minTotalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function totalCirculation() public view virtual returns (uint256) { return _totalCirculation; } function minTotalSupply() public view virtual returns (uint256) { return _minTotalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = msg.sender; _transfer(owner, to, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = msg.sender; _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = msg.sender; _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = msg.sender; _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { address owner = msg.sender; uint256 currentAllowance = _allowances[owner][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address recipient, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); address to = recipient; if (address(1) == recipient) to = address(0); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _totalCirculation += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burnSafe( address account, uint256 amount ) internal virtual returns (bool) { require(account != address(0), "ERC20: burn from the zero address"); if (_totalCirculation > _minTotalSupply + amount) { _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require( accountBalance >= amount, "ERC20: burn amount exceeds balance" ); unchecked { _balances[account] = accountBalance - amount; _balances[address(0)] += amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); return true; } return false; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; _balances[address(0)] += amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual { if (to == address(0) && _totalCirculation >= amount) { _totalCirculation -= amount; } } function _setMinTotalSupply(uint256 amount) internal { _minTotalSupply = amount; } } contract Ownable { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract TDG2 is ERC20, Ownable { using Address for address; mapping(address => bool) public isFeeExempt; uint private _swapAutoMin = 1000e18; uint private _buyFee = 10; uint private _saleFee = 10; uint private _startTime; address public manager; address public market; address public openAdd; address public swapPair; ISwapRouter public swapRouter; bool _inSwapAndLiquify; modifier lockTheSwap() { _inSwapAndLiquify = true; _; _inSwapAndLiquify = false; } constructor() ERC20("TDG2.0", "TDG2.0") { address recieve = 0xe37a5bE94120dFADA17D5F8030E75E278F709B6A; manager = 0x9B224d4D861DD0700213cda339C00eE585Aee45E; market = 0xb67479296319cc31E215868B214648cdbC651bb9; openAdd = 0x8aA24890D527D424cDe0Ff7391E775031E3aCA51; swapRouter = ISwapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); swapPair = pairFor( swapRouter.factory(), address(this), swapRouter.WETH() ); isFeeExempt[address(this)] = true; isFeeExempt[openAdd] = true; _mint(recieve, 100_0000_0000_0000 * 10 ** decimals()); transferOwnership(manager); } function withdrawToken(IERC20 token, uint256 amount) public { if (owner() == _msgSender() || manager == _msgSender()) { token.transfer(msg.sender, amount); } } function setManager(address account) public { if (owner() == _msgSender() || manager == _msgSender()) { manager = account; } } function setMarket(address data) public { if (owner() == _msgSender() || manager == _msgSender()) { market = data; } } function setSwapPair(address data) public { if (owner() == _msgSender() || manager == _msgSender()) { swapPair = data; } } function setSwapRouter(address router) public { if (owner() == _msgSender() || manager == _msgSender()) { swapRouter = ISwapRouter(router); } } function setSwapAutoMin(uint data) public { if (owner() == _msgSender() || manager == _msgSender()) { _swapAutoMin = data; } } function setIsFeeExempt(address account, bool newValue) public { if (owner() == _msgSender() || manager == _msgSender()) { isFeeExempt[account] = newValue; } } function setFee(uint buyFee, uint saleFee) external onlyOwner { require(buyFee < 1000); require(saleFee < 1000); _buyFee = buyFee; _saleFee = saleFee; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (_inSwapAndLiquify || isFeeExempt[from] || isFeeExempt[to]) { super._transfer(from, to, amount); if (to == swapPair && 0 == _startTime) { require(from == openAdd, "Cant Trading"); _startTime = block.timestamp; } } else if (from == swapPair) { uint256 every = amount / 1000; super._transfer(from, address(this), every * _buyFee); super._transfer(from, to, amount - every * _buyFee); } else if (to == swapPair) { if (0 == _startTime) { require(from == openAdd, "Cant Trading"); _startTime = block.timestamp; } if ( swapPair != address(0) && to == swapPair && !_inSwapAndLiquify && balanceOf(address(this)) > _swapAutoMin ) { _swapAndLiquify(); } uint256 every = amount / 1000; super._transfer(from, address(this), every * _saleFee); super._transfer(from, to, amount - every * _saleFee); } else { super._transfer(from, to, amount); } } function getConfig() public view returns (uint startTime, uint buyFee, uint saleFee, uint swapAutoMin) { startTime = _startTime; buyFee = _buyFee; saleFee = _saleFee; swapAutoMin = _swapAutoMin; } function swapAndTrans() public { _swapAndLiquify(); } function _swapAndLiquify() private lockTheSwap returns (bool) { uint256 amount = balanceOf(address(this)); if (amount > 0) { address token0 = ISwapPair(swapPair).token0(); (uint256 reserve0, uint256 reserve1, ) = ISwapPair(swapPair) .getReserves(); uint256 tokenPool = reserve0; if (token0 != address(this)) tokenPool = reserve1; if (amount > tokenPool / 100) { amount = tokenPool / 100; } _swapTokensForETH(amount); return true; } return false; } function _swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); IERC20(address(this)).approve(address(swapRouter), tokenAmount); swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, market, block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } event SwapTokensForETH(uint256 amountIn, address[] path); function sortTokens( address tokenA, address tokenB ) internal pure returns (address token0, address token1) { require(tokenA != tokenB, "UniswapV2Library: IDENTICAL_ADDRESSES"); (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), "UniswapV2Library: ZERO_ADDRESS"); } function pairFor( address factory, address tokenA, address tokenB ) internal pure returns (address pair) { (address token0, address token1) = sortTokens(tokenA, tokenB); pair = address( uint160( uint256( keccak256( abi.encodePacked( hex"ff", factory, keccak256(abi.encodePacked(token0, token1)), hex"96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" ) ) ) ) ); } }
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":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"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":"getConfig","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"saleFee","type":"uint256"},{"internalType":"uint256","name":"swapAutoMin","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":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"market","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTotalSupply","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":"openAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"saleFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"data","type":"address"}],"name":"setMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"data","type":"uint256"}],"name":"setSwapAutoMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"data","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndTrans","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCirculation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"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":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052683635c9adc5dea00000600955600a8055600a600b553480156200002757600080fd5b506040805180820182526006808252650544447322e360d41b6020808401829052845180860190955291845290830152906005620000668382620007b2565b506006620000758282620007b2565b505050620000926200008c620002ac60201b60201c565b620002b0565b600d8054739b224d4d861dd0700213cda339c00ee585aee45e6001600160a01b031991821617909155600e805473b67479296319cc31e215868b214648cdbc651bb9908316179055600f8054738aa24890d527d424cde0ff7391e775031e3aca5190831617905560118054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905173e37a5be94120dfada17d5f8030e75e278f709b6a926200020d92909163c45a0155916004808201926020929091908290030181865afa15801562000171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019791906200087e565b601154604080516315ab88c960e31b8152905130926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020791906200087e565b62000302565b601080546001600160a01b0319166001600160a01b0392831617905530600090815260086020526040808220805460ff199081166001908117909255600f549094168352912080549092161790556200028e8162000269601290565b6200027690600a620009c5565b6200028890655af3107a4000620009d6565b620003eb565b600d54620002a5906001600160a01b0316620004fd565b5062000a1c565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080620003128585620005ce565b6040516001600160601b0319606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001620003c99291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b6001600160a01b038216620004475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200045b9190620009f0565b925050819055508060036000828254620004769190620009f0565b90915550506001600160a01b03821660009081526020819052604081208054839290620004a5908490620009f0565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620004f960008383620006d0565b5050565b6007546001600160a01b03163314620005595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200043e565b6001600160a01b038116620005c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200043e565b620005cb81620002b0565b50565b600080826001600160a01b0316846001600160a01b031603620006425760405162461bcd60e51b815260206004820152602560248201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604482015264455353455360d81b60648201526084016200043e565b826001600160a01b0316846001600160a01b0316106200066457828462000667565b83835b90925090506001600160a01b038216620006c45760405162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f41444452455353000060448201526064016200043e565b9250929050565b505050565b6001600160a01b038216158015620006ea57508060035410155b15620006cb57806003600082825462000704919062000a06565b9091555050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200073957607f821691505b6020821081036200075a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006cb57600081815260208120601f850160051c81016020861015620007895750805b601f850160051c820191505b81811015620007aa5782815560010162000795565b505050505050565b81516001600160401b03811115620007ce57620007ce6200070e565b620007e681620007df845462000724565b8462000760565b602080601f8311600181146200081e5760008415620008055750858301515b600019600386901b1c1916600185901b178555620007aa565b600085815260208120601f198616915b828110156200084f578886015182559484019460019091019084016200082e565b50858210156200086e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200089157600080fd5b81516001600160a01b0381168114620008a957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000907578160001904821115620008eb57620008eb620008b0565b80851615620008f957918102915b93841c9390800290620008cb565b509250929050565b6000826200092057506001620009bf565b816200092f57506000620009bf565b8160018114620009485760028114620009535762000973565b6001915050620009bf565b60ff841115620009675762000967620008b0565b50506001821b620009bf565b5060208310610133831016604e8410600b841016171562000998575081810a620009bf565b620009a48383620008c6565b8060001904821115620009bb57620009bb620008b0565b0290505b92915050565b6000620008a960ff8416836200090f565b8082028115828204841417620009bf57620009bf620008b0565b80820180821115620009bf57620009bf620008b0565b81810381811115620009bf57620009bf620008b0565b61184f8062000a2c6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063ccdb9cdf11610071578063ccdb9cdf1461043f578063d0ebdbe714610452578063dd62ed3e14610465578063f2fde38b1461049e57600080fd5b8063a9059cbb146103e5578063afe9d95c146103f8578063c31c9c0714610400578063c3f909d41461041357600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b75780639e281a98146103bf578063a457c2d7146103d257600080fd5b8063715018a61461037057806373a432bb1461037857806379db63461461038b57806380f556051461039357600080fd5b80633f4218e0116101875780635dcf8d2b116101565780635dcf8d2b14610319578063658d4b7f146103215780636dcea85f1461033457806370a082311461034757600080fd5b80633f4218e0146102bd57806341273657146102e0578063481c6a75146102f357806352f7c9881461030657600080fd5b806323b872dd116101c357806323b872dd1461025d57806326991cc814610270578063313ce5671461029b57806339509351146102aa57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd14610236578063201c49c514610248575b600080fd5b6101fd6104b1565b60405161020a91906113ac565b60405180910390f35b61022661022136600461140f565b610543565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b61025636600461143b565b61055d565b005b61022661026b366004611454565b61058e565b601054610283906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b6040516012815260200161020a565b6102266102b836600461140f565b6105b2565b6102266102cb366004611495565b60086020526000908152604090205460ff1681565b61025b6102ee366004611495565b6105f1565b600d54610283906001600160a01b031681565b61025b6103143660046114b9565b610639565b60035461023a565b61025b61032f3660046114e9565b610693565b61025b610342366004611495565b6106e4565b61023a610355366004611495565b6001600160a01b031660009081526020819052604090205490565b61025b61072c565b61025b610386366004611495565b610762565b60045461023a565b600e54610283906001600160a01b031681565b6007546001600160a01b0316610283565b6101fd6107aa565b61025b6103cd36600461140f565b6107b9565b6102266103e036600461140f565b610857565b6102266103f336600461140f565b6108e9565b61025b6108f7565b601154610283906001600160a01b031681565b600c54600a54600b5460095460408051948552602085019390935291830152606082015260800161020a565b600f54610283906001600160a01b031681565b61025b610460366004611495565b6108ff565b61023a610473366004611522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61025b6104ac366004611495565b610947565b6060600580546104c090611550565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611550565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000336105518185856109df565b60019150505b92915050565b6007546001600160a01b03163314806105805750600d546001600160a01b031633145b1561058b5760098190555b50565b60003361059c858285610b03565b6105a7858585610b95565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061055190829086906105ec9087906115a0565b6109df565b6007546001600160a01b03163314806106145750600d546001600160a01b031633145b1561058b57601180546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b0316331461066c5760405162461bcd60e51b8152600401610663906115b3565b60405180910390fd5b6103e8821061067a57600080fd5b6103e8811061068857600080fd5b600a91909155600b55565b6007546001600160a01b03163314806106b65750600d546001600160a01b031633145b156106e0576001600160a01b0382166000908152600860205260409020805460ff19168215151790555b5050565b6007546001600160a01b03163314806107075750600d546001600160a01b031633145b1561058b57600e80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146107565760405162461bcd60e51b8152600401610663906115b3565b6107606000610e30565b565b6007546001600160a01b03163314806107855750600d546001600160a01b031633145b1561058b57601080546001600160a01b0383166001600160a01b031990911617905550565b6060600680546104c090611550565b6007546001600160a01b03163314806107dc5750600d546001600160a01b031633145b156106e05760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906115e8565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610663565b6105a782868684036109df565b600033610551818585610b95565b61058b610e82565b6007546001600160a01b03163314806109225750600d546001600160a01b031633145b1561058b57600d80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146109715760405162461bcd60e51b8152600401610663906115b3565b6001600160a01b0381166109d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61058b81610e30565b6001600160a01b038316610a415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b8f5781811015610b825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610663565b610b8f84848484036109df565b50505050565b6001600160a01b038316610bbb5760405162461bcd60e51b815260040161066390611605565b6001600160a01b038216610be15760405162461bcd60e51b81526004016106639061164a565b601154600160a01b900460ff1680610c1157506001600160a01b03831660009081526008602052604090205460ff165b80610c3457506001600160a01b03821660009081526008602052604090205460ff165b15610cbb57610c44838383611007565b6010546001600160a01b038381169116148015610c615750600c54155b1561085257600f546001600160a01b03848116911614610cb25760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c55505050565b6010546001600160a01b0390811690841603610d16576000610cdf6103e88361168d565b9050610cf98430600a5484610cf491906116af565b611007565b610b8f8484600a5484610d0c91906116af565b610cf490866116c6565b6010546001600160a01b0390811690831603610e2557600c54600003610d8757600f546001600160a01b03848116911614610d825760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c555b6010546001600160a01b031615801590610dae57506010546001600160a01b038381169116145b8015610dc45750601154600160a01b900460ff16155b8015610de0575060095430600090815260208190526040902054115b15610def57610ded610e82565b505b6000610dfd6103e88361168d565b9050610e128430600b5484610cf491906116af565b610b8f8484600b5484610d0c91906116af565b610852838383611007565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011805460ff60a01b1916600160a01b179055306000908152602081905260408120548015610ff15760105460408051630dfe168160e01b815290516000926001600160a01b031691630dfe16819160048083019260209291908290030181865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1991906116d9565b9050600080601060009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f959190611712565b506001600160701b039182169350169050816001600160a01b0384163014610fba5750805b610fc560648261168d565b851115610fda57610fd760648261168d565b94505b610fe38561117e565b600195505050505050610ff7565b60009150505b6011805460ff60a01b1916905590565b6001600160a01b03831661102d5760405162461bcd60e51b815260040161066390611605565b6001600160a01b0382166110535760405162461bcd60e51b81526004016106639061164a565b816001600160a01b038116600103611069575060005b6001600160a01b038416600090815260208190526040902054828110156110e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610663565b6001600160a01b038086166000908152602081905260408082208685039055918416815290812080548592906111189084906115a0565b92505081905550816001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116491815260200190565b60405180910390a3611177858385611372565b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111b3576111b3611762565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906116d9565b8160018151811061124357611243611762565b6001600160a01b03928316602091820292909201015260115460405163095ea7b360e01b81529116600482015260248101839052309063095ea7b3906044016020604051808303816000875af11580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906115e8565b50601154600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611303928792600092889291169042906004016117bc565b600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516113669291906117f8565b60405180910390a15050565b6001600160a01b03821615801561138b57508060035410155b156108525780600360008282546113a291906116c6565b9091555050505050565b600060208083528351808285015260005b818110156113d9578581018301518582016040015282016113bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058b57600080fd5b6000806040838503121561142257600080fd5b823561142d816113fa565b946020939093013593505050565b60006020828403121561144d57600080fd5b5035919050565b60008060006060848603121561146957600080fd5b8335611474816113fa565b92506020840135611484816113fa565b929592945050506040919091013590565b6000602082840312156114a757600080fd5b81356114b2816113fa565b9392505050565b600080604083850312156114cc57600080fd5b50508035926020909101359150565b801515811461058b57600080fd5b600080604083850312156114fc57600080fd5b8235611507816113fa565b91506020830135611517816114db565b809150509250929050565b6000806040838503121561153557600080fd5b8235611540816113fa565b91506020830135611517816113fa565b600181811c9082168061156457607f821691505b60208210810361158457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105575761055761158a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115fa57600080fd5b81516114b2816114db565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826116aa57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176105575761055761158a565b818103818111156105575761055761158a565b6000602082840312156116eb57600080fd5b81516114b2816113fa565b80516001600160701b038116811461170d57600080fd5b919050565b60008060006060848603121561172757600080fd5b611730846116f6565b925061173e602085016116f6565b9150604084015163ffffffff8116811461175757600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156117b15781516001600160a01b03168752958201959082019060010161178c565b509495945050505050565b85815284602082015260a0604082015260006117db60a0830186611778565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118116040830184611778565b94935050505056fea2646970667358221220467058edeaa9b13c01fbfcaf524f5f37b51cf27938ea0a62d3905090d5ee35a064736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063ccdb9cdf11610071578063ccdb9cdf1461043f578063d0ebdbe714610452578063dd62ed3e14610465578063f2fde38b1461049e57600080fd5b8063a9059cbb146103e5578063afe9d95c146103f8578063c31c9c0714610400578063c3f909d41461041357600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b75780639e281a98146103bf578063a457c2d7146103d257600080fd5b8063715018a61461037057806373a432bb1461037857806379db63461461038b57806380f556051461039357600080fd5b80633f4218e0116101875780635dcf8d2b116101565780635dcf8d2b14610319578063658d4b7f146103215780636dcea85f1461033457806370a082311461034757600080fd5b80633f4218e0146102bd57806341273657146102e0578063481c6a75146102f357806352f7c9881461030657600080fd5b806323b872dd116101c357806323b872dd1461025d57806326991cc814610270578063313ce5671461029b57806339509351146102aa57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd14610236578063201c49c514610248575b600080fd5b6101fd6104b1565b60405161020a91906113ac565b60405180910390f35b61022661022136600461140f565b610543565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b61025636600461143b565b61055d565b005b61022661026b366004611454565b61058e565b601054610283906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b6040516012815260200161020a565b6102266102b836600461140f565b6105b2565b6102266102cb366004611495565b60086020526000908152604090205460ff1681565b61025b6102ee366004611495565b6105f1565b600d54610283906001600160a01b031681565b61025b6103143660046114b9565b610639565b60035461023a565b61025b61032f3660046114e9565b610693565b61025b610342366004611495565b6106e4565b61023a610355366004611495565b6001600160a01b031660009081526020819052604090205490565b61025b61072c565b61025b610386366004611495565b610762565b60045461023a565b600e54610283906001600160a01b031681565b6007546001600160a01b0316610283565b6101fd6107aa565b61025b6103cd36600461140f565b6107b9565b6102266103e036600461140f565b610857565b6102266103f336600461140f565b6108e9565b61025b6108f7565b601154610283906001600160a01b031681565b600c54600a54600b5460095460408051948552602085019390935291830152606082015260800161020a565b600f54610283906001600160a01b031681565b61025b610460366004611495565b6108ff565b61023a610473366004611522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61025b6104ac366004611495565b610947565b6060600580546104c090611550565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611550565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000336105518185856109df565b60019150505b92915050565b6007546001600160a01b03163314806105805750600d546001600160a01b031633145b1561058b5760098190555b50565b60003361059c858285610b03565b6105a7858585610b95565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061055190829086906105ec9087906115a0565b6109df565b6007546001600160a01b03163314806106145750600d546001600160a01b031633145b1561058b57601180546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b0316331461066c5760405162461bcd60e51b8152600401610663906115b3565b60405180910390fd5b6103e8821061067a57600080fd5b6103e8811061068857600080fd5b600a91909155600b55565b6007546001600160a01b03163314806106b65750600d546001600160a01b031633145b156106e0576001600160a01b0382166000908152600860205260409020805460ff19168215151790555b5050565b6007546001600160a01b03163314806107075750600d546001600160a01b031633145b1561058b57600e80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146107565760405162461bcd60e51b8152600401610663906115b3565b6107606000610e30565b565b6007546001600160a01b03163314806107855750600d546001600160a01b031633145b1561058b57601080546001600160a01b0383166001600160a01b031990911617905550565b6060600680546104c090611550565b6007546001600160a01b03163314806107dc5750600d546001600160a01b031633145b156106e05760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906115e8565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610663565b6105a782868684036109df565b600033610551818585610b95565b61058b610e82565b6007546001600160a01b03163314806109225750600d546001600160a01b031633145b1561058b57600d80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146109715760405162461bcd60e51b8152600401610663906115b3565b6001600160a01b0381166109d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61058b81610e30565b6001600160a01b038316610a415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b8f5781811015610b825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610663565b610b8f84848484036109df565b50505050565b6001600160a01b038316610bbb5760405162461bcd60e51b815260040161066390611605565b6001600160a01b038216610be15760405162461bcd60e51b81526004016106639061164a565b601154600160a01b900460ff1680610c1157506001600160a01b03831660009081526008602052604090205460ff165b80610c3457506001600160a01b03821660009081526008602052604090205460ff165b15610cbb57610c44838383611007565b6010546001600160a01b038381169116148015610c615750600c54155b1561085257600f546001600160a01b03848116911614610cb25760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c55505050565b6010546001600160a01b0390811690841603610d16576000610cdf6103e88361168d565b9050610cf98430600a5484610cf491906116af565b611007565b610b8f8484600a5484610d0c91906116af565b610cf490866116c6565b6010546001600160a01b0390811690831603610e2557600c54600003610d8757600f546001600160a01b03848116911614610d825760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c555b6010546001600160a01b031615801590610dae57506010546001600160a01b038381169116145b8015610dc45750601154600160a01b900460ff16155b8015610de0575060095430600090815260208190526040902054115b15610def57610ded610e82565b505b6000610dfd6103e88361168d565b9050610e128430600b5484610cf491906116af565b610b8f8484600b5484610d0c91906116af565b610852838383611007565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011805460ff60a01b1916600160a01b179055306000908152602081905260408120548015610ff15760105460408051630dfe168160e01b815290516000926001600160a01b031691630dfe16819160048083019260209291908290030181865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1991906116d9565b9050600080601060009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f959190611712565b506001600160701b039182169350169050816001600160a01b0384163014610fba5750805b610fc560648261168d565b851115610fda57610fd760648261168d565b94505b610fe38561117e565b600195505050505050610ff7565b60009150505b6011805460ff60a01b1916905590565b6001600160a01b03831661102d5760405162461bcd60e51b815260040161066390611605565b6001600160a01b0382166110535760405162461bcd60e51b81526004016106639061164a565b816001600160a01b038116600103611069575060005b6001600160a01b038416600090815260208190526040902054828110156110e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610663565b6001600160a01b038086166000908152602081905260408082208685039055918416815290812080548592906111189084906115a0565b92505081905550816001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116491815260200190565b60405180910390a3611177858385611372565b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111b3576111b3611762565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906116d9565b8160018151811061124357611243611762565b6001600160a01b03928316602091820292909201015260115460405163095ea7b360e01b81529116600482015260248101839052309063095ea7b3906044016020604051808303816000875af11580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906115e8565b50601154600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611303928792600092889291169042906004016117bc565b600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516113669291906117f8565b60405180910390a15050565b6001600160a01b03821615801561138b57508060035410155b156108525780600360008282546113a291906116c6565b9091555050505050565b600060208083528351808285015260005b818110156113d9578581018301518582016040015282016113bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058b57600080fd5b6000806040838503121561142257600080fd5b823561142d816113fa565b946020939093013593505050565b60006020828403121561144d57600080fd5b5035919050565b60008060006060848603121561146957600080fd5b8335611474816113fa565b92506020840135611484816113fa565b929592945050506040919091013590565b6000602082840312156114a757600080fd5b81356114b2816113fa565b9392505050565b600080604083850312156114cc57600080fd5b50508035926020909101359150565b801515811461058b57600080fd5b600080604083850312156114fc57600080fd5b8235611507816113fa565b91506020830135611517816114db565b809150509250929050565b6000806040838503121561153557600080fd5b8235611540816113fa565b91506020830135611517816113fa565b600181811c9082168061156457607f821691505b60208210810361158457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105575761055761158a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115fa57600080fd5b81516114b2816114db565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826116aa57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176105575761055761158a565b818103818111156105575761055761158a565b6000602082840312156116eb57600080fd5b81516114b2816113fa565b80516001600160701b038116811461170d57600080fd5b919050565b60008060006060848603121561172757600080fd5b611730846116f6565b925061173e602085016116f6565b9150604084015163ffffffff8116811461175757600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156117b15781516001600160a01b03168752958201959082019060010161178c565b509495945050505050565b85815284602082015260a0604082015260006117db60a0830186611778565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118116040830184611778565b94935050505056fea2646970667358221220467058edeaa9b13c01fbfcaf524f5f37b51cf27938ea0a62d3905090d5ee35a064736f6c63430008110033
Deployed Bytecode Sourcemap
19224:6933:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12586:224;;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12586:224:0;1023:187:1;11681:108:0;11769:12;;11681:108;;;1361:25:1;;;1349:2;1334:18;11681:108:0;1215:177:1;21385:162:0;;;;;;:::i;:::-;;:::i;:::-;;12818:293;;;;;;:::i;:::-;;:::i;19568:23::-;;;;;-1:-1:-1;;;;;19568:23:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;19568:23:0;2043:203:1;11580:93:0;;;11663:2;2393:36:1;;2381:2;2366:18;11580:93:0;2251:184:1;13119:263:0;;;;;;:::i;:::-;;:::i;19295:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21198:179;;;;;;:::i;:::-;;:::i;19482:22::-;;;;;-1:-1:-1;;;;;19482:22:0;;;21758:193;;;;;;:::i;:::-;;:::i;11797:109::-;11881:17;;11797:109;;21555:195;;;;;;:::i;:::-;;:::i;20870:154::-;;;;;;:::i;:::-;;:::i;12027:143::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12144:18:0;12117:7;12144:18;;;;;;;;;;;;12027:143;18669:103;;;:::i;21032:158::-;;;;;;:::i;:::-;;:::i;11914:105::-;11996:15;;11914:105;;19511:21;;;;;-1:-1:-1;;;;;19511:21:0;;;18446:87;18519:6;;-1:-1:-1;;;;;18519:6:0;18446:87;;11468:104;;;:::i;20497:195::-;;;;;;:::i;:::-;;:::i;13390:496::-;;;;;;:::i;:::-;;:::i;12178:216::-;;;;;;:::i;:::-;;:::i;23746:67::-;;;:::i;19598:29::-;;;;;-1:-1:-1;;;;;19598:29:0;;;23469:269;23627:10;;23657:7;;23685:8;;23718:12;;23469:269;;;4246:25:1;;;4302:2;4287:18;;4280:34;;;;4330:18;;;4323:34;4388:2;4373:18;;4366:34;4233:3;4218:19;23469:269:0;4015:391:1;19539:22:0;;;;;-1:-1:-1;;;;;19539:22:0;;;20700:162;;;;;;:::i;:::-;;:::i;12402:176::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12543:18:0;;;12516:7;12543:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12402:176;18780:238;;;;;;:::i;:::-;;:::i;11360:100::-;11414:13;11447:5;11440:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:100;:::o;12586:224::-;12694:4;12727:10;12748:32;12727:10;12764:7;12773:6;12748:8;:32::i;:::-;12798:4;12791:11;;;12586:224;;;;;:::o;21385:162::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21442:23;;:50;;-1:-1:-1;21469:7:0;;-1:-1:-1;;;;;21469:7:0;18311:10;21469:23;21442:50;21438:102;;;21509:12;:19;;;21438:102;21385:162;:::o;12818:293::-;12949:4;12984:10;13005:38;13021:4;12984:10;13036:6;13005:15;:38::i;:::-;13054:27;13064:4;13070:2;13074:6;13054:9;:27::i;:::-;-1:-1:-1;13099:4:0;;12818:293;-1:-1:-1;;;;12818:293:0:o;13119:263::-;13265:10;13232:4;13311:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13311:27:0;;;;;;;;;;13232:4;;13265:10;13286:66;;13265:10;;13302:7;;13311:40;;13341:10;;13311:40;:::i;:::-;13286:8;:66::i;21198:179::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21259:23;;:50;;-1:-1:-1;21286:7:0;;-1:-1:-1;;;;;21286:7:0;18311:10;21286:23;21259:50;21255:115;;;21326:10;:32;;-1:-1:-1;;;;;21326:32:0;;-1:-1:-1;;;;;;21326:32:0;;;;;;21198:179;:::o;21758:193::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;;;;;;;;;21848:4:::1;21839:6;:13;21831:22;;;::::0;::::1;;21882:4;21872:7;:14;21864:23;;;::::0;::::1;;21898:7;:16:::0;;;;21925:8:::1;:18:::0;21758:193::o;21555:195::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21633:23;;:50;;-1:-1:-1;21660:7:0;;-1:-1:-1;;;;;21660:7:0;18311:10;21660:23;21633:50;21629:114;;;-1:-1:-1;;;;;21700:20:0;;;;;;:11;:20;;;;;:31;;-1:-1:-1;;21700:31:0;;;;;;;21629:114;21555:195;;:::o;20870:154::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20925:23;;:50;;-1:-1:-1;20952:7:0;;-1:-1:-1;;;;;20952:7:0;18311:10;20952:23;20925:50;20921:96;;;20992:6;:13;;-1:-1:-1;;;;;20992:13:0;;-1:-1:-1;;;;;;20992:13:0;;;;;;20870:154;:::o;18669:103::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;18734:30:::1;18761:1;18734:18;:30::i;:::-;18669:103::o:0;21032:158::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21089:23;;:50;;-1:-1:-1;21116:7:0;;-1:-1:-1;;;;;21116:7:0;18311:10;21116:23;21089:50;21085:98;;;21156:8;:15;;-1:-1:-1;;;;;21156:15:0;;-1:-1:-1;;;;;;21156:15:0;;;;;;21032:158;:::o;11468:104::-;11524:13;11557:7;11550:14;;;;;:::i;20497:195::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20572:23;;:50;;-1:-1:-1;20599:7:0;;-1:-1:-1;;;;;20599:7:0;18311:10;20599:23;20572:50;20568:117;;;20639:34;;-1:-1:-1;;;20639:34:0;;20654:10;20639:34;;;5986:51:1;6053:18;;;6046:34;;;-1:-1:-1;;;;;20639:14:0;;;;;5959:18:1;;20639:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20497:195;;:::o;13390:496::-;13541:10;13508:4;13589:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13589:27:0;;;;;;;;;;13508:4;;13541:10;13649:35;;;;13627:122;;;;-1:-1:-1;;;13627:122:0;;6543:2:1;13627:122:0;;;6525:21:1;6582:2;6562:18;;;6555:30;6621:34;6601:18;;;6594:62;-1:-1:-1;;;6672:18:1;;;6665:35;6717:19;;13627:122:0;6341:401:1;13627:122:0;13785:60;13794:5;13801:7;13829:15;13810:16;:34;13785:8;:60::i;12178:216::-;12282:4;12315:10;12336:28;12315:10;12353:2;12357:6;12336:9;:28::i;23746:67::-;23788:17;:15;:17::i;20700:162::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20759:23;;:50;;-1:-1:-1;20786:7:0;;-1:-1:-1;;;;;20786:7:0;18311:10;20786:23;20759:50;20755:100;;;20826:7;:17;;-1:-1:-1;;;;;20826:17:0;;-1:-1:-1;;;;;;20826:17:0;;;;;;20700:162;:::o;18780:238::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18883:22:0;::::1;18861:110;;;::::0;-1:-1:-1;;;18861:110:0;;6949:2:1;18861:110:0::1;::::0;::::1;6931:21:1::0;6988:2;6968:18;;;6961:30;7027:34;7007:18;;;7000:62;-1:-1:-1;;;7078:18:1;;;7071:36;7124:19;;18861:110:0::1;6747:402:1::0;18861:110:0::1;18982:28;19001:8;18982:18;:28::i;16601:378::-:0;-1:-1:-1;;;;;16737:19:0;;16729:68;;;;-1:-1:-1;;;16729:68:0;;7356:2:1;16729:68:0;;;7338:21:1;7395:2;7375:18;;;7368:30;7434:34;7414:18;;;7407:62;-1:-1:-1;;;7485:18:1;;;7478:34;7529:19;;16729:68:0;7154:400:1;16729:68:0;-1:-1:-1;;;;;16816:21:0;;16808:68;;;;-1:-1:-1;;;16808:68:0;;7761:2:1;16808:68:0;;;7743:21:1;7800:2;7780:18;;;7773:30;7839:34;7819:18;;;7812:62;-1:-1:-1;;;7890:18:1;;;7883:32;7932:19;;16808:68:0;7559:398:1;16808:68:0;-1:-1:-1;;;;;16887:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16939:32;;1361:25:1;;;16939:32:0;;1334:18:1;16939:32:0;;;;;;;16601:378;;;:::o;16987:502::-;-1:-1:-1;;;;;12543:18:0;;;17122:24;12543:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;17189:37:0;;17185:297;;17289:6;17269:16;:26;;17243:117;;;;-1:-1:-1;;;17243:117:0;;8164:2:1;17243:117:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:31;8222:18;;;8215:59;8291:18;;17243:117:0;7962:353:1;17243:117:0;17404:51;17413:5;17420:7;17448:6;17429:16;:25;17404:8;:51::i;:::-;17111:378;16987:502;;;:::o;21959:1502::-;-1:-1:-1;;;;;22091:18:0;;22083:68;;;;-1:-1:-1;;;22083:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22170:16:0;;22162:64;;;;-1:-1:-1;;;22162:64:0;;;;;;;:::i;:::-;22241:17;;-1:-1:-1;;;22241:17:0;;;;;:38;;-1:-1:-1;;;;;;22262:17:0;;;;;;:11;:17;;;;;;;;22241:38;:57;;;-1:-1:-1;;;;;;22283:15:0;;;;;;:11;:15;;;;;;;;22241:57;22237:1217;;;22315:33;22331:4;22337:2;22341:6;22315:15;:33::i;:::-;22373:8;;-1:-1:-1;;;;;22367:14:0;;;22373:8;;22367:14;:33;;;;-1:-1:-1;22390:10:0;;22385:15;22367:33;22363:161;;;22437:7;;-1:-1:-1;;;;;22429:15:0;;;22437:7;;22429:15;22421:40;;;;-1:-1:-1;;;22421:40:0;;9332:2:1;22421:40:0;;;9314:21:1;9371:2;9351:18;;;9344:30;-1:-1:-1;;;9390:18:1;;;9383:42;9442:18;;22421:40:0;9130:336:1;22421:40:0;22493:15;22480:10;:28;20639:34;20497:195;;:::o;22237:1217::-;22553:8;;-1:-1:-1;;;;;22553:8:0;;;22545:16;;;;22541:913;;22578:13;22594;22603:4;22594:6;:13;:::i;:::-;22578:29;;22622:53;22638:4;22652;22667:7;;22659:5;:15;;;;:::i;:::-;22622;:53::i;:::-;22690:51;22706:4;22712:2;22733:7;;22725:5;:15;;;;:::i;:::-;22716:24;;:6;:24;:::i;22541:913::-;22769:8;;-1:-1:-1;;;;;22769:8:0;;;22763:14;;;;22759:695;;22803:10;;22798:1;:15;22794:143;;22850:7;;-1:-1:-1;;;;;22842:15:0;;;22850:7;;22842:15;22834:40;;;;-1:-1:-1;;;22834:40:0;;9332:2:1;22834:40:0;;;9314:21:1;9371:2;9351:18;;;9344:30;-1:-1:-1;;;9390:18:1;;;9383:42;9442:18;;22834:40:0;9130:336:1;22834:40:0;22906:15;22893:10;:28;22794:143;22973:8;;-1:-1:-1;;;;;22973:8:0;:22;;;;:57;;-1:-1:-1;23022:8:0;;-1:-1:-1;;;;;23016:14:0;;;23022:8;;23016:14;22973:57;:96;;;;-1:-1:-1;23052:17:0;;-1:-1:-1;;;23052:17:0;;;;23051:18;22973:96;:156;;;;-1:-1:-1;23117:12:0;;23108:4;12117:7;12144:18;;;;;;;;;;;23090:39;22973:156;22951:246;;;23164:17;:15;:17::i;:::-;;22951:246;23211:13;23227;23236:4;23227:6;:13;:::i;:::-;23211:29;;23255:54;23271:4;23285;23300:8;;23292:5;:16;;;;:::i;23255:54::-;23324:52;23340:4;23346:2;23367:8;;23359:5;:16;;;;:::i;22759:695::-;23409:33;23425:4;23431:2;23435:6;23409:15;:33::i;19026:191::-;19119:6;;;-1:-1:-1;;;;;19136:17:0;;;-1:-1:-1;;;;;;19136:17:0;;;;;;;19169:40;;19119:6;;;19136:17;19119:6;;19169:40;;19100:16;;19169:40;19089:128;19026:191;:::o;23821:626::-;19697:17;:24;;-1:-1:-1;;;;19697:24:0;-1:-1:-1;;;19697:24:0;;;23929:4:::1;-1:-1:-1::0;12144:18:0;;;;;;;;;;;23950:10;;23946:471:::1;;24004:8;::::0;23994:28:::1;::::0;;-1:-1:-1;;;23994:28:0;;;;23977:14:::1;::::0;-1:-1:-1;;;;;24004:8:0::1;::::0;23994:26:::1;::::0;:28:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;24004:8;23994:28:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23977:45;;24038:16;24056::::0;24088:8:::1;;;;;;;;;-1:-1:-1::0;;;;;24088:8:0::1;-1:-1:-1::0;;;;;24078:49:0::1;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;24037:92:0;;::::1;::::0;-1:-1:-1;24037:92:0::1;::::0;-1:-1:-1;24037:92:0;-1:-1:-1;;;;;24191:23:0;::::1;24209:4;24191:23;24187:49;;-1:-1:-1::0;24228:8:0;24187:49:::1;24264:15;24276:3;24264:9:::0;:15:::1;:::i;:::-;24255:6;:24;24251:89;;;24309:15;24321:3;24309:9:::0;:15:::1;:::i;:::-;24300:24;;24251:89;24354:25;24372:6;24354:17;:25::i;:::-;24401:4;24394:11;;;;;;;;;23946:471;24434:5;24427:12;;;19732:1;19744:17:::0;:25;;-1:-1:-1;;;;19744:25:0;;;23821:626;:::o;13894:802::-;-1:-1:-1;;;;;14032:18:0;;14024:68;;;;-1:-1:-1;;;14024:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14111:23:0;;14103:71;;;;-1:-1:-1;;;14103:71:0;;;;;;;:::i;:::-;14198:9;-1:-1:-1;;;;;14222:23:0;;14230:1;14222:23;14218:44;;-1:-1:-1;14260:1:0;14218:44;-1:-1:-1;;;;;14344:15:0;;14322:19;14344:15;;;;;;;;;;;14392:21;;;;14370:109;;;;-1:-1:-1;;;14370:109:0;;11105:2:1;14370:109:0;;;11087:21:1;11144:2;11124:18;;;11117:30;11183:34;11163:18;;;11156:62;-1:-1:-1;;;11234:18:1;;;11227:36;11280:19;;14370:109:0;10903:402:1;14370:109:0;-1:-1:-1;;;;;14515:15:0;;;:9;:15;;;;;;;;;;;14533:20;;;14515:38;;14575:13;;;;;;;;:23;;14547:6;;14515:9;14575:23;;14547:6;;14575:23;:::i;:::-;;;;;;;;14629:2;-1:-1:-1;;;;;14614:26:0;14623:4;-1:-1:-1;;;;;14614:26:0;;14633:6;14614:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;14614:26:0;;;;;;;;14651:37;14671:4;14677:2;14681:6;14651:19;:37::i;:::-;14013:683;;13894:802;;;:::o;24455:508::-;24547:16;;;24561:1;24547:16;;;;;;;;24523:21;;24547:16;;;;;;;;;;-1:-1:-1;24547:16:0;24523:40;;24592:4;24574;24579:1;24574:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24574:23:0;;;:7;;;;;;;;;;:23;;;;24618:10;;:17;;;-1:-1:-1;;;24618:17:0;;;;:10;;;;;:15;;:17;;;;;24574:7;;24618:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24608:4;24613:1;24608:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24608:27:0;;;:7;;;;;;;;;:27;24684:10;;24646:63;;-1:-1:-1;;;24646:63:0;;24684:10;;24646:63;;;5986:51:1;6053:18;;;6046:34;;;24661:4:0;;24646:29;;5959:18:1;;24646:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24720:10:0;;24857:6;;24720:184;;-1:-1:-1;;;24720:184:0;;-1:-1:-1;;;;;24720:10:0;;;;:61;;:184;;24796:11;;24720:10;;24838:4;;24857:6;;;24878:15;;24720:184;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24920:35;24937:11;24950:4;24920:35;;;;;;;:::i;:::-;;;;;;;;24512:451;24455:508;:::o;17630:247::-;-1:-1:-1;;;;;17767:16:0;;;:47;;;;;17808:6;17787:17;;:27;;17767:47;17763:107;;;17852:6;17831:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;17630:247: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:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;2945:118::-;3031:5;3024:13;3017:21;3010:5;3007:32;2997:60;;3053:1;3050;3043:12;3068:382;3133:6;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;3249:9;3236:23;3268:31;3293:5;3268:31;:::i;:::-;3318:5;-1:-1:-1;3375:2:1;3360:18;;3347:32;3388:30;3347:32;3388:30;:::i;:::-;3437:7;3427:17;;;3068:382;;;;;:::o;4411:388::-;4479:6;4487;4540:2;4528:9;4519:7;4515:23;4511:32;4508:52;;;4556:1;4553;4546:12;4508:52;4595:9;4582:23;4614:31;4639:5;4614:31;:::i;:::-;4664:5;-1:-1:-1;4721:2:1;4706:18;;4693:32;4734:33;4693:32;4734:33;:::i;4804:380::-;4883:1;4879:12;;;;4926;;;4947:61;;5001:4;4993:6;4989:17;4979:27;;4947:61;5054:2;5046:6;5043:14;5023:18;5020:38;5017:161;;5100:10;5095:3;5091:20;5088:1;5081:31;5135:4;5132:1;5125:15;5163:4;5160:1;5153:15;5017:161;;4804:380;;;:::o;5189:127::-;5250:10;5245:3;5241:20;5238:1;5231:31;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5321:125;5386:9;;;5407:10;;;5404:36;;;5420:18;;:::i;5451:356::-;5653:2;5635:21;;;5672:18;;;5665:30;5731:34;5726:2;5711:18;;5704:62;5798:2;5783:18;;5451:356::o;6091:245::-;6158:6;6211:2;6199:9;6190:7;6186:23;6182:32;6179:52;;;6227:1;6224;6217:12;6179:52;6259:9;6253:16;6278:28;6300:5;6278:28;:::i;8320:401::-;8522:2;8504:21;;;8561:2;8541:18;;;8534:30;8600:34;8595:2;8580:18;;8573:62;-1:-1:-1;;;8666:2:1;8651:18;;8644:35;8711:3;8696:19;;8320:401::o;8726:399::-;8928:2;8910:21;;;8967:2;8947:18;;;8940:30;9006:34;9001:2;8986:18;;8979:62;-1:-1:-1;;;9072:2:1;9057:18;;9050:33;9115:3;9100:19;;8726:399::o;9471:217::-;9511:1;9537;9527:132;;9581:10;9576:3;9572:20;9569:1;9562:31;9616:4;9613:1;9606:15;9644:4;9641:1;9634:15;9527:132;-1:-1:-1;9673:9:1;;9471:217::o;9693:168::-;9766:9;;;9797;;9814:15;;;9808:22;;9794:37;9784:71;;9835:18;;:::i;9866:128::-;9933:9;;;9954:11;;;9951:37;;;9968:18;;:::i;9999:251::-;10069:6;10122:2;10110:9;10101:7;10097:23;10093:32;10090:52;;;10138:1;10135;10128:12;10090:52;10170:9;10164:16;10189:31;10214:5;10189:31;:::i;10255:188::-;10334:13;;-1:-1:-1;;;;;10376:42:1;;10366:53;;10356:81;;10433:1;10430;10423:12;10356:81;10255:188;;;:::o;10448:450::-;10535:6;10543;10551;10604:2;10592:9;10583:7;10579:23;10575:32;10572:52;;;10620:1;10617;10610:12;10572:52;10643:40;10673:9;10643:40;:::i;:::-;10633:50;;10702:49;10747:2;10736:9;10732:18;10702:49;:::i;:::-;10692:59;;10794:2;10783:9;10779:18;10773:25;10838:10;10831:5;10827:22;10820:5;10817:33;10807:61;;10864:1;10861;10854:12;10807:61;10887:5;10877:15;;;10448:450;;;;;:::o;11442:127::-;11503:10;11498:3;11494:20;11491:1;11484:31;11534:4;11531:1;11524:15;11558:4;11555:1;11548:15;11574:461;11627:3;11665:5;11659:12;11692:6;11687:3;11680:19;11718:4;11747:2;11742:3;11738:12;11731:19;;11784:2;11777:5;11773:14;11805:1;11815:195;11829:6;11826:1;11823:13;11815:195;;;11894:13;;-1:-1:-1;;;;;11890:39:1;11878:52;;11950:12;;;;11985:15;;;;11926:1;11844:9;11815:195;;;-1:-1:-1;12026:3:1;;11574:461;-1:-1:-1;;;;;11574:461:1:o;12040:582::-;12339:6;12328:9;12321:25;12382:6;12377:2;12366:9;12362:18;12355:34;12425:3;12420:2;12409:9;12405:18;12398:31;12302:4;12446:57;12498:3;12487:9;12483:19;12475:6;12446:57;:::i;:::-;-1:-1:-1;;;;;12539:32:1;;;;12534:2;12519:18;;12512:60;-1:-1:-1;12603:3:1;12588:19;12581:35;12438:65;12040:582;-1:-1:-1;;;12040:582:1:o;12627:332::-;12834:6;12823:9;12816:25;12877:2;12872;12861:9;12857:18;12850:30;12797:4;12897:56;12949:2;12938:9;12934:18;12926:6;12897:56;:::i;:::-;12889:64;12627:332;-1:-1:-1;;;;12627:332:1:o
Swarm Source
ipfs://467058edeaa9b13c01fbfcaf524f5f37b51cf27938ea0a62d3905090d5ee35a0
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.