ERC-20
Overview
Max Total Supply
10,000,000,000 TAMAMIKASA
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
143,836,582.126989852 TAMAMIKASAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TAMAMIKASA
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-13 */ // SPDX-License-Identifier: Unlicensed /* Telegram: https://t.me/tamamikasa Mikasa Fan based token Stealth Launch Tokenomics: Total Tax:12% Liquidity Pool: 4% Buy Back and Burn: 3% Marketing: 3% Dev 2% */ pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner() { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner() { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } contract TAMAMIKASA is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isBot; uint256 private constant _MAX = ~uint256(0); uint256 private constant _tTotal = 1e10 * 10**9; uint256 private _rTotal = (_MAX - (_MAX % _tTotal)); uint256 private _tFeeTotal; string private constant _name = "TAMAMIKASA"; string private constant _symbol = "TAMAMIKASA"; uint private constant _decimals = 9; uint256 private _teamFee = 12; uint256 private _previousteamFee = _teamFee; uint256 private _maxTxnAmount = 2; address payable private _feeAddress; // Uniswap Pair IUniswapV2Router02 private _uniswapV2Router; address private _uniswapV2Pair; bool private _initialized = false; bool private _noTaxMode = false; bool private _inSwap = false; bool private _tradingOpen = false; uint256 private _launchTime; bool private _txnLimit = false; modifier lockTheSwap() { _inSwap = true; _; _inSwap = false; } modifier handleFees(bool takeFee) { if (!takeFee) _removeAllFees(); _; if (!takeFee) _restoreAllFees(); } constructor () { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[payable(0x000000000000000000000000000000000000dEaD)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _removeAllFees() private { require(_teamFee > 0); _previousteamFee = _teamFee; _teamFee = 0; } function _restoreAllFees() private { _teamFee = _previousteamFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(!_isBot[from], "Your address has been marked as a bot, please contact staff to appeal your case."); bool takeFee = false; if ( !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !_noTaxMode && (from == _uniswapV2Pair || to == _uniswapV2Pair) ) { require(_tradingOpen, 'Trading has not yet been opened.'); takeFee = true; if (from == _uniswapV2Pair && to != address(_uniswapV2Router) && _txnLimit) { uint walletBalance = balanceOf(address(to)); require(amount.add(walletBalance) <= _tTotal.mul(_maxTxnAmount).div(100)); } if (block.timestamp == _launchTime) _isBot[to] = true; uint256 contractTokenBalance = balanceOf(address(this)); if (!_inSwap && from != _uniswapV2Pair) { if (contractTokenBalance > 0) { if (contractTokenBalance > balanceOf(_uniswapV2Pair).mul(15).div(100)) contractTokenBalance = balanceOf(_uniswapV2Pair).mul(15).div(100); _swapTokensForEth(contractTokenBalance); } } } _tokenTransfer(from, to, amount, takeFee); } function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap() { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private handleFees(takeFee) { (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount) = _getRValues(tAmount, tTeam, currentRate); return (rAmount, rTransferAmount, tTransferAmount, tTeam); } function _getTValues(uint256 tAmount, uint256 TeamFee) private pure returns (uint256, uint256) { uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tTeam); return (tTransferAmount, tTeam); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getRValues(uint256 tAmount, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rTeam); return (rAmount, rTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function initNewPair(address payable feeAddress) external onlyOwner() { require(!_initialized,"Contract has already been initialized"); IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _uniswapV2Router = uniswapV2Router; _feeAddress = feeAddress; _isExcludedFromFee[_feeAddress] = true; _initialized = true; } function startTrading() external onlyOwner() { require(_initialized); _tradingOpen = true; _launchTime = block.timestamp; _txnLimit = true; } function setFeeWallet(address payable feeWalletAddress) external onlyOwner() { _isExcludedFromFee[_feeAddress] = false; _feeAddress = feeWalletAddress; _isExcludedFromFee[_feeAddress] = true; } function excludeFromFee(address payable ad) external onlyOwner() { _isExcludedFromFee[ad] = true; } function includeToFee(address payable ad) external onlyOwner() { _isExcludedFromFee[ad] = false; } function enableTxnLimit(bool onoff) external onlyOwner() { _txnLimit = onoff; } function setTeamFee(uint256 fee) external onlyOwner() { require(fee < 12); _teamFee = fee; } function setMaxTxn(uint256 max) external onlyOwner(){ require(max>2); _maxTxnAmount = max; } function setBots(address[] memory bots_) public onlyOwner() { for (uint i = 0; i < bots_.length; i++) { if (bots_[i] != _uniswapV2Pair && bots_[i] != address(_uniswapV2Router)) { _isBot[bots_[i]] = true; } } } function delBots(address[] memory bots_) public onlyOwner() { for (uint i = 0; i < bots_.length; i++) { _isBot[bots_[i]] = false; } } function isBot(address ad) public view returns (bool) { return _isBot[ad]; } function isExcludedFromFee(address ad) public view returns (bool) { return _isExcludedFromFee[ad]; } function swapFeesManual() external onlyOwner() { uint256 contractBalance = balanceOf(address(this)); _swapTokensForEth(contractBalance); } function withdrawFees() external { uint256 contractETHBalance = address(this).balance; _feeAddress.transfer(contractETHBalance); } receive() external payable {} }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"enableTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeAddress","type":"address"}],"name":"initNewPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedFromFee","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeWalletAddress","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeesManual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001a678ac7230489e80000600019620001ad565b6200002890600019620001d0565b600655600c60088190556009556002600a55600d805463ffffffff60a01b19169055600f805460ff191690553480156200006157600080fd5b506200006d336200015d565b6006543360009081526001602081905260408220929092556004906200009b6000546001600160a01b031690565b6001600160a01b031681526020808201929092526040016000908120805493151560ff1994851617905561dead9052600490527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd80549091166001179055620001013390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200014f91815260200190565b60405180910390a3620001f6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082620001cb57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620001f157634e487b7160e01b600052601160045260246000fd5b500390565b611d5380620002066000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461046c578063e6ec64ec146104b2578063f2fde38b146104d2578063fc588c04146104f257600080fd5b8063a9059cbb1461040c578063b515566a1461042c578063cf0848f71461044c57600080fd5b806370a082311461036f578063715018a61461038f5780637c938bb4146103a45780638da5cb5b146103c457806390d49b9d146103ec57806395d89b41146101a857600080fd5b8063313ce5671161013e5780633bbac579116101185780633bbac579146102c8578063437823ec14610301578063476343ee146103215780635342acb41461033657600080fd5b8063313ce5671461027457806331c2d847146102885780633a0f23b3146102a857600080fd5b806306d8ea6b1461019157806306fdde03146101a8578063095ea7b3146101ea57806318160ddd1461021a57806323b872dd1461023f578063293230b81461025f57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610512565b005b3480156101b457600080fd5b50604080518082018252600a81526954414d414d494b41534160b01b602082015290516101e19190611928565b60405180910390f35b3480156101f657600080fd5b5061020a6102053660046119a2565b61055e565b60405190151581526020016101e1565b34801561022657600080fd5b50678ac7230489e800005b6040519081526020016101e1565b34801561024b57600080fd5b5061020a61025a3660046119ce565b610575565b34801561026b57600080fd5b506101a66105de565b34801561028057600080fd5b506009610231565b34801561029457600080fd5b506101a66102a3366004611a25565b610644565b3480156102b457600080fd5b506101a66102c3366004611aea565b6106da565b3480156102d457600080fd5b5061020a6102e3366004611b0c565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561030d57600080fd5b506101a661031c366004611b0c565b610717565b34801561032d57600080fd5b506101a6610765565b34801561034257600080fd5b5061020a610351366004611b0c565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561037b57600080fd5b5061023161038a366004611b0c565b61079f565b34801561039b57600080fd5b506101a66107c1565b3480156103b057600080fd5b506101a66103bf366004611b0c565b6107f7565b3480156103d057600080fd5b506000546040516001600160a01b0390911681526020016101e1565b3480156103f857600080fd5b506101a6610407366004611b0c565b610a52565b34801561041857600080fd5b5061020a6104273660046119a2565b610acc565b34801561043857600080fd5b506101a6610447366004611a25565b610ad9565b34801561045857600080fd5b506101a6610467366004611b0c565b610bf2565b34801561047857600080fd5b50610231610487366004611b29565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104be57600080fd5b506101a66104cd366004611b62565b610c3d565b3480156104de57600080fd5b506101a66104ed366004611b0c565b610c79565b3480156104fe57600080fd5b506101a661050d366004611b62565b610d11565b6000546001600160a01b031633146105455760405162461bcd60e51b815260040161053c90611b7b565b60405180910390fd5b60006105503061079f565b905061055b81610d4d565b50565b600061056b338484610ec7565b5060015b92915050565b6000610582848484610feb565b6105d484336105cf85604051806060016040528060288152602001611cf6602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611411565b610ec7565b5060019392505050565b6000546001600160a01b031633146106085760405162461bcd60e51b815260040161053c90611b7b565b600d54600160a01b900460ff1661061e57600080fd5b600d805460ff60b81b1916600160b81b17905542600e55600f805460ff19166001179055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260040161053c90611b7b565b60005b81518110156106d65760006005600084848151811061069257610692611bb0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ce81611bdc565b915050610671565b5050565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161053c90611b7b565b600f805460ff1916911515919091179055565b6000546001600160a01b031633146107415760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b600b5460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156106d6573d6000803e3d6000fd5b6001600160a01b03811660009081526001602052604081205461056f9061144b565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161053c90611b7b565b6107f560006114cf565b565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161053c90611b7b565b600d54600160a01b900460ff16156108895760405162461bcd60e51b815260206004820152602560248201527f436f6e74726163742068617320616c7265616479206265656e20696e697469616044820152641b1a5e995960da1b606482015260840161053c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190611bf7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190611bf7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190611bf7565b600d80546001600160a01b039283166001600160a01b0319918216178255600c805494841694821694909417909355600b8054949092169390921683179055600091825260046020526040909120805460ff19166001179055805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b815260040161053c90611b7b565b600b80546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b600061056b338484610feb565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161053c90611b7b565b60005b81518110156106d657600d5482516001600160a01b0390911690839083908110610b3257610b32611bb0565b60200260200101516001600160a01b031614158015610b835750600c5482516001600160a01b0390911690839083908110610b6f57610b6f611bb0565b60200260200101516001600160a01b031614155b15610be057600160056000848481518110610ba057610ba0611bb0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610bea81611bdc565b915050610b06565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610c675760405162461bcd60e51b815260040161053c90611b7b565b600c8110610c7457600080fd5b600855565b6000546001600160a01b03163314610ca35760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b038116610d085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161053c565b61055b816114cf565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b815260040161053c90611b7b565b60028111610d4857600080fd5b600a55565b600d805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9557610d95611bb0565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e129190611bf7565b81600181518110610e2557610e25611bb0565b6001600160a01b039283166020918202929092010152600c54610e4b9130911684610ec7565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e84908590600090869030904290600401611c14565b600060405180830381600087803b158015610e9e57600080fd5b505af1158015610eb2573d6000803e3d6000fd5b5050600d805460ff60b01b1916905550505050565b6001600160a01b038316610f295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053c565b6001600160a01b038216610f8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053c565b6001600160a01b0382166110b15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053c565b600081116111135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053c565b6001600160a01b03831660009081526005602052604090205460ff16156111bb5760405162461bcd60e51b815260206004820152605060248201527f596f7572206164647265737320686173206265656e206d61726b65642061732060448201527f6120626f742c20706c6561736520636f6e7461637420737461666620746f206160648201526f383832b0b6103cb7bab91031b0b9b29760811b608482015260a40161053c565b6001600160a01b03831660009081526004602052604081205460ff161580156111fd57506001600160a01b03831660009081526004602052604090205460ff16155b80156112135750600d54600160a81b900460ff16155b80156112435750600d546001600160a01b03858116911614806112435750600d546001600160a01b038481169116145b156113ff57600d54600160b81b900460ff166112a15760405162461bcd60e51b815260206004820181905260248201527f54726164696e6720686173206e6f7420796574206265656e206f70656e65642e604482015260640161053c565b50600d546001906001600160a01b0385811691161480156112d05750600c546001600160a01b03848116911614155b80156112de5750600f5460ff165b1561132f5760006112ee8461079f565b90506113186064611312600a54678ac7230489e8000061151f90919063ffffffff16565b9061159e565b61132284836115e0565b111561132d57600080fd5b505b600e5442141561135d576001600160a01b0383166000908152600560205260409020805460ff191660011790555b60006113683061079f565b600d54909150600160b01b900460ff161580156113935750600d546001600160a01b03868116911614155b156113fd5780156113fd57600d546113c79060649061131290600f906113c1906001600160a01b031661079f565b9061151f565b8111156113f457600d546113f19060649061131290600f906113c1906001600160a01b031661079f565b90505b6113fd81610d4d565b505b61140b8484848461163f565b50505050565b600081848411156114355760405162461bcd60e51b815260040161053c9190611928565b5060006114428486611c85565b95945050505050565b60006006548211156114b25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161053c565b60006114bc611742565b90506114c8838261159e565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008261152e5750600061056f565b600061153a8385611c9c565b9050826115478583611cbb565b146114c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053c565b60006114c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611765565b6000806115ed8385611cdd565b9050838110156114c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053c565b808061164d5761164d611793565b60008060008061165c876117af565b6001600160a01b038d166000908152600160205260409020549397509195509350915061168990856117f6565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546116b890846115e0565b6001600160a01b0389166000908152600160205260409020556116da81611838565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161171f91815260200190565b60405180910390a3505050508061173b5761173b600954600855565b5050505050565b600080600061174f611882565b909250905061175e828261159e565b9250505090565b600081836117865760405162461bcd60e51b815260040161053c9190611928565b5060006114428486611cbb565b6000600854116117a257600080fd5b6008805460095560009055565b6000806000806000806117c4876008546118c2565b9150915060006117d2611742565b90506000806117e28a85856118ef565b909b909a5094985092965092945050505050565b60006114c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6000611842611742565b90506000611850838361151f565b3060009081526001602052604090205490915061186d90826115e0565b30600090815260016020526040902055505050565b6006546000908190678ac7230489e8000061189d828261159e565b8210156118b957505060065492678ac7230489e8000092509050565b90939092509050565b600080806118d56064611312878761151f565b905060006118e386836117f6565b96919550909350505050565b600080806118fd868561151f565b9050600061190b868661151f565b9050600061191983836117f6565b92989297509195505050505050565b600060208083528351808285015260005b8181101561195557858101830151858201604001528201611939565b81811115611967576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461055b57600080fd5b803561199d8161197d565b919050565b600080604083850312156119b557600080fd5b82356119c08161197d565b946020939093013593505050565b6000806000606084860312156119e357600080fd5b83356119ee8161197d565b925060208401356119fe8161197d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a3857600080fd5b823567ffffffffffffffff80821115611a5057600080fd5b818501915085601f830112611a6457600080fd5b813581811115611a7657611a76611a0f565b8060051b604051601f19603f83011681018181108582111715611a9b57611a9b611a0f565b604052918252848201925083810185019188831115611ab957600080fd5b938501935b82851015611ade57611acf85611992565b84529385019392850192611abe565b98975050505050505050565b600060208284031215611afc57600080fd5b813580151581146114c857600080fd5b600060208284031215611b1e57600080fd5b81356114c88161197d565b60008060408385031215611b3c57600080fd5b8235611b478161197d565b91506020830135611b578161197d565b809150509250929050565b600060208284031215611b7457600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611bf057611bf0611bc6565b5060010190565b600060208284031215611c0957600080fd5b81516114c88161197d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c645784516001600160a01b031683529383019391830191600101611c3f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082821015611c9757611c97611bc6565b500390565b6000816000190483118215151615611cb657611cb6611bc6565b500290565b600082611cd857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611cf057611cf0611bc6565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202eec531cdb3a972c3ebac38f9bc2f5b5c2b017fcbfcfa231e3c098090172ca5064736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461046c578063e6ec64ec146104b2578063f2fde38b146104d2578063fc588c04146104f257600080fd5b8063a9059cbb1461040c578063b515566a1461042c578063cf0848f71461044c57600080fd5b806370a082311461036f578063715018a61461038f5780637c938bb4146103a45780638da5cb5b146103c457806390d49b9d146103ec57806395d89b41146101a857600080fd5b8063313ce5671161013e5780633bbac579116101185780633bbac579146102c8578063437823ec14610301578063476343ee146103215780635342acb41461033657600080fd5b8063313ce5671461027457806331c2d847146102885780633a0f23b3146102a857600080fd5b806306d8ea6b1461019157806306fdde03146101a8578063095ea7b3146101ea57806318160ddd1461021a57806323b872dd1461023f578063293230b81461025f57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610512565b005b3480156101b457600080fd5b50604080518082018252600a81526954414d414d494b41534160b01b602082015290516101e19190611928565b60405180910390f35b3480156101f657600080fd5b5061020a6102053660046119a2565b61055e565b60405190151581526020016101e1565b34801561022657600080fd5b50678ac7230489e800005b6040519081526020016101e1565b34801561024b57600080fd5b5061020a61025a3660046119ce565b610575565b34801561026b57600080fd5b506101a66105de565b34801561028057600080fd5b506009610231565b34801561029457600080fd5b506101a66102a3366004611a25565b610644565b3480156102b457600080fd5b506101a66102c3366004611aea565b6106da565b3480156102d457600080fd5b5061020a6102e3366004611b0c565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561030d57600080fd5b506101a661031c366004611b0c565b610717565b34801561032d57600080fd5b506101a6610765565b34801561034257600080fd5b5061020a610351366004611b0c565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561037b57600080fd5b5061023161038a366004611b0c565b61079f565b34801561039b57600080fd5b506101a66107c1565b3480156103b057600080fd5b506101a66103bf366004611b0c565b6107f7565b3480156103d057600080fd5b506000546040516001600160a01b0390911681526020016101e1565b3480156103f857600080fd5b506101a6610407366004611b0c565b610a52565b34801561041857600080fd5b5061020a6104273660046119a2565b610acc565b34801561043857600080fd5b506101a6610447366004611a25565b610ad9565b34801561045857600080fd5b506101a6610467366004611b0c565b610bf2565b34801561047857600080fd5b50610231610487366004611b29565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104be57600080fd5b506101a66104cd366004611b62565b610c3d565b3480156104de57600080fd5b506101a66104ed366004611b0c565b610c79565b3480156104fe57600080fd5b506101a661050d366004611b62565b610d11565b6000546001600160a01b031633146105455760405162461bcd60e51b815260040161053c90611b7b565b60405180910390fd5b60006105503061079f565b905061055b81610d4d565b50565b600061056b338484610ec7565b5060015b92915050565b6000610582848484610feb565b6105d484336105cf85604051806060016040528060288152602001611cf6602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611411565b610ec7565b5060019392505050565b6000546001600160a01b031633146106085760405162461bcd60e51b815260040161053c90611b7b565b600d54600160a01b900460ff1661061e57600080fd5b600d805460ff60b81b1916600160b81b17905542600e55600f805460ff19166001179055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260040161053c90611b7b565b60005b81518110156106d65760006005600084848151811061069257610692611bb0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106ce81611bdc565b915050610671565b5050565b6000546001600160a01b031633146107045760405162461bcd60e51b815260040161053c90611b7b565b600f805460ff1916911515919091179055565b6000546001600160a01b031633146107415760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b600b5460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156106d6573d6000803e3d6000fd5b6001600160a01b03811660009081526001602052604081205461056f9061144b565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161053c90611b7b565b6107f560006114cf565b565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161053c90611b7b565b600d54600160a01b900460ff16156108895760405162461bcd60e51b815260206004820152602560248201527f436f6e74726163742068617320616c7265616479206265656e20696e697469616044820152641b1a5e995960da1b606482015260840161053c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109049190611bf7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109759190611bf7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190611bf7565b600d80546001600160a01b039283166001600160a01b0319918216178255600c805494841694821694909417909355600b8054949092169390921683179055600091825260046020526040909120805460ff19166001179055805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b815260040161053c90611b7b565b600b80546001600160a01b03908116600090815260046020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b600061056b338484610feb565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161053c90611b7b565b60005b81518110156106d657600d5482516001600160a01b0390911690839083908110610b3257610b32611bb0565b60200260200101516001600160a01b031614158015610b835750600c5482516001600160a01b0390911690839083908110610b6f57610b6f611bb0565b60200260200101516001600160a01b031614155b15610be057600160056000848481518110610ba057610ba0611bb0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610bea81611bdc565b915050610b06565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610c675760405162461bcd60e51b815260040161053c90611b7b565b600c8110610c7457600080fd5b600855565b6000546001600160a01b03163314610ca35760405162461bcd60e51b815260040161053c90611b7b565b6001600160a01b038116610d085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161053c565b61055b816114cf565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b815260040161053c90611b7b565b60028111610d4857600080fd5b600a55565b600d805460ff60b01b1916600160b01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9557610d95611bb0565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e129190611bf7565b81600181518110610e2557610e25611bb0565b6001600160a01b039283166020918202929092010152600c54610e4b9130911684610ec7565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e84908590600090869030904290600401611c14565b600060405180830381600087803b158015610e9e57600080fd5b505af1158015610eb2573d6000803e3d6000fd5b5050600d805460ff60b01b1916905550505050565b6001600160a01b038316610f295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161053c565b6001600160a01b038216610f8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161053c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161053c565b6001600160a01b0382166110b15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161053c565b600081116111135760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161053c565b6001600160a01b03831660009081526005602052604090205460ff16156111bb5760405162461bcd60e51b815260206004820152605060248201527f596f7572206164647265737320686173206265656e206d61726b65642061732060448201527f6120626f742c20706c6561736520636f6e7461637420737461666620746f206160648201526f383832b0b6103cb7bab91031b0b9b29760811b608482015260a40161053c565b6001600160a01b03831660009081526004602052604081205460ff161580156111fd57506001600160a01b03831660009081526004602052604090205460ff16155b80156112135750600d54600160a81b900460ff16155b80156112435750600d546001600160a01b03858116911614806112435750600d546001600160a01b038481169116145b156113ff57600d54600160b81b900460ff166112a15760405162461bcd60e51b815260206004820181905260248201527f54726164696e6720686173206e6f7420796574206265656e206f70656e65642e604482015260640161053c565b50600d546001906001600160a01b0385811691161480156112d05750600c546001600160a01b03848116911614155b80156112de5750600f5460ff165b1561132f5760006112ee8461079f565b90506113186064611312600a54678ac7230489e8000061151f90919063ffffffff16565b9061159e565b61132284836115e0565b111561132d57600080fd5b505b600e5442141561135d576001600160a01b0383166000908152600560205260409020805460ff191660011790555b60006113683061079f565b600d54909150600160b01b900460ff161580156113935750600d546001600160a01b03868116911614155b156113fd5780156113fd57600d546113c79060649061131290600f906113c1906001600160a01b031661079f565b9061151f565b8111156113f457600d546113f19060649061131290600f906113c1906001600160a01b031661079f565b90505b6113fd81610d4d565b505b61140b8484848461163f565b50505050565b600081848411156114355760405162461bcd60e51b815260040161053c9190611928565b5060006114428486611c85565b95945050505050565b60006006548211156114b25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161053c565b60006114bc611742565b90506114c8838261159e565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008261152e5750600061056f565b600061153a8385611c9c565b9050826115478583611cbb565b146114c85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161053c565b60006114c883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611765565b6000806115ed8385611cdd565b9050838110156114c85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161053c565b808061164d5761164d611793565b60008060008061165c876117af565b6001600160a01b038d166000908152600160205260409020549397509195509350915061168990856117f6565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546116b890846115e0565b6001600160a01b0389166000908152600160205260409020556116da81611838565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161171f91815260200190565b60405180910390a3505050508061173b5761173b600954600855565b5050505050565b600080600061174f611882565b909250905061175e828261159e565b9250505090565b600081836117865760405162461bcd60e51b815260040161053c9190611928565b5060006114428486611cbb565b6000600854116117a257600080fd5b6008805460095560009055565b6000806000806000806117c4876008546118c2565b9150915060006117d2611742565b90506000806117e28a85856118ef565b909b909a5094985092965092945050505050565b60006114c883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6000611842611742565b90506000611850838361151f565b3060009081526001602052604090205490915061186d90826115e0565b30600090815260016020526040902055505050565b6006546000908190678ac7230489e8000061189d828261159e565b8210156118b957505060065492678ac7230489e8000092509050565b90939092509050565b600080806118d56064611312878761151f565b905060006118e386836117f6565b96919550909350505050565b600080806118fd868561151f565b9050600061190b868661151f565b9050600061191983836117f6565b92989297509195505050505050565b600060208083528351808285015260005b8181101561195557858101830151858201604001528201611939565b81811115611967576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461055b57600080fd5b803561199d8161197d565b919050565b600080604083850312156119b557600080fd5b82356119c08161197d565b946020939093013593505050565b6000806000606084860312156119e357600080fd5b83356119ee8161197d565b925060208401356119fe8161197d565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a3857600080fd5b823567ffffffffffffffff80821115611a5057600080fd5b818501915085601f830112611a6457600080fd5b813581811115611a7657611a76611a0f565b8060051b604051601f19603f83011681018181108582111715611a9b57611a9b611a0f565b604052918252848201925083810185019188831115611ab957600080fd5b938501935b82851015611ade57611acf85611992565b84529385019392850192611abe565b98975050505050505050565b600060208284031215611afc57600080fd5b813580151581146114c857600080fd5b600060208284031215611b1e57600080fd5b81356114c88161197d565b60008060408385031215611b3c57600080fd5b8235611b478161197d565b91506020830135611b578161197d565b809150509250929050565b600060208284031215611b7457600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611bf057611bf0611bc6565b5060010190565b600060208284031215611c0957600080fd5b81516114c88161197d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c645784516001600160a01b031683529383019391830191600101611c3f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082821015611c9757611c97611bc6565b500390565b6000816000190483118215151615611cb657611cb6611bc6565b500290565b600082611cd857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611cf057611cf0611bc6565b50019056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202eec531cdb3a972c3ebac38f9bc2f5b5c2b017fcbfcfa231e3c098090172ca5064736f6c634300080c0033
Deployed Bytecode Sourcemap
3995:10860:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14489:161;;;;;;;;;;;;;:::i;:::-;;5753:83;;;;;;;;;;-1:-1:-1;5823:5:0;;;;;;;;;;;-1:-1:-1;;;5823:5:0;;;;5753:83;;;;5823:5;5753:83;:::i;:::-;;;;;;;;6605:161;;;;;;;;;;-1:-1:-1;6605:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6605:161:0;1211:187:1;6029:95:0;;;;;;;;;;-1:-1:-1;4460:12:0;6029:95;;;1549:25:1;;;1537:2;1522:18;6029:95:0;1403:177:1;6774:313:0;;;;;;;;;;-1:-1:-1;6774:313:0;;;;;:::i;:::-;;:::i;12774:182::-;;;;;;;;;;;;;:::i;5939:82::-;;;;;;;;;;-1:-1:-1;4720:1:0;5939:82;;14084:169;;;;;;;;;;-1:-1:-1;14084:169:0;;;;;:::i;:::-;;:::i;13444:91::-;;;;;;;;;;-1:-1:-1;13444:91:0;;;;;:::i;:::-;;:::i;14265:90::-;;;;;;;;;;-1:-1:-1;14265:90:0;;;;;:::i;:::-;-1:-1:-1;;;;;14337:10:0;14313:4;14337:10;;;:6;:10;;;;;;;;;14265:90;13197:113;;;;;;;;;;-1:-1:-1;13197:113:0;;;;;:::i;:::-;;:::i;14662:153::-;;;;;;;;;;;;;:::i;14363:114::-;;;;;;;;;;-1:-1:-1;14363:114:0;;;;;:::i;:::-;-1:-1:-1;;;;;14447:22:0;14423:4;14447:22;;;:18;:22;;;;;;;;;14363:114;6132:139;;;;;;;;;;-1:-1:-1;6132:139:0;;;;;:::i;:::-;;:::i;2986:105::-;;;;;;;;;;;;;:::i;12218:548::-;;;;;;;;;;-1:-1:-1;12218:548:0;;;;;:::i;:::-;;:::i;2763:87::-;;;;;;;;;;-1:-1:-1;2809:7:0;2836:6;2763:87;;-1:-1:-1;;;;;2836:6:0;;;4240:51:1;;4228:2;4213:18;2763:87:0;4094:203:1;12964:225:0;;;;;;;;;;-1:-1:-1;12964:225:0;;;;;:::i;:::-;;:::i;6279:167::-;;;;;;;;;;-1:-1:-1;6279:167:0;;;;;:::i;:::-;;:::i;13797:275::-;;;;;;;;;;-1:-1:-1;13797:275:0;;;;;:::i;:::-;;:::i;13322:112::-;;;;;;;;;;-1:-1:-1;13322:112:0;;;;;:::i;:::-;;:::i;6454:143::-;;;;;;;;;;-1:-1:-1;6454:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6562:18:0;;;6535:7;6562:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6454:143;13547:115;;;;;;;;;;-1:-1:-1;13547:115:0;;;;;:::i;:::-;;:::i;3099:203::-;;;;;;;;;;-1:-1:-1;3099:203:0;;;;;:::i;:::-;;:::i;13670:115::-;;;;;;;;;;-1:-1:-1;13670:115:0;;;;;:::i;:::-;;:::i;14489:161::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;;;;;;;;;14547:23:::1;14573:24;14591:4;14573:9;:24::i;:::-;14547:50;;14608:34;14626:15;14608:17;:34::i;:::-;14536:114;14489:161::o:0;6605:::-;6680:4;6697:39;366:10;6720:7;6729:6;6697:8;:39::i;:::-;-1:-1:-1;6754:4:0;6605:161;;;;;:::o;6774:313::-;6872:4;6889:36;6899:6;6907:9;6918:6;6889:9;:36::i;:::-;6936:121;6945:6;366:10;6967:89;7005:6;6967:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6967:19:0;;;;;;:11;:19;;;;;;;;366:10;6967:33;;;;;;;;;;:37;:89::i;:::-;6936:8;:121::i;:::-;-1:-1:-1;7075:4:0;6774:313;;;;;:::o;12774:182::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;12838:12:::1;::::0;-1:-1:-1;;;12838:12:0;::::1;;;12830:21;;;::::0;::::1;;12862:12;:19:::0;;-1:-1:-1;;;;12862:19:0::1;-1:-1:-1::0;;;12862:19:0::1;::::0;;12906:15:::1;12892:11;:29:::0;12932:9:::1;:16:::0;;-1:-1:-1;;12932:16:0::1;12877:4;12932:16;::::0;;12774:182::o;14084:169::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;14160:6:::1;14155:91;14176:5;:12;14172:1;:16;14155:91;;;14229:5;14210:6;:16;14217:5;14223:1;14217:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14210:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14210:16:0;:24;;-1:-1:-1;;14210:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14190:3;::::1;::::0;::::1;:::i;:::-;;;;14155:91;;;;14084:169:::0;:::o;13444:91::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;13511:9:::1;:17:::0;;-1:-1:-1;;13511:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13444:91::o;13197:113::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13273:22:0::1;;::::0;;;:18:::1;:22;::::0;;;;:29;;-1:-1:-1;;13273:29:0::1;13298:4;13273:29;::::0;;13197:113::o;14662:153::-;14767:11;;:40;;14735:21;;-1:-1:-1;;;;;14767:11:0;;:40;;;;;14735:21;;14706:26;14767:40;14706:26;14767:40;14735:21;14767:11;:40;;;;;;;;;;;;;;;;;;;6132:139;-1:-1:-1;;;;;6246:16:0;;6198:7;6246:16;;;:7;:16;;;;;;6225:38;;:20;:38::i;2986:105::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;3053:30:::1;3080:1;3053:18;:30::i;:::-;2986:105::o:0;12218:548::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;12308:12:::1;::::0;-1:-1:-1;;;12308:12:0;::::1;;;12307:13;12299:62;;;::::0;-1:-1:-1;;;12299:62:0;;5847:2:1;12299:62:0::1;::::0;::::1;5829:21:1::0;5886:2;5866:18;;;5859:30;5925:34;5905:18;;;5898:62;-1:-1:-1;;;5976:18:1;;;5969:35;6021:19;;12299:62:0::1;5645:401:1::0;12299:62:0::1;12372:34;12428:42;12372:99;;12517:15;-1:-1:-1::0;;;;;12517:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12499:55:0::1;;12563:4;12570:15;-1:-1:-1::0;;;;;12570:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12499:94;::::0;-1:-1:-1;;;;;;12499:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6537:15:1;;;12499:94:0::1;::::0;::::1;6519:34:1::0;6589:15;;6569:18;;;6562:43;6454:18;;12499:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12482:14;:111:::0;;-1:-1:-1;;;;;12482:111:0;;::::1;-1:-1:-1::0;;;;;;12482:111:0;;::::1;;::::0;;12606:16:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;12653:11:::1;:24:::0;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;12482:14:::1;12688:31:::0;;;:18:::1;:31;::::0;;;;;:38;;-1:-1:-1;;12688:38:0::1;12482:111:::0;12688:38:::1;::::0;;12739:19;;-1:-1:-1;;;;12739:19:0::1;-1:-1:-1::0;;;12739:19:0::1;::::0;;12218:548::o;12964:225::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;13071:11:::1;::::0;;-1:-1:-1;;;;;13071:11:0;;::::1;13086:5;13052:31:::0;;;:18:::1;:31;::::0;;;;;:39;;-1:-1:-1;;13052:39:0;;::::1;::::0;;;13102:30;;-1:-1:-1;;;;;;13102:30:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;13143:31;;;;;:38;;;;::::1;-1:-1:-1::0;13143:38:0::1;::::0;;12964:225::o;6279:167::-;6357:4;6374:42;366:10;6398:9;6409:6;6374:9;:42::i;13797:275::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;13873:6:::1;13868:197;13889:5;:12;13885:1;:16;13868:197;;;13939:14;::::0;13927:8;;-1:-1:-1;;;;;13939:14:0;;::::1;::::0;13927:5;;13933:1;;13927:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13927:26:0::1;;;:67;;;;-1:-1:-1::0;13977:16:0::1;::::0;13957:8;;-1:-1:-1;;;;;13977:16:0;;::::1;::::0;13957:5;;13963:1;;13957:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13957:37:0::1;;;13927:67;13923:131;;;14034:4;14015:6;:16;14022:5;14028:1;14022:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14015:16:0::1;-1:-1:-1::0;;;;;14015:16:0::1;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13923:131;13903:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13868:197;;13322:112:::0;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13396:22:0::1;13421:5;13396:22:::0;;;:18:::1;:22;::::0;;;;:30;;-1:-1:-1;;13396:30:0::1;::::0;;13322:112::o;13547:115::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;13626:2:::1;13620:3;:8;13612:17;;;::::0;::::1;;13640:8;:14:::0;13547:115::o;3099:203::-;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3190:22:0;::::1;3182:73;;;::::0;-1:-1:-1;;;3182:73:0;;6818:2:1;3182:73:0::1;::::0;::::1;6800:21:1::0;6857:2;6837:18;;;6830:30;6896:34;6876:18;;;6869:62;-1:-1:-1;;;6947:18:1;;;6940:36;6993:19;;3182:73:0::1;6616:402:1::0;3182:73:0::1;3266:28;3285:8;3266:18;:28::i;13670:115::-:0;2809:7;2836:6;-1:-1:-1;;;;;2836:6:0;366:10;2898:23;2890:68;;;;-1:-1:-1;;;2890:68:0;;;;;;;:::i;:::-;13745:1:::1;13741:3;:5;13733:14;;;::::0;::::1;;13758:13;:19:::0;13670:115::o;9593:489::-;5266:7;:14;;-1:-1:-1;;;;5266:14:0;-1:-1:-1;;;5266:14:0;;;9698:16:::1;::::0;;9712:1:::1;9698:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9698:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9698:16:0::1;9674:40;;9743:4;9725;9730:1;9725:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9725:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9769:16:::1;::::0;:23:::1;::::0;;-1:-1:-1;;;9769:23:0;;;;:16;;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;9725:7;;9769:23;;;;;:16;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9759:4;9764:1;9759:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9759:33:0;;::::1;:7;::::0;;::::1;::::0;;;;;:33;9835:16:::1;::::0;9803:63:::1;::::0;9820:4:::1;::::0;9835:16:::1;9854:11:::0;9803:8:::1;:63::i;:::-;9877:16;::::0;:197:::1;::::0;-1:-1:-1;;;9877:197:0;;-1:-1:-1;;;;;9877:16:0;;::::1;::::0;:67:::1;::::0;:197:::1;::::0;9959:11;;9877:16:::1;::::0;10001:4;;10028::::1;::::0;10048:15:::1;::::0;9877:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5303:7:0;:15;;-1:-1:-1;;;;5303:15:0;;;-1:-1:-1;;;;9593:489:0:o;7596:337::-;-1:-1:-1;;;;;7689:19:0;;7681:68;;;;-1:-1:-1;;;7681:68:0;;8210:2:1;7681:68:0;;;8192:21:1;8249:2;8229:18;;;8222:30;8288:34;8268:18;;;8261:62;-1:-1:-1;;;8339:18:1;;;8332:34;8383:19;;7681:68:0;8008:400:1;7681:68:0;-1:-1:-1;;;;;7768:21:0;;7760:68;;;;-1:-1:-1;;;7760:68:0;;8615:2:1;7760:68:0;;;8597:21:1;8654:2;8634:18;;;8627:30;8693:34;8673:18;;;8666:62;-1:-1:-1;;;8744:18:1;;;8737:32;8786:19;;7760:68:0;8413:398:1;7760:68:0;-1:-1:-1;;;;;7841:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7893:32;;1549:25:1;;;7893:32:0;;1522:18:1;7893:32:0;;;;;;;7596:337;;;:::o;7945:1636::-;-1:-1:-1;;;;;8033:18:0;;8025:68;;;;-1:-1:-1;;;8025:68:0;;9018:2:1;8025:68:0;;;9000:21:1;9057:2;9037:18;;;9030:30;9096:34;9076:18;;;9069:62;-1:-1:-1;;;9147:18:1;;;9140:35;9192:19;;8025:68:0;8816:401:1;8025:68:0;-1:-1:-1;;;;;8112:16:0;;8104:64;;;;-1:-1:-1;;;8104:64:0;;9424:2:1;8104:64:0;;;9406:21:1;9463:2;9443:18;;;9436:30;9502:34;9482:18;;;9475:62;-1:-1:-1;;;9553:18:1;;;9546:33;9596:19;;8104:64:0;9222:399:1;8104:64:0;8196:1;8187:6;:10;8179:64;;;;-1:-1:-1;;;8179:64:0;;9828:2:1;8179:64:0;;;9810:21:1;9867:2;9847:18;;;9840:30;9906:34;9886:18;;;9879:62;-1:-1:-1;;;9957:18:1;;;9950:39;10006:19;;8179:64:0;9626:405:1;8179:64:0;-1:-1:-1;;;;;8263:12:0;;;;;;:6;:12;;;;;;;;8262:13;8254:106;;;;-1:-1:-1;;;8254:106:0;;10238:2:1;8254:106:0;;;10220:21:1;10277:2;10257:18;;;10250:30;10316:34;10296:18;;;10289:62;10387:34;10367:18;;;10360:62;-1:-1:-1;;;10438:19:1;;;10431:47;10495:19;;8254:106:0;10036:484:1;8254:106:0;-1:-1:-1;;;;;8431:24:0;;8381:12;8431:24;;;:18;:24;;;;;;;;8430:25;:66;;;;-1:-1:-1;;;;;;8474:22:0;;;;;;:18;:22;;;;;;;;8473:23;8430:66;:95;;;;-1:-1:-1;8515:10:0;;-1:-1:-1;;;8515:10:0;;;;8514:11;8430:95;:161;;;;-1:-1:-1;8552:14:0;;-1:-1:-1;;;;;8544:22:0;;;8552:14;;8544:22;;:46;;-1:-1:-1;8576:14:0;;-1:-1:-1;;;;;8570:20:0;;;8576:14;;8570:20;8544:46;8412:1092;;;8626:12;;-1:-1:-1;;;8626:12:0;;;;8618:57;;;;-1:-1:-1;;;8618:57:0;;10727:2:1;8618:57:0;;;10709:21:1;;;10746:18;;;10739:30;10805:34;10785:18;;;10778:62;10857:18;;8618:57:0;10525:356:1;8618:57:0;-1:-1:-1;8733:14:0;;8700:4;;-1:-1:-1;;;;;8725:22:0;;;8733:14;;8725:22;:57;;;;-1:-1:-1;8765:16:0;;-1:-1:-1;;;;;8751:31:0;;;8765:16;;8751:31;;8725:57;:70;;;;-1:-1:-1;8786:9:0;;;;8725:70;8721:246;;;8816:18;8837:22;8855:2;8837:9;:22::i;:::-;8816:43;;8915:35;8946:3;8915:26;8927:13;;4460:12;8915:11;;:26;;;;:::i;:::-;:30;;:35::i;:::-;8886:25;:6;8897:13;8886:10;:25::i;:::-;:64;;8878:73;;;;;;8797:170;8721:246;9006:11;;8987:15;:30;8983:53;;;-1:-1:-1;;;;;9019:10:0;;;;;;:6;:10;;;;;:17;;-1:-1:-1;;9019:17:0;9032:4;9019:17;;;8983:53;9053:28;9084:24;9102:4;9084:9;:24::i;:::-;9128:7;;9053:55;;-1:-1:-1;;;;9128:7:0;;;;9127:8;:34;;;;-1:-1:-1;9147:14:0;;-1:-1:-1;;;;;9139:22:0;;;9147:14;;9139:22;;9127:34;9123:370;;;9186:24;;9182:296;;9272:14;;9262:42;;9300:3;;9262:33;;9292:2;;9262:25;;-1:-1:-1;;;;;9272:14:0;9262:9;:25::i;:::-;:29;;:33::i;:42::-;9239:20;:65;9235:161;;;9364:14;;9354:42;;9392:3;;9354:33;;9384:2;;9354:25;;-1:-1:-1;;;;;9364:14:0;9354:9;:25::i;:42::-;9331:65;;9235:161;9419:39;9437:20;9419:17;:39::i;:::-;8603:901;8412:1092;9532:41;9547:4;9553:2;9557:6;9565:7;9532:14;:41::i;:::-;8014:1567;7945:1636;;;:::o;1423:190::-;1509:7;1545:12;1537:6;;;;1529:29;;;;-1:-1:-1;;;1529:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1569:9:0;1581:5;1585:1;1581;:5;:::i;:::-;1569:17;1423:190;-1:-1:-1;;;;;1423:190:0:o;7095:255::-;7163:7;7202;;7191;:18;;7183:73;;;;-1:-1:-1;;;7183:73:0;;11218:2:1;7183:73:0;;;11200:21:1;11257:2;11237:18;;;11230:30;11296:34;11276:18;;;11269:62;-1:-1:-1;;;11347:18:1;;;11340:40;11397:19;;7183:73:0;11016:406:1;7183:73:0;7267:19;7290:10;:8;:10::i;:::-;7267:33;-1:-1:-1;7318:24:0;:7;7267:33;7318:11;:24::i;:::-;7311:31;7095:255;-1:-1:-1;;;7095:255:0:o;3310:191::-;3384:16;3403:6;;-1:-1:-1;;;;;3420:17:0;;;-1:-1:-1;;;;;;3420:17:0;;;;;;3453:40;;3403:6;;;;;;;3453:40;;3384:16;3453:40;3373:128;3310:191;:::o;1621:246::-;1679:7;1703:6;1699:47;;-1:-1:-1;1733:1:0;1726:8;;1699:47;1756:9;1768:5;1772:1;1768;:5;:::i;:::-;1756:17;-1:-1:-1;1801:1:0;1792:5;1796:1;1756:17;1792:5;:::i;:::-;:10;1784:56;;;;-1:-1:-1;;;1784:56:0;;12024:2:1;1784:56:0;;;12006:21:1;12063:2;12043:18;;;12036:30;12102:34;12082:18;;;12075:62;-1:-1:-1;;;12153:18:1;;;12146:31;12194:19;;1784:56:0;11822:397:1;1875:132:0;1933:7;1960:39;1964:1;1967;1960:39;;;;;;;;;;;;;;;;;:3;:39::i;1092:179::-;1150:7;;1182:5;1186:1;1182;:5;:::i;:::-;1170:17;;1211:1;1206;:6;;1198:46;;;;-1:-1:-1;;;1198:46:0;;12559:2:1;1198:46:0;;;12541:21:1;12598:2;12578:18;;;12571:30;12637:29;12617:18;;;12610:57;12684:18;;1198:46:0;12357:351:1;10090:459:0;10199:7;5384;5379:30;;5393:16;:14;:16::i;:::-;10220:15:::1;10237:23:::0;10262::::1;10287:13:::0;10304:19:::1;10315:7;10304:10;:19::i;:::-;-1:-1:-1::0;;;;;10352:15:0;::::1;;::::0;;;:7:::1;:15;::::0;;;;;10219:104;;-1:-1:-1;10219:104:0;;-1:-1:-1;10219:104:0;-1:-1:-1;10219:104:0;-1:-1:-1;10352:28:0::1;::::0;10219:104;10352:19:::1;:28::i;:::-;-1:-1:-1::0;;;;;10334:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;:46;;;;10412:18;;::::1;::::0;;;;:39:::1;::::0;10435:15;10412:22:::1;:39::i;:::-;-1:-1:-1::0;;;;;10391:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;:60;10465:16:::1;10475:5:::0;10465:9:::1;:16::i;:::-;10514:9;-1:-1:-1::0;;;;;10497:44:0::1;10506:6;-1:-1:-1::0;;;;;10497:44:0::1;;10525:15;10497:44;;;;1549:25:1::0;;1537:2;1522:18;;1403:177;10497:44:0::1;;;;;;;;10208:341;;;;5437:7:::0;5432:31;;5446:17;7564:16;;7553:8;:27;7507:81;5446:17;10090:459;;;;;:::o;11224:164::-;11266:7;11287:15;11304;11323:19;:17;:19::i;:::-;11286:56;;-1:-1:-1;11286:56:0;-1:-1:-1;11360:20:0;11286:56;;11360:11;:20::i;:::-;11353:27;;;;11224:164;:::o;2015:189::-;2101:7;2136:12;2129:5;2121:28;;;;-1:-1:-1;;;2121:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2160:9:0;2172:5;2176:1;2172;:5;:::i;7358:137::-;7422:1;7411:8;;:12;7403:21;;;;;;7456:8;;;7437:16;:27;-1:-1:-1;7475:12:0;;7358:137::o;10557:395::-;10616:7;10625;10634;10643;10664:23;10689:13;10706:30;10718:7;10727:8;;10706:11;:30::i;:::-;10663:73;;;;10747:19;10770:10;:8;:10::i;:::-;10747:33;;10792:15;10809:23;10836:40;10848:7;10857:5;10864:11;10836;:40::i;:::-;10791:85;;;;-1:-1:-1;10921:15:0;;-1:-1:-1;10938:5:0;;-1:-1:-1;10557:395:0;;-1:-1:-1;;;;;10557:395:0:o;1279:136::-;1337:7;1364:43;1368:1;1371;1364:43;;;;;;;;;;;;;;;;;:3;:43::i;11992:214::-;12045:19;12068:10;:8;:10::i;:::-;12045:33;-1:-1:-1;12089:13:0;12105:22;:5;12045:33;12105:9;:22::i;:::-;12181:4;12165:22;;;;:7;:22;;;;;;12089:38;;-1:-1:-1;12165:33:0;;12089:38;12165:26;:33::i;:::-;12156:4;12140:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11992:214:0:o;11396:257::-;11494:7;;11447;;;;4460:12;11562:20;11494:7;4460:12;11562:11;:20::i;:::-;11552:7;:30;11548:61;;;-1:-1:-1;;11592:7:0;;;4460:12;;-1:-1:-1;11396:257:0;-1:-1:-1;11396:257:0:o;11548:61::-;11628:7;;11637;;-1:-1:-1;11396:257:0;-1:-1:-1;11396:257:0:o;10960:256::-;11037:7;;;11082:29;11107:3;11082:20;:7;11094;11082:11;:20::i;:29::-;11066:45;-1:-1:-1;11122:23:0;11148:18;:7;11066:45;11148:11;:18::i;:::-;11122:44;11202:5;;-1:-1:-1;10960:256:0;;-1:-1:-1;;;;10960:256:0:o;11661:323::-;11757:7;;;11804:24;:7;11816:11;11804;:24::i;:::-;11786:42;-1:-1:-1;11839:13:0;11855:22;:5;11865:11;11855:9;:22::i;:::-;11839:38;-1:-1:-1;11888:23:0;11914:18;:7;11839:38;11914:11;:18::i;:::-;11951:7;;;;-1:-1:-1;11661:323:0;;-1:-1:-1;;;;;;11661:323:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2046:127::-;2107:10;2102:3;2098:20;2095:1;2088:31;2138:4;2135:1;2128:15;2162:4;2159:1;2152:15;2178:1121;2262:6;2293:2;2336;2324:9;2315:7;2311:23;2307:32;2304:52;;;2352:1;2349;2342:12;2304:52;2392:9;2379:23;2421:18;2462:2;2454:6;2451:14;2448:34;;;2478:1;2475;2468:12;2448:34;2516:6;2505:9;2501:22;2491:32;;2561:7;2554:4;2550:2;2546:13;2542:27;2532:55;;2583:1;2580;2573:12;2532:55;2619:2;2606:16;2641:2;2637;2634:10;2631:36;;;2647:18;;:::i;:::-;2693:2;2690:1;2686:10;2725:2;2719:9;2788:2;2784:7;2779:2;2775;2771:11;2767:25;2759:6;2755:38;2843:6;2831:10;2828:22;2823:2;2811:10;2808:18;2805:46;2802:72;;;2854:18;;:::i;:::-;2890:2;2883:22;2940:18;;;2974:15;;;;-1:-1:-1;3016:11:1;;;3012:20;;;3044:19;;;3041:39;;;3076:1;3073;3066:12;3041:39;3100:11;;;;3120:148;3136:6;3131:3;3128:15;3120:148;;;3202:23;3221:3;3202:23;:::i;:::-;3190:36;;3153:12;;;;3246;;;;3120:148;;;3287:6;2178:1121;-1:-1:-1;;;;;;;;2178:1121:1:o;3304:273::-;3360:6;3413:2;3401:9;3392:7;3388:23;3384:32;3381:52;;;3429:1;3426;3419:12;3381:52;3468:9;3455:23;3521:5;3514:13;3507:21;3500:5;3497:32;3487:60;;3543:1;3540;3533:12;3582:247;3641:6;3694:2;3682:9;3673:7;3669:23;3665:32;3662:52;;;3710:1;3707;3700:12;3662:52;3749:9;3736:23;3768:31;3793:5;3768:31;:::i;4302:388::-;4370:6;4378;4431:2;4419:9;4410:7;4406:23;4402:32;4399:52;;;4447:1;4444;4437:12;4399:52;4486:9;4473:23;4505:31;4530:5;4505:31;:::i;:::-;4555:5;-1:-1:-1;4612:2:1;4597:18;;4584:32;4625:33;4584:32;4625:33;:::i;:::-;4677:7;4667:17;;;4302:388;;;;;:::o;4695:180::-;4754:6;4807:2;4795:9;4786:7;4782:23;4778:32;4775:52;;;4823:1;4820;4813:12;4775:52;-1:-1:-1;4846:23:1;;4695:180;-1:-1:-1;4695:180:1:o;4880:356::-;5082:2;5064:21;;;5101:18;;;5094:30;5160:34;5155:2;5140:18;;5133:62;5227:2;5212:18;;4880:356::o;5241:127::-;5302:10;5297:3;5293:20;5290:1;5283:31;5333:4;5330:1;5323:15;5357:4;5354:1;5347:15;5373:127;5434:10;5429:3;5425:20;5422:1;5415:31;5465:4;5462:1;5455:15;5489:4;5486:1;5479:15;5505:135;5544:3;-1:-1:-1;;5565:17:1;;5562:43;;;5585:18;;:::i;:::-;-1:-1:-1;5632:1:1;5621:13;;5505:135::o;6051:251::-;6121:6;6174:2;6162:9;6153:7;6149:23;6145:32;6142:52;;;6190:1;6187;6180:12;6142:52;6222:9;6216:16;6241:31;6266:5;6241:31;:::i;7023:980::-;7285:4;7333:3;7322:9;7318:19;7364:6;7353:9;7346:25;7390:2;7428:6;7423:2;7412:9;7408:18;7401:34;7471:3;7466:2;7455:9;7451:18;7444:31;7495:6;7530;7524:13;7561:6;7553;7546:22;7599:3;7588:9;7584:19;7577:26;;7638:2;7630:6;7626:15;7612:29;;7659:1;7669:195;7683:6;7680:1;7677:13;7669:195;;;7748:13;;-1:-1:-1;;;;;7744:39:1;7732:52;;7839:15;;;;7804:12;;;;7780:1;7698:9;7669:195;;;-1:-1:-1;;;;;;;7920:32:1;;;;7915:2;7900:18;;7893:60;-1:-1:-1;;;7984:3:1;7969:19;7962:35;7881:3;7023:980;-1:-1:-1;;;7023:980:1:o;10886:125::-;10926:4;10954:1;10951;10948:8;10945:34;;;10959:18;;:::i;:::-;-1:-1:-1;10996:9:1;;10886:125::o;11427:168::-;11467:7;11533:1;11529;11525:6;11521:14;11518:1;11515:21;11510:1;11503:9;11496:17;11492:45;11489:71;;;11540:18;;:::i;:::-;-1:-1:-1;11580:9:1;;11427:168::o;11600:217::-;11640:1;11666;11656:132;;11710:10;11705:3;11701:20;11698:1;11691:31;11745:4;11742:1;11735:15;11773:4;11770:1;11763:15;11656:132;-1:-1:-1;11802:9:1;;11600:217::o;12224:128::-;12264:3;12295:1;12291:6;12288:1;12285:13;12282:39;;;12301:18;;:::i;:::-;-1:-1:-1;12337:9:1;;12224:128::o
Swarm Source
ipfs://2eec531cdb3a972c3ebac38f9bc2f5b5c2b017fcbfcfa231e3c098090172ca50
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.