ERC-20
Overview
Max Total Supply
1,000,000,000 BETX
Holders
2
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BETX
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-07 */ /*────────────────────────────┐ Name: Betix Coin Symbol: BETX Decimals: 18 Total supply: 1,000,000,000 Network: ETH Developed by coinsult.net _____ _ _ _ | |___|_|___ ___ _ _| | |_ | --| . | | |_ -| | | | _| |_____|___|_|_|_|___|___|_|_| t.me/coinsult_tg ──────────────────────────────┘ SPDX-License-Identifier: MIT */ pragma solidity 0.8.19; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library Address { function sendValue(address payable recipient, uint256 amount) internal returns(bool){ require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); return success; // always proceeds } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; 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 balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mintOnce(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(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); } } contract BETX is ERC20, Ownable { using Address for address payable; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => bool) private _isExcludedFromFees; uint256 public feeOnBuy; uint256 public feeOnSell; uint256 public burnFeeOnBuy; uint256 public burnFeeOnSell; address public feeReceiver; uint256 public swapTokensAtAmount; bool private swapping; bool public swapEnabled; event ExcludeFromFees(address indexed account, bool isExcluded); event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); constructor () ERC20("Betix Coin", "BETX") { address router; address pinkLock; if (block.chainid == 56) { router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock } else if (block.chainid == 97) { router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock } else if (block.chainid == 1 || block.chainid == 5) { router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock } else { revert(); } IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _approve(address(this), address(uniswapV2Router), type(uint256).max); feeOnBuy = 25; feeOnSell = 25; burnFeeOnBuy = 25; burnFeeOnSell = 25; feeReceiver = 0x8a05cbbB4dCB026004Bb51C4993CE88fe0B42796; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[pinkLock] = true; _mintOnce(owner(), 1e9 * (10 ** decimals())); swapTokensAtAmount = totalSupply() / 5_000; swapEnabled = false; } receive() external payable {} function creator() public pure returns (string memory) { return "t.me/coinsult_tg"; } function claimStuckTokens(address token) external onlyOwner { require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens"); if (token == address(0x0)) { payable(msg.sender).sendValue(address(this).balance); return; } IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this))); } function excludeFromFees(address account, bool excluded) external onlyOwner{ _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } event UpdateFees(uint256 feeOnBuy, uint256 feeOnSell); function updateFees(uint256 _feeOnSell, uint256 _feeOnBuy, uint256 _burnFeeOnSell, uint256 _burnFeeOnBuy) external onlyOwner { feeOnBuy = _feeOnBuy; feeOnSell = _feeOnSell; burnFeeOnBuy = _burnFeeOnBuy; burnFeeOnSell = _burnFeeOnSell; require(feeOnBuy + burnFeeOnBuy <= 50, "CSLT: Total Fees cannot exceed the maximum"); require(feeOnSell + burnFeeOnSell <= 50, "CSLT: Total Fees cannot exceed the maximum"); emit UpdateFees(feeOnSell, feeOnBuy); } event FeeReceiverChanged(address feeReceiver); function changeFeeReceiver(address _feeReceiver) external onlyOwner{ require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address"); feeReceiver = _feeReceiver; emit FeeReceiverChanged(feeReceiver); } event TradingEnabled(bool tradingEnabled); bool public tradingEnabled; function enableTrading() external onlyOwner{ require(!tradingEnabled, "CSLT: Trading already enabled."); tradingEnabled = true; swapEnabled = true; emit TradingEnabled(tradingEnabled); } bool public taxDisabled; function disableTax() external onlyOwner { taxDisabled = true; swapAndSendFee(balanceOf(address(this))); } function _transfer(address from,address to,uint256 amount) internal override { require(from != address(0), "CSLT: transfer from the zero address"); require(to != address(0), "CSLT: transfer to the zero address"); require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!"); if (amount == 0 || taxDisabled) { super._transfer(from, to, amount); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && to == uniswapV2Pair && feeOnBuy + feeOnSell > 0 && !_isExcludedFromFees[from] && swapEnabled ) { swapping = true; swapAndSendFee(contractTokenBalance); swapping = false; } uint256 _totalFees; uint256 _burnFees; uint256 _amount = amount; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; } else if (from == uniswapV2Pair) { _totalFees = feeOnBuy; _burnFees = burnFeeOnBuy; } else if (to == uniswapV2Pair) { _totalFees = feeOnSell; _burnFees = burnFeeOnSell; } else { _totalFees = 0; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 1_000; amount = amount - fees; super._transfer(from, address(this), fees); } if (_burnFees > 0) { uint256 fees = (_amount * _burnFees) / 1_000; amount = amount - fees; super._burn(from, fees); } super._transfer(from, to, amount); } function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{ require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply"); swapTokensAtAmount = newAmount; swapEnabled = _swapEnabled; emit SwapTokensAtAmountUpdated(swapTokensAtAmount); } function swapAndSendFee(uint256 tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 newBalance = address(this).balance - initialBalance; payable(feeReceiver).sendValue(newBalance); emit SwapAndSendFee(tokenAmount, newBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"UpdateFees","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":"burnFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeOnSell","type":"uint256"},{"internalType":"uint256","name":"_feeOnBuy","type":"uint256"},{"internalType":"uint256","name":"_burnFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"_burnFeeOnBuy","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600a8152602001692132ba34bc1021b7b4b760b11b815250604051806040016040528060048152602001630848aa8b60e31b81525081600390816200006391906200072a565b5060046200007282826200072a565b5050506000620000876200047060201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600080466038036200011457507310ed43c718714eb63d5aa57b78b54704e256024e905073407993575c91ce7643a4d4ccacc9a98c36ee1bbe6200019e565b4660610362000150575073d99d1c33f9fc3444f8101754abc46c52416550d19050735e5b9be5fd939c578abe5800a90c566eeeba44a56200019e565b4660011480620001605750466005145b15620001995750737a250d5630b4cf539739df2c5dacb4c659f2488d90507371b5759d73262fbb223956913ecf4ecc510576416200019e565b600080fd5b60008290506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a9190620007f6565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e9190620007f6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f29190620007f6565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200033390309060001962000474565b60196009819055600a819055600b819055600c55600d80546001600160a01b031916738a05cbbb4dcb026004bb51c4993ce88fe0b42796179055600160086000620003866005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548516600190811790915530845282842080548616821790559087168352912080549092161790556200043e6200041a6005546001600160a01b031690565b620004286012600a6200093d565b6200043890633b9aca006200094e565b620005a0565b6113886200044b60025490565b62000457919062000968565b600e555050600f805461ff001916905550620009a19050565b3390565b6001600160a01b038316620004dc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200053f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004d3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620005f85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d3565b80600260008282546200060c91906200098b565b90915550506001600160a01b038216600090815260208190526040812080548392906200063b9084906200098b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006b057607f821691505b602082108103620006d157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072557600081815260208120601f850160051c81016020861015620007005750805b601f850160051c820191505b8181101562000721578281556001016200070c565b5050505b505050565b81516001600160401b0381111562000746576200074662000685565b6200075e816200075784546200069b565b84620006d7565b602080601f8311600181146200079657600084156200077d5750858301515b600019600386901b1c1916600185901b17855562000721565b600085815260208120601f198616915b82811015620007c757888601518255948401946001909101908401620007a6565b5085821015620007e65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200080957600080fd5b81516001600160a01b03811681146200082157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200087f57816000190482111562000863576200086362000828565b808516156200087157918102915b93841c939080029062000843565b509250929050565b600082620008985750600162000937565b81620008a75750600062000937565b8160018114620008c05760028114620008cb57620008eb565b600191505062000937565b60ff841115620008df57620008df62000828565b50506001821b62000937565b5060208310610133831016604e8410600b841016171562000910575081810a62000937565b6200091c83836200083e565b806000190482111562000933576200093362000828565b0290505b92915050565b60006200082160ff84168362000887565b808202811582820484141762000937576200093762000828565b6000826200098657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000937576200093762000828565b611e8180620009b16000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063b3f00674116100a0578063ced695a41161006f578063ced695a4146105d2578063dd62ed3e146105e7578063e2f456051461062d578063f2fde38b14610643578063f9d0831a1461066357600080fd5b8063b3f006741461055c578063bb8c3ee01461057c578063c024666814610592578063c6616ba1146105b257600080fd5b8063a457c2d7116100dc578063a457c2d7146104e6578063a9059cbb14610506578063a938d1c914610526578063b1fde9f81461053c57600080fd5b80638da5cb5b1461047c57806395d89b411461049a578063989a124f146104af5780639a07579a146104c557600080fd5b806349bd5a5e116101905780636ddd17131161015f5780636ddd1713146103db57806370a08231146103fa578063715018a6146104305780637c08b964146104475780638a8c523c1461046757600080fd5b806349bd5a5e1461034c5780634ada218b1461036c5780634fbee1931461038c57806365048d08146103c557600080fd5b806318160ddd116101cc57806318160ddd146102d157806323b872dd146102f0578063313ce56714610310578063395093511461032c57600080fd5b806302d05d3f1461020957806306fdde0314610254578063095ea7b3146102695780631694505e1461029957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161024b9190611a83565b60405180910390f35b34801561026057600080fd5b5061023e610683565b34801561027557600080fd5b50610289610284366004611ae6565b610715565b604051901515815260200161024b565b3480156102a557600080fd5b506006546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102dd57600080fd5b506002545b60405190815260200161024b565b3480156102fc57600080fd5b5061028961030b366004611b12565b61072c565b34801561031c57600080fd5b506040516012815260200161024b565b34801561033857600080fd5b50610289610347366004611ae6565b6107e2565b34801561035857600080fd5b506007546102b9906001600160a01b031681565b34801561037857600080fd5b50600f546102899062010000900460ff1681565b34801561039857600080fd5b506102896103a7366004611b53565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103d157600080fd5b506102e2600a5481565b3480156103e757600080fd5b50600f5461028990610100900460ff1681565b34801561040657600080fd5b506102e2610415366004611b53565b6001600160a01b031660009081526020819052604090205490565b34801561043c57600080fd5b5061044561081e565b005b34801561045357600080fd5b50610445610462366004611b53565b610892565b34801561047357600080fd5b5061044561097c565b34801561048857600080fd5b506005546001600160a01b03166102b9565b3480156104a657600080fd5b5061023e610a54565b3480156104bb57600080fd5b506102e2600c5481565b3480156104d157600080fd5b50600f54610289906301000000900460ff1681565b3480156104f257600080fd5b50610289610501366004611ae6565b610a63565b34801561051257600080fd5b50610289610521366004611ae6565b610afc565b34801561053257600080fd5b506102e2600b5481565b34801561054857600080fd5b50610445610557366004611b85565b610b09565b34801561056857600080fd5b50600d546102b9906001600160a01b031681565b34801561058857600080fd5b506102e260095481565b34801561059e57600080fd5b506104456105ad366004611bb5565b610c1b565b3480156105be57600080fd5b506104456105cd366004611be3565b610ca4565b3480156105de57600080fd5b50610445610d88565b3480156105f357600080fd5b506102e2610602366004611c15565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063957600080fd5b506102e2600e5481565b34801561064f57600080fd5b5061044561065e366004611b53565b610dee565b34801561066f57600080fd5b5061044561067e366004611b53565b610ed9565b60606003805461069290611c43565b80601f01602080910402602001604051908101604052809291908181526020018280546106be90611c43565b801561070b5780601f106106e05761010080835404028352916020019161070b565b820191906000526020600020905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b6000610722338484611081565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146107cc57828110156107bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107cc8533858403611081565b6107d78585856111a6565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610722918590610819908690611c93565b611081565b6005546001600160a01b031633146108485760405162461bcd60e51b81526004016107b690611ca6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108bc5760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b0381166109285760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016107b6565b600d80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109a65760405162461bcd60e51b81526004016107b690611ca6565b600f5462010000900460ff16156109ff5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e000060448201526064016107b6565b600f80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461069290611c43565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ae55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107b6565b610af23385858403611081565b5060019392505050565b60006107223384846111a6565b6005546001600160a01b03163314610b335760405162461bcd60e51b81526004016107b690611ca6565b620f4240610b4060025490565b610b4a9190611cdb565b8211610bcc5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a4016107b6565b600e829055600f805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610c455760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610cce5760405162461bcd60e51b81526004016107b690611ca6565b6009839055600a849055600b819055600c8290556032610cee8285611c93565b1115610d0c5760405162461bcd60e51b81526004016107b690611cfd565b6032600c54600a54610d1e9190611c93565b1115610d3c5760405162461bcd60e51b81526004016107b690611cfd565b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610d7a929190918252602082015260400190565b60405180910390a150505050565b6005546001600160a01b03163314610db25760405162461bcd60e51b81526004016107b690611ca6565b600f805463ff00000019166301000000179055610dec610de7306001600160a01b031660009081526020819052604090205490565b611520565b565b6005546001600160a01b03163314610e185760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b038116610e7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b6565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f035760405162461bcd60e51b81526004016107b690611ca6565b306001600160a01b03821603610f815760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e7300000060648201526084016107b6565b6001600160a01b038116610f9d57610f9933476116bf565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190611d47565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f999190611d60565b50565b6001600160a01b0383166110e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166111445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112085760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b600f5462010000900460ff168061129857506001600160a01b03831660009081526008602052604090205460ff165b806112bb57506001600160a01b03821660009081526008602052604090205460ff165b6113075760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c656421000060448201526064016107b6565b80158061131d5750600f546301000000900460ff165b156113325761132d83838361176e565b505050565b30600090815260208190526040902054600e54811080159081906113595750600f5460ff16155b801561137257506007546001600160a01b038581169116145b801561138d57506000600a5460095461138b9190611c93565b115b80156113b257506001600160a01b03851660009081526008602052604090205460ff16155b80156113c55750600f54610100900460ff165b156113eb57600f805460ff191660011790556113e082611520565b600f805460ff191690555b6001600160a01b0385166000908152600860205260408120548190859060ff168061142e57506001600160a01b03871660009081526008602052604090205460ff165b8061143b5750600f5460ff165b156114495760009250611498565b6007546001600160a01b039081169089160361146e576009549250600b549150611498565b6007546001600160a01b039081169088160361149357600a549250600c549150611498565b600092505b82156114d25760006103e86114ad8589611d7d565b6114b79190611cdb565b90506114c38188611d94565b96506114d089308361176e565b505b811561150b5760006103e86114e78484611d7d565b6114f19190611cdb565b90506114fd8188611d94565b9650611509898261193d565b505b61151688888861176e565b5050505050505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061155957611559611da7565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190611dbd565b816001815181106115e9576115e9611da7565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac9479061162f908690600090869030904290600401611dda565b600060405180830381600087803b15801561164957600080fd5b505af192505050801561165a575060015b61166357505050565b600061166f8347611d94565b600d54909150611688906001600160a01b0316826116bf565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b9101610d7a565b6000814710156117115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107b6565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461175e576040519150601f19603f3d011682016040523d82523d6000602084013e611763565b606091505b509095945050505050565b6001600160a01b0383166117d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b0382166118345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b6001600160a01b038316600090815260208190526040902054818110156118ac5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107b6565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906118e3908490611c93565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161192f91815260200190565b60405180910390a350505050565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b6565b6001600160a01b03821660009081526020819052604090205481811015611a115760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107b6565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611a40908490611d94565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611199565b600060208083528351808285015260005b81811015611ab057858101830151858201604001528201611a94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461107e57600080fd5b60008060408385031215611af957600080fd5b8235611b0481611ad1565b946020939093013593505050565b600080600060608486031215611b2757600080fd5b8335611b3281611ad1565b92506020840135611b4281611ad1565b929592945050506040919091013590565b600060208284031215611b6557600080fd5b8135611b7081611ad1565b9392505050565b801515811461107e57600080fd5b60008060408385031215611b9857600080fd5b823591506020830135611baa81611b77565b809150509250929050565b60008060408385031215611bc857600080fd5b8235611bd381611ad1565b91506020830135611baa81611b77565b60008060008060808587031215611bf957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c2857600080fd5b8235611c3381611ad1565b91506020830135611baa81611ad1565b600181811c90821680611c5757607f821691505b602082108103611c7757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561072657610726611c7d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082611cf857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f43534c543a20546f74616c20466565732063616e6e6f742065786365656420746040820152696865206d6178696d756d60b01b606082015260800190565b600060208284031215611d5957600080fd5b5051919050565b600060208284031215611d7257600080fd5b8151611b7081611b77565b808202811582820484141761072657610726611c7d565b8181038181111561072657610726611c7d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611dcf57600080fd5b8151611b7081611ad1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e2a5784516001600160a01b031683529383019391830191600101611e05565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220724245da2fc52e7c9281ba674898ef2b69b3855778b0561a2ff72614f03792ed64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063b3f00674116100a0578063ced695a41161006f578063ced695a4146105d2578063dd62ed3e146105e7578063e2f456051461062d578063f2fde38b14610643578063f9d0831a1461066357600080fd5b8063b3f006741461055c578063bb8c3ee01461057c578063c024666814610592578063c6616ba1146105b257600080fd5b8063a457c2d7116100dc578063a457c2d7146104e6578063a9059cbb14610506578063a938d1c914610526578063b1fde9f81461053c57600080fd5b80638da5cb5b1461047c57806395d89b411461049a578063989a124f146104af5780639a07579a146104c557600080fd5b806349bd5a5e116101905780636ddd17131161015f5780636ddd1713146103db57806370a08231146103fa578063715018a6146104305780637c08b964146104475780638a8c523c1461046757600080fd5b806349bd5a5e1461034c5780634ada218b1461036c5780634fbee1931461038c57806365048d08146103c557600080fd5b806318160ddd116101cc57806318160ddd146102d157806323b872dd146102f0578063313ce56714610310578063395093511461032c57600080fd5b806302d05d3f1461020957806306fdde0314610254578063095ea7b3146102695780631694505e1461029957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161024b9190611a83565b60405180910390f35b34801561026057600080fd5b5061023e610683565b34801561027557600080fd5b50610289610284366004611ae6565b610715565b604051901515815260200161024b565b3480156102a557600080fd5b506006546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102dd57600080fd5b506002545b60405190815260200161024b565b3480156102fc57600080fd5b5061028961030b366004611b12565b61072c565b34801561031c57600080fd5b506040516012815260200161024b565b34801561033857600080fd5b50610289610347366004611ae6565b6107e2565b34801561035857600080fd5b506007546102b9906001600160a01b031681565b34801561037857600080fd5b50600f546102899062010000900460ff1681565b34801561039857600080fd5b506102896103a7366004611b53565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103d157600080fd5b506102e2600a5481565b3480156103e757600080fd5b50600f5461028990610100900460ff1681565b34801561040657600080fd5b506102e2610415366004611b53565b6001600160a01b031660009081526020819052604090205490565b34801561043c57600080fd5b5061044561081e565b005b34801561045357600080fd5b50610445610462366004611b53565b610892565b34801561047357600080fd5b5061044561097c565b34801561048857600080fd5b506005546001600160a01b03166102b9565b3480156104a657600080fd5b5061023e610a54565b3480156104bb57600080fd5b506102e2600c5481565b3480156104d157600080fd5b50600f54610289906301000000900460ff1681565b3480156104f257600080fd5b50610289610501366004611ae6565b610a63565b34801561051257600080fd5b50610289610521366004611ae6565b610afc565b34801561053257600080fd5b506102e2600b5481565b34801561054857600080fd5b50610445610557366004611b85565b610b09565b34801561056857600080fd5b50600d546102b9906001600160a01b031681565b34801561058857600080fd5b506102e260095481565b34801561059e57600080fd5b506104456105ad366004611bb5565b610c1b565b3480156105be57600080fd5b506104456105cd366004611be3565b610ca4565b3480156105de57600080fd5b50610445610d88565b3480156105f357600080fd5b506102e2610602366004611c15565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561063957600080fd5b506102e2600e5481565b34801561064f57600080fd5b5061044561065e366004611b53565b610dee565b34801561066f57600080fd5b5061044561067e366004611b53565b610ed9565b60606003805461069290611c43565b80601f01602080910402602001604051908101604052809291908181526020018280546106be90611c43565b801561070b5780601f106106e05761010080835404028352916020019161070b565b820191906000526020600020905b8154815290600101906020018083116106ee57829003601f168201915b5050505050905090565b6000610722338484611081565b5060015b92915050565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001981146107cc57828110156107bf5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107cc8533858403611081565b6107d78585856111a6565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610722918590610819908690611c93565b611081565b6005546001600160a01b031633146108485760405162461bcd60e51b81526004016107b690611ca6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108bc5760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b0381166109285760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016107b6565b600d80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109a65760405162461bcd60e51b81526004016107b690611ca6565b600f5462010000900460ff16156109ff5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e000060448201526064016107b6565b600f80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461069290611c43565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ae55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107b6565b610af23385858403611081565b5060019392505050565b60006107223384846111a6565b6005546001600160a01b03163314610b335760405162461bcd60e51b81526004016107b690611ca6565b620f4240610b4060025490565b610b4a9190611cdb565b8211610bcc5760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a4016107b6565b600e829055600f805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610c455760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610cce5760405162461bcd60e51b81526004016107b690611ca6565b6009839055600a849055600b819055600c8290556032610cee8285611c93565b1115610d0c5760405162461bcd60e51b81526004016107b690611cfd565b6032600c54600a54610d1e9190611c93565b1115610d3c5760405162461bcd60e51b81526004016107b690611cfd565b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610d7a929190918252602082015260400190565b60405180910390a150505050565b6005546001600160a01b03163314610db25760405162461bcd60e51b81526004016107b690611ca6565b600f805463ff00000019166301000000179055610dec610de7306001600160a01b031660009081526020819052604090205490565b611520565b565b6005546001600160a01b03163314610e185760405162461bcd60e51b81526004016107b690611ca6565b6001600160a01b038116610e7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107b6565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f035760405162461bcd60e51b81526004016107b690611ca6565b306001600160a01b03821603610f815760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e7300000060648201526084016107b6565b6001600160a01b038116610f9d57610f9933476116bf565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190611d47565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f999190611d60565b50565b6001600160a01b0383166110e35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166111445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166112085760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b0382166112695760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b600f5462010000900460ff168061129857506001600160a01b03831660009081526008602052604090205460ff165b806112bb57506001600160a01b03821660009081526008602052604090205460ff165b6113075760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c656421000060448201526064016107b6565b80158061131d5750600f546301000000900460ff165b156113325761132d83838361176e565b505050565b30600090815260208190526040902054600e54811080159081906113595750600f5460ff16155b801561137257506007546001600160a01b038581169116145b801561138d57506000600a5460095461138b9190611c93565b115b80156113b257506001600160a01b03851660009081526008602052604090205460ff16155b80156113c55750600f54610100900460ff165b156113eb57600f805460ff191660011790556113e082611520565b600f805460ff191690555b6001600160a01b0385166000908152600860205260408120548190859060ff168061142e57506001600160a01b03871660009081526008602052604090205460ff165b8061143b5750600f5460ff165b156114495760009250611498565b6007546001600160a01b039081169089160361146e576009549250600b549150611498565b6007546001600160a01b039081169088160361149357600a549250600c549150611498565b600092505b82156114d25760006103e86114ad8589611d7d565b6114b79190611cdb565b90506114c38188611d94565b96506114d089308361176e565b505b811561150b5760006103e86114e78484611d7d565b6114f19190611cdb565b90506114fd8188611d94565b9650611509898261193d565b505b61151688888861176e565b5050505050505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061155957611559611da7565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190611dbd565b816001815181106115e9576115e9611da7565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac9479061162f908690600090869030904290600401611dda565b600060405180830381600087803b15801561164957600080fd5b505af192505050801561165a575060015b61166357505050565b600061166f8347611d94565b600d54909150611688906001600160a01b0316826116bf565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b9101610d7a565b6000814710156117115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107b6565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461175e576040519150601f19603f3d011682016040523d82523d6000602084013e611763565b606091505b509095945050505050565b6001600160a01b0383166117d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b0382166118345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b6001600160a01b038316600090815260208190526040902054818110156118ac5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107b6565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906118e3908490611c93565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161192f91815260200190565b60405180910390a350505050565b6001600160a01b03821661199d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016107b6565b6001600160a01b03821660009081526020819052604090205481811015611a115760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016107b6565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611a40908490611d94565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611199565b600060208083528351808285015260005b81811015611ab057858101830151858201604001528201611a94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461107e57600080fd5b60008060408385031215611af957600080fd5b8235611b0481611ad1565b946020939093013593505050565b600080600060608486031215611b2757600080fd5b8335611b3281611ad1565b92506020840135611b4281611ad1565b929592945050506040919091013590565b600060208284031215611b6557600080fd5b8135611b7081611ad1565b9392505050565b801515811461107e57600080fd5b60008060408385031215611b9857600080fd5b823591506020830135611baa81611b77565b809150509250929050565b60008060408385031215611bc857600080fd5b8235611bd381611ad1565b91506020830135611baa81611b77565b60008060008060808587031215611bf957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c2857600080fd5b8235611c3381611ad1565b91506020830135611baa81611ad1565b600181811c90821680611c5757607f821691505b602082108103611c7757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561072657610726611c7d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082611cf857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f43534c543a20546f74616c20466565732063616e6e6f742065786365656420746040820152696865206d6178696d756d60b01b606082015260800190565b600060208284031215611d5957600080fd5b5051919050565b600060208284031215611d7257600080fd5b8151611b7081611b77565b808202811582820484141761072657610726611c7d565b8181038181111561072657610726611c7d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611dcf57600080fd5b8151611b7081611ad1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e2a5784516001600160a01b031683529383019391830191600101611e05565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220724245da2fc52e7c9281ba674898ef2b69b3855778b0561a2ff72614f03792ed64736f6c63430008130033
Deployed Bytecode Sourcemap
8479:7763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11026:99;;;;;;;;;;-1:-1:-1;11092:25:0;;;;;;;;;;;;-1:-1:-1;;;11092:25:0;;;;11026:99;;;;;;;:::i;:::-;;;;;;;;4390:100;;;;;;;;;;;;;:::i;5304:169::-;;;;;;;;;;-1:-1:-1;5304:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5304:169:0;1023:187:1;8560:41:0;;;;;;;;;;-1:-1:-1;8560:41:0;;;;-1:-1:-1;;;;;8560:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;8560:41:0;1215:228:1;4711:108:0;;;;;;;;;;-1:-1:-1;4799:12:0;;4711:108;;;1594:25:1;;;1582:2;1567:18;4711:108:0;1448:177:1;5481:573:0;;;;;;;;;;-1:-1:-1;5481:573:0;;;;;:::i;:::-;;:::i;4610:93::-;;;;;;;;;;-1:-1:-1;4610:93:0;;4693:2;2233:36:1;;2221:2;2206:18;4610:93:0;2091:184:1;6062:215:0;;;;;;;;;;-1:-1:-1;6062:215:0;;;;;:::i;:::-;;:::i;8608:29::-;;;;;;;;;;-1:-1:-1;8608:29:0;;;;-1:-1:-1;;;;;8608:29:0;;;12838:26;;;;;;;;;;-1:-1:-1;12838:26:0;;;;;;;;;;;11741:125;;;;;;;;;;-1:-1:-1;11741:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11830:28:0;11806:4;11830:28;;;:19;:28;;;;;;;;;11741:125;8739:25;;;;;;;;;;;;;;;;8956:26;;;;;;;;;;-1:-1:-1;8956:26:0;;;;;;;;;;;4827:127;;;;;;;;;;-1:-1:-1;4827:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4928:18:0;4901:7;4928:18;;;;;;;;;;;;4827:127;3579:148;;;;;;;;;;;;;:::i;:::-;;12520:256;;;;;;;;;;-1:-1:-1;12520:256:0;;;;;:::i;:::-;;:::i;12873:229::-;;;;;;;;;;;;;:::i;3365:79::-;;;;;;;;;;-1:-1:-1;3430:6:0;;-1:-1:-1;;;;;3430:6:0;3365:79;;4498:104;;;;;;;;;;;;;:::i;8808:29::-;;;;;;;;;;;;;;;;13110:23;;;;;;;;;;-1:-1:-1;13110:23:0;;;;;;;;;;;6285:413;;;;;;;;;;-1:-1:-1;6285:413:0;;;;;:::i;:::-;;:::i;4962:175::-;;;;;;;;;;-1:-1:-1;4962:175:0;;;;;:::i;:::-;;:::i;8773:28::-;;;;;;;;;;;;;;;;15178:366;;;;;;;;;;-1:-1:-1;15178:366:0;;;;;:::i;:::-;;:::i;8846:27::-;;;;;;;;;;-1:-1:-1;8846:27:0;;;;-1:-1:-1;;;;;8846:27:0;;;8708:24;;;;;;;;;;;;;;;;11548:185;;;;;;;;;;-1:-1:-1;11548:185:0;;;;;:::i;:::-;;:::i;11936:522::-;;;;;;;;;;-1:-1:-1;11936:522:0;;;;;:::i;:::-;;:::i;13142:129::-;;;;;;;;;;;;;:::i;5145:151::-;;;;;;;;;;-1:-1:-1;5145:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5261:18:0;;;5234:7;5261:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5145:151;8882:34;;;;;;;;;;;;;;;;3735:244;;;;;;;;;;-1:-1:-1;3735:244:0;;;;;:::i;:::-;;:::i;11133:407::-;;;;;;;;;;-1:-1:-1;11133:407:0;;;;;:::i;:::-;;:::i;4390:100::-;4444:13;4477:5;4470:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4390:100;:::o;5304:169::-;5387:4;5404:39;2768:10;5427:7;5436:6;5404:8;:39::i;:::-;-1:-1:-1;5461:4:0;5304:169;;;;;:::o;5481:573::-;-1:-1:-1;;;;;5665:19:0;;5621:4;5665:19;;;:11;:19;;;;;;;;2768:10;5665:33;;;;;;;;-1:-1:-1;;5713:37:0;;5709:265;;5795:6;5775:16;:26;;5767:79;;;;-1:-1:-1;;;5767:79:0;;4934:2:1;5767:79:0;;;4916:21:1;4973:2;4953:18;;;4946:30;5012:34;4992:18;;;4985:62;-1:-1:-1;;;5063:18:1;;;5056:38;5111:19;;5767:79:0;;;;;;;;;5890:57;5899:6;2768:10;5940:6;5921:16;:25;5890:8;:57::i;:::-;5986:36;5996:6;6004:9;6015:6;5986:9;:36::i;:::-;-1:-1:-1;6042:4:0;;5481:573;-1:-1:-1;;;;5481:573:0:o;6062:215::-;2768:10;6150:4;6199:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6199:34:0;;;;;;;;;;6150:4;;6167:80;;6190:7;;6199:47;;6236:10;;6199:47;:::i;:::-;6167:8;:80::i;3579:148::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;3670:6:::1;::::0;3649:40:::1;::::0;3686:1:::1;::::0;-1:-1:-1;;;;;3670:6:0::1;::::0;3649:40:::1;::::0;3686:1;;3649:40:::1;3700:6;:19:::0;;-1:-1:-1;;;;;;3700:19:0::1;::::0;;3579:148::o;12520:256::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12606:26:0;::::1;12598:84;;;::::0;-1:-1:-1;;;12598:84:0;;5966:2:1;12598:84:0::1;::::0;::::1;5948:21:1::0;6005:2;5985:18;;;5978:30;6044:34;6024:18;;;6017:62;-1:-1:-1;;;6095:18:1;;;6088:43;6148:19;;12598:84:0::1;5764:409:1::0;12598:84:0::1;12693:11;:26:::0;;-1:-1:-1;;;;;;12693:26:0::1;-1:-1:-1::0;;;;;12693:26:0;::::1;::::0;;::::1;::::0;;;12737:31:::1;::::0;1386:51:1;;;12737:31:0::1;::::0;1374:2:1;1359:18;12737:31:0::1;;;;;;;12520:256:::0;:::o;12873:229::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;12936:14:::1;::::0;;;::::1;;;12935:15;12927:58;;;::::0;-1:-1:-1;;;12927:58:0;;6380:2:1;12927:58:0::1;::::0;::::1;6362:21:1::0;6419:2;6399:18;;;6392:30;6458:32;6438:18;;;6431:60;6508:18;;12927:58:0::1;6178:354:1::0;12927:58:0::1;12996:14;:21:::0;;13028:18;-1:-1:-1;;13028:18:0;;;;;;;;13064:30:::1;::::0;12996:21;13079:14;;::::1;12996:21;13079:14;1188::1::0;1181:22;1163:41;;13064:30:0::1;::::0;1151:2:1;1136:18;13064:30:0::1;;;;;;;12873:229::o:0;4498:104::-;4554:13;4587:7;4580:14;;;;;:::i;6285:413::-;2768:10;6378:4;6422:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6422:34:0;;;;;;;;;;6475:35;;;;6467:85;;;;-1:-1:-1;;;6467:85:0;;6739:2:1;6467:85:0;;;6721:21:1;6778:2;6758:18;;;6751:30;6817:34;6797:18;;;6790:62;-1:-1:-1;;;6868:18:1;;;6861:35;6913:19;;6467:85:0;6537:401:1;6467:85:0;6588:67;2768:10;6611:7;6639:15;6620:16;:34;6588:8;:67::i;:::-;-1:-1:-1;6686:4:0;;6285:413;-1:-1:-1;;;6285:413:0:o;4962:175::-;5048:4;5065:42;2768:10;5089:9;5100:6;5065:9;:42::i;15178:366::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;15312:9:::1;15296:13;4799:12:::0;;;4711:108;15296:13:::1;:25;;;;:::i;:::-;15284:9;:37;15276:119;;;::::0;-1:-1:-1;;;15276:119:0;;7367:2:1;15276:119:0::1;::::0;::::1;7349:21:1::0;7406:2;7386:18;;;7379:30;7445:34;7425:18;;;7418:62;7516:34;7496:18;;;7489:62;-1:-1:-1;;;7567:19:1;;;7560:36;7613:19;;15276:119:0::1;7165:473:1::0;15276:119:0::1;15406:18;:30:::0;;;15447:11:::1;:26:::0;;-1:-1:-1;;15447:26:0::1;;::::0;::::1;;;;::::0;;15491:45:::1;::::0;1594:25:1;;;15491:45:0::1;::::0;1582:2:1;1567:18;15491:45:0::1;;;;;;;15178:366:::0;;:::o;11548:185::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11634:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;11634:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11691:34;;1163:41:1;;;11691:34:0::1;::::0;1136:18:1;11691:34:0::1;;;;;;;11548:185:::0;;:::o;11936:522::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;12072:8:::1;:20:::0;;;12103:9:::1;:22:::0;;;12138:12:::1;:28:::0;;;12177:13:::1;:30:::0;;;12255:2:::1;12228:23;12153:13:::0;12083:9;12228:23:::1;:::i;:::-;:29;;12220:84;;;;-1:-1:-1::0;;;12220:84:0::1;;;;;;;:::i;:::-;12352:2;12335:13;;12323:9;;:25;;;;:::i;:::-;:31;;12315:86;;;;-1:-1:-1::0;;;12315:86:0::1;;;;;;;:::i;:::-;12419:31;12430:9;;12441:8;;12419:31;;;;;;8228:25:1::0;;;8284:2;8269:18;;8262:34;8216:2;8201:18;;8054:248;12419:31:0::1;;;;;;;;11936:522:::0;;;;:::o;13142:129::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;13194:11:::1;:18:::0;;-1:-1:-1;;13194:18:0::1;::::0;::::1;::::0;;13223:40:::1;13238:24;13256:4;-1:-1:-1::0;;;;;4928:18:0;4901:7;4928:18;;;;;;;;;;;;4827:127;13238:24:::1;13223:14;:40::i;:::-;13142:129::o:0;3735:244::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3824:22:0;::::1;3816:73;;;::::0;-1:-1:-1;;;3816:73:0;;8509:2:1;3816:73:0::1;::::0;::::1;8491:21:1::0;8548:2;8528:18;;;8521:30;8587:34;8567:18;;;8560:62;-1:-1:-1;;;8638:18:1;;;8631:36;8684:19;;3816:73:0::1;8307:402:1::0;3816:73:0::1;3926:6;::::0;3905:38:::1;::::0;-1:-1:-1;;;;;3905:38:0;;::::1;::::0;3926:6:::1;::::0;3905:38:::1;::::0;3926:6:::1;::::0;3905:38:::1;3954:6;:17:::0;;-1:-1:-1;;;;;;3954:17:0::1;-1:-1:-1::0;;;;;3954:17:0;;;::::1;::::0;;;::::1;::::0;;3735:244::o;11133:407::-;3492:6;;-1:-1:-1;;;;;3492:6:0;2768:10;3492:22;3484:67;;;;-1:-1:-1;;;3484:67:0;;;;;;;:::i;:::-;11229:4:::1;-1:-1:-1::0;;;;;11212:22:0;::::1;::::0;11204:96:::1;;;::::0;-1:-1:-1;;;11204:96:0;;8916:2:1;11204:96:0::1;::::0;::::1;8898:21:1::0;8955:2;8935:18;;;8928:30;8994:34;8974:18;;;8967:62;9065:31;9045:18;;;9038:59;9114:19;;11204:96:0::1;8714:425:1::0;11204:96:0::1;-1:-1:-1::0;;;;;11315:21:0;::::1;11311:127;;11353:52;11361:10;11383:21;11353:29;:52::i;:::-;;11133:407:::0;:::o;11311:127::-:1;11493:38;::::0;-1:-1:-1;;;11493:38:0;;11525:4:::1;11493:38;::::0;::::1;1386:51:1::0;-1:-1:-1;;;;;11458:22:0;::::1;::::0;::::1;::::0;11481:10:::1;::::0;11458:22;;11493:23:::1;::::0;1359:18:1;;11493:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11458:74;::::0;-1:-1:-1;;;;;;11458:74:0::1;::::0;;;;;;-1:-1:-1;;;;;9525:32:1;;;11458:74:0::1;::::0;::::1;9507:51:1::0;9574:18;;;9567:34;9480:18;;11458:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3562:1::-;11133:407:::0;:::o;8092:380::-;-1:-1:-1;;;;;8228:19:0;;8220:68;;;;-1:-1:-1;;;8220:68:0;;10064:2:1;8220:68:0;;;10046:21:1;10103:2;10083:18;;;10076:30;10142:34;10122:18;;;10115:62;-1:-1:-1;;;10193:18:1;;;10186:34;10237:19;;8220:68:0;9862:400:1;8220:68:0;-1:-1:-1;;;;;8307:21:0;;8299:68;;;;-1:-1:-1;;;8299:68:0;;10469:2:1;8299:68:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:34;10527:18;;;10520:62;-1:-1:-1;;;10598:18:1;;;10591:32;10640:19;;8299:68:0;10267:398:1;8299:68:0;-1:-1:-1;;;;;8380:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8432:32;;1594:25:1;;;8432:32:0;;1567:18:1;8432:32:0;;;;;;;;8092:380;;;:::o;13279:1891::-;-1:-1:-1;;;;;13376:18:0;;13368:67;;;;-1:-1:-1;;;13368:67:0;;10872:2:1;13368:67:0;;;10854:21:1;10911:2;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;-1:-1:-1;;;11001:18:1;;;10994:34;11045:19;;13368:67:0;10670:400:1;13368:67:0;-1:-1:-1;;;;;13454:16:0;;13446:63;;;;-1:-1:-1;;;13446:63:0;;11277:2:1;13446:63:0;;;11259:21:1;11316:2;11296:18;;;11289:30;11355:34;11335:18;;;11328:62;-1:-1:-1;;;11406:18:1;;;11399:32;11448:19;;13446:63:0;11075:398:1;13446:63:0;13528:14;;;;;;;;:43;;-1:-1:-1;;;;;;13546:25:0;;;;;;:19;:25;;;;;;;;13528:43;:70;;;-1:-1:-1;;;;;;13575:23:0;;;;;;:19;:23;;;;;;;;13528:70;13520:113;;;;-1:-1:-1;;;13520:113:0;;11680:2:1;13520:113:0;;;11662:21:1;11719:2;11699:18;;;11692:30;11758:32;11738:18;;;11731:60;11808:18;;13520:113:0;11478:354:1;13520:113:0;13657:11;;;:26;;-1:-1:-1;13672:11:0;;;;;;;13657:26;13653:113;;;13700:33;13716:4;13722:2;13726:6;13700:15;:33::i;:::-;13279:1891;;;:::o;13653:113::-;13821:4;13772:28;4928:18;;;;;;;;;;;13879;;13855:42;;;;;;;13914:33;;-1:-1:-1;13939:8:0;;;;13938:9;13914:33;:69;;;;-1:-1:-1;13970:13:0;;-1:-1:-1;;;;;13964:19:0;;;13970:13;;13964:19;13914:69;:110;;;;;14023:1;14011:9;;14000:8;;:20;;;;:::i;:::-;:24;13914:110;:153;;;;-1:-1:-1;;;;;;14042:25:0;;;;;;:19;:25;;;;;;;;14041:26;13914:153;:181;;;;-1:-1:-1;14084:11:0;;;;;;;13914:181;13910:330;;;14122:8;:15;;-1:-1:-1;;14122:15:0;14133:4;14122:15;;;14154:36;14169:20;14154:14;:36::i;:::-;14212:8;:16;;-1:-1:-1;;14212:16:0;;;13910:330;-1:-1:-1;;;;;14348:25:0;;14252:18;14348:25;;;:19;:25;;;;;;14252:18;;14327:6;;14348:25;;;:52;;-1:-1:-1;;;;;;14377:23:0;;;;;;:19;:23;;;;;;;;14348:52;:64;;;-1:-1:-1;14404:8:0;;;;14348:64;14344:399;;;14442:1;14429:14;;14344:399;;;14473:13;;-1:-1:-1;;;;;14473:13:0;;;14465:21;;;;14461:282;;14516:8;;14503:21;;14551:12;;14539:24;;14461:282;;;14591:13;;-1:-1:-1;;;;;14591:13:0;;;14585:19;;;;14581:162;;14635:9;;14621:23;;14671:13;;14659:25;;14581:162;;;14730:1;14717:14;;14581:162;14759:14;;14755:185;;14790:12;14829:5;14806:19;14815:10;14806:6;:19;:::i;:::-;14805:29;;;;:::i;:::-;14790:44;-1:-1:-1;14858:13:0;14790:44;14858:6;:13;:::i;:::-;14849:22;;14886:42;14902:4;14916;14923;14886:15;:42::i;:::-;14775:165;14755:185;14956:13;;14952:165;;14986:12;15025:5;15002:19;15012:9;15002:7;:19;:::i;:::-;15001:29;;;;:::i;:::-;14986:44;-1:-1:-1;15054:13:0;14986:44;15054:6;:13;:::i;:::-;15045:22;;15082:23;15094:4;15100;15082:11;:23::i;:::-;14971:146;14952:165;15129:33;15145:4;15151:2;15155:6;15129:15;:33::i;:::-;13357:1813;;;;;13279:1891;;;:::o;15552:687::-;15699:16;;;15713:1;15699:16;;;;;;;;15641:21;;15616:22;;15699:16;15713:1;15699:16;;;;;;;;;;-1:-1:-1;15699:16:0;15675:40;;15744:4;15726;15731:1;15726:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15726:23:0;;;:7;;;;;;;;;;:23;;;;15770:15;;:22;;;-1:-1:-1;;;15770:22:0;;;;:15;;;;;:20;;:22;;;;;15726:7;;15770:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15760:4;15765:1;15760:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15760:32:0;;;:7;;;;;;;;;:32;15809:15;;:196;;-1:-1:-1;;;15809:196:0;;:15;;;:66;;:196;;15890:11;;15809:15;;15932:4;;15959;;15979:15;;15809:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15805:243;;16030:7;;15552:687;:::o;15805:243::-;16060:18;16081:38;16105:14;16081:21;:38;:::i;:::-;16140:11;;16060:59;;-1:-1:-1;16132:42:0;;-1:-1:-1;;;;;16140:11:0;16060:59;16132:30;:42::i;:::-;-1:-1:-1;16192:39:0;;;8228:25:1;;;8284:2;8269:18;;8262:34;;;16192:39:0;;8201:18:1;16192:39:0;8054:248:1;2363:285:0;2442:4;2491:6;2466:21;:31;;2458:73;;;;-1:-1:-1;;;2458:73:0;;13850:2:1;2458:73:0;;;13832:21:1;13889:2;13869:18;;;13862:30;13928:31;13908:18;;;13901:59;13977:18;;2458:73:0;13648:353:1;2458:73:0;2545:12;2563:9;-1:-1:-1;;;;;2563:14:0;2585:6;2563:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2544:52:0;;2363:285;-1:-1:-1;;;;;2363:285:0:o;6706:614::-;-1:-1:-1;;;;;6846:20:0;;6838:70;;;;-1:-1:-1;;;6838:70:0;;14418:2:1;6838:70:0;;;14400:21:1;14457:2;14437:18;;;14430:30;14496:34;14476:18;;;14469:62;-1:-1:-1;;;14547:18:1;;;14540:35;14592:19;;6838:70:0;14216:401:1;6838:70:0;-1:-1:-1;;;;;6927:23:0;;6919:71;;;;-1:-1:-1;;;6919:71:0;;14824:2:1;6919:71:0;;;14806:21:1;14863:2;14843:18;;;14836:30;14902:34;14882:18;;;14875:62;-1:-1:-1;;;14953:18:1;;;14946:33;14996:19;;6919:71:0;14622:399:1;6919:71:0;-1:-1:-1;;;;;7027:17:0;;7003:21;7027:17;;;;;;;;;;;7063:23;;;;7055:74;;;;-1:-1:-1;;;7055:74:0;;15228:2:1;7055:74:0;;;15210:21:1;15267:2;15247:18;;;15240:30;15306:34;15286:18;;;15279:62;-1:-1:-1;;;15357:18:1;;;15350:36;15403:19;;7055:74:0;15026:402:1;7055:74:0;-1:-1:-1;;;;;7165:17:0;;;:9;:17;;;;;;;;;;;7185:22;;;7165:42;;7229:20;;;;;;;;:30;;7201:6;;7165:9;7229:30;;7201:6;;7229:30;:::i;:::-;;;;;;;;7294:9;-1:-1:-1;;;;;7277:35:0;7286:6;-1:-1:-1;;;;;7277:35:0;;7305:6;7277:35;;;;1594:25:1;;1582:2;1567:18;;1448:177;7277:35:0;;;;;;;;6827:493;6706:614;;;:::o;7616:468::-;-1:-1:-1;;;;;7700:21:0;;7692:67;;;;-1:-1:-1;;;7692:67:0;;15635:2:1;7692:67:0;;;15617:21:1;15674:2;15654:18;;;15647:30;15713:34;15693:18;;;15686:62;-1:-1:-1;;;15764:18:1;;;15757:31;15805:19;;7692:67:0;15433:397:1;7692:67:0;-1:-1:-1;;;;;7797:18:0;;7772:22;7797:18;;;;;;;;;;;7834:24;;;;7826:71;;;;-1:-1:-1;;;7826:71:0;;16037:2:1;7826:71:0;;;16019:21:1;16076:2;16056:18;;;16049:30;16115:34;16095:18;;;16088:62;-1:-1:-1;;;16166:18:1;;;16159:32;16208:19;;7826:71:0;15835:398:1;7826:71:0;-1:-1:-1;;;;;7933:18:0;;:9;:18;;;;;;;;;;7954:23;;;7933:44;;7999:12;:22;;7971:6;;7933:9;7999:22;;7971:6;;7999:22;:::i;:::-;;;;-1:-1:-1;;8039:37:0;;1594:25:1;;;8065:1:0;;-1:-1:-1;;;;;8039:37:0;;;;;1582:2:1;1567:18;8039:37:0;1448:177:1;14:548;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;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:309;2928:6;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3041:9;3028:23;3018:33;;3101:2;3090:9;3086:18;3073:32;3114:28;3136:5;3114:28;:::i;:::-;3161:5;3151:15;;;2863:309;;;;;:::o;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;3564:385::-;3650:6;3658;3666;3674;3727:3;3715:9;3706:7;3702:23;3698:33;3695:53;;;3744:1;3741;3734:12;3695:53;-1:-1:-1;;3767:23:1;;;3837:2;3822:18;;3809:32;;-1:-1:-1;3888:2:1;3873:18;;3860:32;;3939:2;3924:18;3911:32;;-1:-1:-1;3564:385:1;-1:-1:-1;3564:385:1:o;3954:388::-;4022:6;4030;4083:2;4071:9;4062:7;4058:23;4054:32;4051:52;;;4099:1;4096;4089:12;4051:52;4138:9;4125:23;4157:31;4182:5;4157:31;:::i;:::-;4207:5;-1:-1:-1;4264:2:1;4249:18;;4236:32;4277:33;4236:32;4277:33;:::i;4347:380::-;4426:1;4422:12;;;;4469;;;4490:61;;4544:4;4536:6;4532:17;4522:27;;4490:61;4597:2;4589:6;4586:14;4566:18;4563:38;4560:161;;4643:10;4638:3;4634:20;4631:1;4624:31;4678:4;4675:1;4668:15;4706:4;4703:1;4696:15;4560:161;;4347:380;;;:::o;5141:127::-;5202:10;5197:3;5193:20;5190:1;5183:31;5233:4;5230:1;5223:15;5257:4;5254:1;5247:15;5273:125;5338:9;;;5359:10;;;5356:36;;;5372:18;;:::i;5403:356::-;5605:2;5587:21;;;5624:18;;;5617:30;5683:34;5678:2;5663:18;;5656:62;5750:2;5735:18;;5403:356::o;6943:217::-;6983:1;7009;6999:132;;7053:10;7048:3;7044:20;7041:1;7034:31;7088:4;7085:1;7078:15;7116:4;7113:1;7106:15;6999:132;-1:-1:-1;7145:9:1;;6943:217::o;7643:406::-;7845:2;7827:21;;;7884:2;7864:18;;;7857:30;7923:34;7918:2;7903:18;;7896:62;-1:-1:-1;;;7989:2:1;7974:18;;7967:40;8039:3;8024:19;;7643:406::o;9144:184::-;9214:6;9267:2;9255:9;9246:7;9242:23;9238:32;9235:52;;;9283:1;9280;9273:12;9235:52;-1:-1:-1;9306:16:1;;9144:184;-1:-1:-1;9144:184:1:o;9612:245::-;9679:6;9732:2;9720:9;9711:7;9707:23;9703:32;9700:52;;;9748:1;9745;9738:12;9700:52;9780:9;9774:16;9799:28;9821:5;9799:28;:::i;11837:168::-;11910:9;;;11941;;11958:15;;;11952:22;;11938:37;11928:71;;11979:18;;:::i;12010:128::-;12077:9;;;12098:11;;;12095:37;;;12112:18;;:::i;12275:127::-;12336:10;12331:3;12327:20;12324:1;12317:31;12367:4;12364:1;12357:15;12391:4;12388:1;12381:15;12407:251;12477:6;12530:2;12518:9;12509:7;12505:23;12501:32;12498:52;;;12546:1;12543;12536:12;12498:52;12578:9;12572:16;12597:31;12622:5;12597:31;:::i;12663:980::-;12925:4;12973:3;12962:9;12958:19;13004:6;12993:9;12986:25;13030:2;13068:6;13063:2;13052:9;13048:18;13041:34;13111:3;13106:2;13095:9;13091:18;13084:31;13135:6;13170;13164:13;13201:6;13193;13186:22;13239:3;13228:9;13224:19;13217:26;;13278:2;13270:6;13266:15;13252:29;;13299:1;13309:195;13323:6;13320:1;13317:13;13309:195;;;13388:13;;-1:-1:-1;;;;;13384:39:1;13372:52;;13479:15;;;;13444:12;;;;13420:1;13338:9;13309:195;;;-1:-1:-1;;;;;;;13560:32:1;;;;13555:2;13540:18;;13533:60;-1:-1:-1;;;13624:3:1;13609:19;13602:35;13521:3;12663:980;-1:-1:-1;;;12663:980:1:o
Swarm Source
ipfs://724245da2fc52e7c9281ba674898ef2b69b3855778b0561a2ff72614f03792ed
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.