Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 ERC-4337
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Filtered by Token Holder
opiumrickowenskencarson10inu.ethBalance
160,000 ERC-4337Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Erc4337
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-30 */ /* https://eips.ethereum.org/EIPS/eip-4337 ERC-4337 is the proposal of Account Abstraction, which will enable among other things: • define your own flexible security rules • recover your account if you lose the keys • share your account security across trusted devices or individuals • pay someone else's gas, or have someone else pay yours • batch transactions together (e.g. approve and execute a swap in one go) • more opportunities for dapps and wallet developers to innovate on user experiences ███████╗██████╗░░█████╗░░░░░░░░░██╗██╗██████╗░██████╗░███████╗ ██╔════╝██╔══██╗██╔══██╗░░░░░░░██╔╝██║╚════██╗╚════██╗╚════██║ █████╗░░██████╔╝██║░░╚═╝█████╗██╔╝░██║░█████╔╝░█████╔╝░░░░██╔╝ ██╔══╝░░██╔══██╗██║░░██╗╚════╝███████║░╚═══██╗░╚═══██╗░░░██╔╝░ ███████╗██║░░██║╚█████╔╝░░░░░░╚════██║██████╔╝██████╔╝░░██╔╝░░ ╚══════╝╚═╝░░╚═╝░╚════╝░░░░░░░░░░░░╚═╝╚═════╝░╚═════╝░░░╚═╝░░░ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; 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; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Erc4337 is Context, IERC20, Ownable { using SafeMath for uint256; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 public constant _tTotal = 10e6 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 10; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _marketingAddress; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal / 50; uint256 public _maxWalletSize = _tTotal / 50; uint256 public _swapTokensAtAmount = _tTotal / 1000; string private constant _name = "Account Abstraction"; string private constant _symbol = "ERC-4337"; bool private tradingOpen = false; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _marketingAddress = payable(msg.sender); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[address(_uniswapV2Router)] = 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 (uint8) { 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 removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradingOpen, "TOKEN: This account cannot send tokens until trading is enabled"); require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function enableTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } 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 updateFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; require(redisFeeOnBuy+taxFeeOnBuy <=20 &&redisFeeOnSell+taxFeeOnSell <= 20, "Set lower than 20%"); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function excludeMultipleAccounts(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } //Set maximum transaction function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; require(maxTxAmount >= _tTotal / 200, "Min 0.5% max tx"); } function setMaxWallet(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; require(maxWalletSize >= _tTotal / 200, "Min 0.5% max wallet"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccounts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405262000018662386f26fc100005f1962000386565b62000025905f196200039c565b6006555f6008819055600a6009819055818155600b819055600c829055600d819055600e91909155600f556010805461ffff60a01b1916600160a81b179055620000786032662386f26fc10000620003c2565b6011556200008f6032662386f26fc10000620003c2565b601255620000a76103e8662386f26fc10000620003c2565b6013556014805460ff19169055348015620000c0575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f8181526002602090815260409182902093909355601080546001600160a01b03191690921790915560148054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d00179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa158015620001a1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c79190620003d8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000213573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002399190620003d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000284573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002aa9190620003d8565b601580546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601054851684528284208054821683179055938516835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200036391815260200190565b60405180910390a35062000407565b634e487b7160e01b5f52601260045260245ffd5b5f8262000397576200039762000372565b500690565b81810381811115620003bc57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620003d357620003d362000372565b500490565b5f60208284031215620003e9575f80fd5b81516001600160a01b038116811462000400575f80fd5b9392505050565b6117fb80620004155f395ff3fe60806040526004361061014a575f3560e01c80638a8c523c116100b3578063af465a271161006d578063af465a27146103b5578063c3c8cd80146103cf578063dd62ed3e146103e3578063ea9fae8014610427578063ec28438a14610446578063f2fde38b14610465575f80fd5b80638a8c523c146103025780638da5cb5b146103165780638f9a55c01461033257806395d89b411461034757806398a5c31514610377578063a9059cbb14610396575f80fd5b806349bd5a5e1161010457806349bd5a5e146102435780635c34c6ce1461027a5780635d0044ca1461029b57806370a08231146102ba578063715018a6146102d95780637d1db4a5146102ed575f80fd5b806306fdde0314610155578063095ea7b3146101a257806318160ddd146101d157806323b872dd146101f45780632fd689e314610213578063313ce56714610228575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5060408051808201909152601381527220b1b1b7bab73a1020b139ba3930b1ba34b7b760691b60208201525b6040516101999190611460565b60405180910390f35b3480156101ad575f80fd5b506101c16101bc3660046114bf565b610484565b6040519015158152602001610199565b3480156101dc575f80fd5b50662386f26fc100005b604051908152602001610199565b3480156101ff575f80fd5b506101c161020e3660046114e9565b61049a565b34801561021e575f80fd5b506101e660135481565b348015610233575f80fd5b5060405160098152602001610199565b34801561024e575f80fd5b50601554610262906001600160a01b031681565b6040516001600160a01b039091168152602001610199565b348015610285575f80fd5b50610299610294366004611527565b610501565b005b3480156102a6575f80fd5b506102996102b53660046115aa565b6105a7565b3480156102c5575f80fd5b506101e66102d43660046115c1565b61062f565b3480156102e4575f80fd5b50610299610650565b3480156102f8575f80fd5b506101e660115481565b34801561030d575f80fd5b506102996106c1565b348015610321575f80fd5b505f546001600160a01b0316610262565b34801561033d575f80fd5b506101e660125481565b348015610352575f80fd5b506040805180820190915260088152674552432d3433333760c01b602082015261018c565b348015610382575f80fd5b506102996103913660046115aa565b6106f9565b3480156103a1575f80fd5b506101c16103b03660046114bf565b610727565b3480156103c0575f80fd5b506101e6662386f26fc1000081565b3480156103da575f80fd5b50610299610733565b3480156103ee575f80fd5b506101e66103fd3660046115dc565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610432575f80fd5b50610299610441366004611613565b610767565b348015610451575f80fd5b506102996104603660046115aa565b610809565b348015610470575f80fd5b5061029961047f3660046115c1565b61088a565b5f610490338484610971565b5060015b92915050565b5f6104a68484846109d1565b6104f784336104f28560405180606001604052806028815260200161179e602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610d47565b610971565b5060019392505050565b5f546001600160a01b031633146105335760405162461bcd60e51b815260040161052a90611642565b60405180910390fd5b5f5b828110156105a1578160055f86868581811061055357610553611677565b905060200201602081019061056891906115c1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806105998161169f565b915050610535565b50505050565b5f546001600160a01b031633146105d05760405162461bcd60e51b815260040161052a90611642565b60128190556105e760c8662386f26fc100006116b7565b81101561062c5760405162461bcd60e51b8152602060048201526013602482015272135a5b880c0b8d49481b585e081dd85b1b195d606a1b604482015260640161052a565b50565b6001600160a01b0381165f9081526002602052604081205461049490610d7f565b5f546001600160a01b031633146106795760405162461bcd60e51b815260040161052a90611642565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106ea5760405162461bcd60e51b815260040161052a90611642565b6014805460ff19166001179055565b5f546001600160a01b031633146107225760405162461bcd60e51b815260040161052a90611642565b601355565b5f6104903384846109d1565b6010546001600160a01b0316336001600160a01b031614610752575f80fd5b5f61075c3061062f565b905061062c81610e01565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161052a90611642565b6008849055600a8390556009829055600b81905560146107b083866116d6565b111580156107c8575060146107c582856116d6565b11155b6105a15760405162461bcd60e51b8152602060048201526012602482015271536574206c6f776572207468616e2032302560701b604482015260640161052a565b5f546001600160a01b031633146108325760405162461bcd60e51b815260040161052a90611642565b601181905561084960c8662386f26fc100006116b7565b81101561062c5760405162461bcd60e51b815260206004820152600f60248201526e09ad2dc40605c6a4a40dac2f040e8f608b1b604482015260640161052a565b5f546001600160a01b031633146108b35760405162461bcd60e51b815260040161052a90611642565b6001600160a01b0381166109185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526005602052604090205460ff16158015610a1157506001600160a01b0382165f9081526005602052604090205460ff16155b15610c395760145460ff16610a8e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161052a565b601154811115610ae05760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161052a565b6015546001600160a01b03838116911614610b655760125481610b028461062f565b610b0c91906116d6565b10610b655760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161052a565b5f610b6f3061062f565b601354601154919250821015908210610b885760115491505b808015610b9f5750601054600160a01b900460ff16155b8015610bb957506015546001600160a01b03868116911614155b8015610bce5750601054600160a81b900460ff165b8015610bf257506001600160a01b0385165f9081526005602052604090205460ff16155b8015610c1657506001600160a01b0384165f9081526005602052604090205460ff16155b15610c3657610c2482610e01565b478015610c3457610c3447610f94565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610c7957506001600160a01b0383165f9081526005602052604090205460ff165b80610cab57506015546001600160a01b03858116911614801590610cab57506015546001600160a01b03848116911614155b15610cb757505f610d3b565b6015546001600160a01b038581169116148015610ce757506014546001600160a01b038481166101009092041614155b15610cf957600854600c55600954600d555b6015546001600160a01b038481169116148015610d2957506014546001600160a01b038581166101009092041614155b15610d3b57600a54600c55600b54600d555b6105a184848484610fcf565b5f8184841115610d6a5760405162461bcd60e51b815260040161052a9190611460565b505f610d7684866116e9565b95945050505050565b5f600654821115610de55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161052a565b5f610dee610ffd565b9050610dfa838261101e565b9392505050565b6010805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e4757610e47611677565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edc91906116fc565b81600181518110610eef57610eef611677565b6001600160a01b039283166020918202929092010152601454610f1a91309161010090041684610971565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790610f569085905f90869030904290600401611717565b5f604051808303815f87803b158015610f6d575f80fd5b505af1158015610f7f573d5f803e3d5ffd5b50506010805460ff60a01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610fcb573d5f803e3d5ffd5b5050565b80610fdc57610fdc61105f565b610fe784848461108c565b806105a1576105a1600e54600c55600f54600d55565b5f805f61100861117d565b9092509050611017828261101e565b9250505090565b5f610dfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111ba565b600c5415801561106f5750600d54155b1561107657565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061109b876111e6565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506110cc908761123b565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546110fa908661127c565b6001600160a01b0389165f9081526002602052604090205561111b816112da565b6111258483611320565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116a91815260200190565b60405180910390a3505050505050505050565b6006545f908190662386f26fc10000611196828261101e565b8210156111b157505060065492662386f26fc1000092509050565b90939092509050565b5f81836111da5760405162461bcd60e51b815260040161052a9190611460565b505f610d7684866116b7565b5f805f805f805f805f6111fe8a600c54600d54611344565b9250925092505f61120d610ffd565b90505f805f61121e8e878787611396565b919e509c509a509598509396509194505050505091939550919395565b5f610dfa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d47565b5f8061128883856116d6565b905083811015610dfa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052a565b5f6112e3610ffd565b90505f6112f083836113e2565b305f9081526002602052604090205490915061130c908261127c565b305f90815260026020526040902055505050565b60065461132d908361123b565b60065560075461133d908261127c565b6007555050565b5f80808061135d606461135789896113e2565b9061101e565b90505f61136f60646113578a896113e2565b90505f611386826113808b8661123b565b9061123b565b9992985090965090945050505050565b5f8080806113a488866113e2565b90505f6113b188876113e2565b90505f6113be88886113e2565b90505f6113cf82611380868661123b565b939b939a50919850919650505050505050565b5f825f036113f157505f610494565b5f6113fc8385611786565b90508261140985836116b7565b14610dfa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052a565b5f6020808352835180828501525f5b8181101561148b5785810183015185820160400152820161146f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461062c575f80fd5b5f80604083850312156114d0575f80fd5b82356114db816114ab565b946020939093013593505050565b5f805f606084860312156114fb575f80fd5b8335611506816114ab565b92506020840135611516816114ab565b929592945050506040919091013590565b5f805f60408486031215611539575f80fd5b833567ffffffffffffffff80821115611550575f80fd5b818601915086601f830112611563575f80fd5b813581811115611571575f80fd5b8760208260051b8501011115611585575f80fd5b60209283019550935050840135801515811461159f575f80fd5b809150509250925092565b5f602082840312156115ba575f80fd5b5035919050565b5f602082840312156115d1575f80fd5b8135610dfa816114ab565b5f80604083850312156115ed575f80fd5b82356115f8816114ab565b91506020830135611608816114ab565b809150509250929050565b5f805f8060808587031215611626575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016116b0576116b061168b565b5060010190565b5f826116d157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156104945761049461168b565b818103818111156104945761049461168b565b5f6020828403121561170c575f80fd5b8151610dfa816114ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117655784516001600160a01b031683529383019391830191600101611740565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104945761049461168b56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4349c1eaed401c230291a0913603a0b7c12f75e19a81cadc3d5f4481c97d9a264736f6c63430008150033
Deployed Bytecode
0x60806040526004361061014a575f3560e01c80638a8c523c116100b3578063af465a271161006d578063af465a27146103b5578063c3c8cd80146103cf578063dd62ed3e146103e3578063ea9fae8014610427578063ec28438a14610446578063f2fde38b14610465575f80fd5b80638a8c523c146103025780638da5cb5b146103165780638f9a55c01461033257806395d89b411461034757806398a5c31514610377578063a9059cbb14610396575f80fd5b806349bd5a5e1161010457806349bd5a5e146102435780635c34c6ce1461027a5780635d0044ca1461029b57806370a08231146102ba578063715018a6146102d95780637d1db4a5146102ed575f80fd5b806306fdde0314610155578063095ea7b3146101a257806318160ddd146101d157806323b872dd146101f45780632fd689e314610213578063313ce56714610228575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5060408051808201909152601381527220b1b1b7bab73a1020b139ba3930b1ba34b7b760691b60208201525b6040516101999190611460565b60405180910390f35b3480156101ad575f80fd5b506101c16101bc3660046114bf565b610484565b6040519015158152602001610199565b3480156101dc575f80fd5b50662386f26fc100005b604051908152602001610199565b3480156101ff575f80fd5b506101c161020e3660046114e9565b61049a565b34801561021e575f80fd5b506101e660135481565b348015610233575f80fd5b5060405160098152602001610199565b34801561024e575f80fd5b50601554610262906001600160a01b031681565b6040516001600160a01b039091168152602001610199565b348015610285575f80fd5b50610299610294366004611527565b610501565b005b3480156102a6575f80fd5b506102996102b53660046115aa565b6105a7565b3480156102c5575f80fd5b506101e66102d43660046115c1565b61062f565b3480156102e4575f80fd5b50610299610650565b3480156102f8575f80fd5b506101e660115481565b34801561030d575f80fd5b506102996106c1565b348015610321575f80fd5b505f546001600160a01b0316610262565b34801561033d575f80fd5b506101e660125481565b348015610352575f80fd5b506040805180820190915260088152674552432d3433333760c01b602082015261018c565b348015610382575f80fd5b506102996103913660046115aa565b6106f9565b3480156103a1575f80fd5b506101c16103b03660046114bf565b610727565b3480156103c0575f80fd5b506101e6662386f26fc1000081565b3480156103da575f80fd5b50610299610733565b3480156103ee575f80fd5b506101e66103fd3660046115dc565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610432575f80fd5b50610299610441366004611613565b610767565b348015610451575f80fd5b506102996104603660046115aa565b610809565b348015610470575f80fd5b5061029961047f3660046115c1565b61088a565b5f610490338484610971565b5060015b92915050565b5f6104a68484846109d1565b6104f784336104f28560405180606001604052806028815260200161179e602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610d47565b610971565b5060019392505050565b5f546001600160a01b031633146105335760405162461bcd60e51b815260040161052a90611642565b60405180910390fd5b5f5b828110156105a1578160055f86868581811061055357610553611677565b905060200201602081019061056891906115c1565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806105998161169f565b915050610535565b50505050565b5f546001600160a01b031633146105d05760405162461bcd60e51b815260040161052a90611642565b60128190556105e760c8662386f26fc100006116b7565b81101561062c5760405162461bcd60e51b8152602060048201526013602482015272135a5b880c0b8d49481b585e081dd85b1b195d606a1b604482015260640161052a565b50565b6001600160a01b0381165f9081526002602052604081205461049490610d7f565b5f546001600160a01b031633146106795760405162461bcd60e51b815260040161052a90611642565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106ea5760405162461bcd60e51b815260040161052a90611642565b6014805460ff19166001179055565b5f546001600160a01b031633146107225760405162461bcd60e51b815260040161052a90611642565b601355565b5f6104903384846109d1565b6010546001600160a01b0316336001600160a01b031614610752575f80fd5b5f61075c3061062f565b905061062c81610e01565b5f546001600160a01b031633146107905760405162461bcd60e51b815260040161052a90611642565b6008849055600a8390556009829055600b81905560146107b083866116d6565b111580156107c8575060146107c582856116d6565b11155b6105a15760405162461bcd60e51b8152602060048201526012602482015271536574206c6f776572207468616e2032302560701b604482015260640161052a565b5f546001600160a01b031633146108325760405162461bcd60e51b815260040161052a90611642565b601181905561084960c8662386f26fc100006116b7565b81101561062c5760405162461bcd60e51b815260206004820152600f60248201526e09ad2dc40605c6a4a40dac2f040e8f608b1b604482015260640161052a565b5f546001600160a01b031633146108b35760405162461bcd60e51b815260040161052a90611642565b6001600160a01b0381166109185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526005602052604090205460ff16158015610a1157506001600160a01b0382165f9081526005602052604090205460ff16155b15610c395760145460ff16610a8e5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161052a565b601154811115610ae05760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161052a565b6015546001600160a01b03838116911614610b655760125481610b028461062f565b610b0c91906116d6565b10610b655760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161052a565b5f610b6f3061062f565b601354601154919250821015908210610b885760115491505b808015610b9f5750601054600160a01b900460ff16155b8015610bb957506015546001600160a01b03868116911614155b8015610bce5750601054600160a81b900460ff165b8015610bf257506001600160a01b0385165f9081526005602052604090205460ff16155b8015610c1657506001600160a01b0384165f9081526005602052604090205460ff16155b15610c3657610c2482610e01565b478015610c3457610c3447610f94565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610c7957506001600160a01b0383165f9081526005602052604090205460ff165b80610cab57506015546001600160a01b03858116911614801590610cab57506015546001600160a01b03848116911614155b15610cb757505f610d3b565b6015546001600160a01b038581169116148015610ce757506014546001600160a01b038481166101009092041614155b15610cf957600854600c55600954600d555b6015546001600160a01b038481169116148015610d2957506014546001600160a01b038581166101009092041614155b15610d3b57600a54600c55600b54600d555b6105a184848484610fcf565b5f8184841115610d6a5760405162461bcd60e51b815260040161052a9190611460565b505f610d7684866116e9565b95945050505050565b5f600654821115610de55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161052a565b5f610dee610ffd565b9050610dfa838261101e565b9392505050565b6010805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e4757610e47611677565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edc91906116fc565b81600181518110610eef57610eef611677565b6001600160a01b039283166020918202929092010152601454610f1a91309161010090041684610971565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790610f569085905f90869030904290600401611717565b5f604051808303815f87803b158015610f6d575f80fd5b505af1158015610f7f573d5f803e3d5ffd5b50506010805460ff60a01b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610fcb573d5f803e3d5ffd5b5050565b80610fdc57610fdc61105f565b610fe784848461108c565b806105a1576105a1600e54600c55600f54600d55565b5f805f61100861117d565b9092509050611017828261101e565b9250505090565b5f610dfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111ba565b600c5415801561106f5750600d54155b1561107657565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061109b876111e6565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506110cc908761123b565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546110fa908661127c565b6001600160a01b0389165f9081526002602052604090205561111b816112da565b6111258483611320565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116a91815260200190565b60405180910390a3505050505050505050565b6006545f908190662386f26fc10000611196828261101e565b8210156111b157505060065492662386f26fc1000092509050565b90939092509050565b5f81836111da5760405162461bcd60e51b815260040161052a9190611460565b505f610d7684866116b7565b5f805f805f805f805f6111fe8a600c54600d54611344565b9250925092505f61120d610ffd565b90505f805f61121e8e878787611396565b919e509c509a509598509396509194505050505091939550919395565b5f610dfa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d47565b5f8061128883856116d6565b905083811015610dfa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052a565b5f6112e3610ffd565b90505f6112f083836113e2565b305f9081526002602052604090205490915061130c908261127c565b305f90815260026020526040902055505050565b60065461132d908361123b565b60065560075461133d908261127c565b6007555050565b5f80808061135d606461135789896113e2565b9061101e565b90505f61136f60646113578a896113e2565b90505f611386826113808b8661123b565b9061123b565b9992985090965090945050505050565b5f8080806113a488866113e2565b90505f6113b188876113e2565b90505f6113be88886113e2565b90505f6113cf82611380868661123b565b939b939a50919850919650505050505050565b5f825f036113f157505f610494565b5f6113fc8385611786565b90508261140985836116b7565b14610dfa5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052a565b5f6020808352835180828501525f5b8181101561148b5785810183015185820160400152820161146f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461062c575f80fd5b5f80604083850312156114d0575f80fd5b82356114db816114ab565b946020939093013593505050565b5f805f606084860312156114fb575f80fd5b8335611506816114ab565b92506020840135611516816114ab565b929592945050506040919091013590565b5f805f60408486031215611539575f80fd5b833567ffffffffffffffff80821115611550575f80fd5b818601915086601f830112611563575f80fd5b813581811115611571575f80fd5b8760208260051b8501011115611585575f80fd5b60209283019550935050840135801515811461159f575f80fd5b809150509250925092565b5f602082840312156115ba575f80fd5b5035919050565b5f602082840312156115d1575f80fd5b8135610dfa816114ab565b5f80604083850312156115ed575f80fd5b82356115f8816114ab565b91506020830135611608816114ab565b809150509250929050565b5f805f8060808587031215611626575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016116b0576116b061168b565b5060010190565b5f826116d157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156104945761049461168b565b818103818111156104945761049461168b565b5f6020828403121561170c575f80fd5b8151610dfa816114ab565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117655784516001600160a01b031683529383019391830191600101611740565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104945761049461168b56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4349c1eaed401c230291a0913603a0b7c12f75e19a81cadc3d5f4481c97d9a264736f6c63430008150033
Deployed Bytecode Sourcemap
5745:12189:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7978:83;;;;;;;;;;-1:-1:-1;8048:5:0;;;;;;;;;;;;-1:-1:-1;;;8048:5:0;;;;7978:83;;;;;;;:::i;:::-;;;;;;;;8903:193;;;;;;;;;;-1:-1:-1;8903:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8903:193:0;1023:187:1;8255:95:0;;;;;;;;;;-1:-1:-1;6188:12:0;8255:95;;;1361:25:1;;;1349:2;1334:18;8255:95:0;1215:177:1;9104:446:0;;;;;;;;;;-1:-1:-1;9104:446:0;;;;;:::i;:::-;;:::i;6886:51::-;;;;;;;;;;;;;;;;8164:83;;;;;;;;;;-1:-1:-1;8164:83:0;;5865:1;2000:36:1;;1988:2;1973:18;8164:83:0;1858:184:1;7149:28:0;;;;;;;;;;-1:-1:-1;7149:28:0;;;;-1:-1:-1;;;;;7149:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;7149:28:0;2047:203:1;17298:226:0;;;;;;;;;;-1:-1:-1;17298:226:0;;;;;:::i;:::-;;:::i;:::-;;17745:184;;;;;;;;;;-1:-1:-1;17745:184:0;;;;;:::i;:::-;;:::i;8358:138::-;;;;;;;;;;-1:-1:-1;8358:138:0;;;;;:::i;:::-;;:::i;3232:148::-;;;;;;;;;;;;;:::i;6786:42::-;;;;;;;;;;;;;;;;13007:79;;;;;;;;;;;;;:::i;3018:::-;;;;;;;;;;-1:-1:-1;3056:7:0;3083:6;-1:-1:-1;;;;;3083:6:0;3018:79;;6835:44;;;;;;;;;;;;;;;;8069:87;;;;;;;;;;-1:-1:-1;8141:7:0;;;;;;;;;;;;-1:-1:-1;;;8141:7:0;;;;8069:87;;17151:139;;;;;;;;;;-1:-1:-1;17151:139:0;;;;;:::i;:::-;;:::i;8504:199::-;;;;;;;;;;-1:-1:-1;8504:199:0;;;;;:::i;:::-;;:::i;6154:46::-;;;;;;;;;;;;6188:12;6154:46;;13094:197;;;;;;;;;;;;;:::i;8711:184::-;;;;;;;;;;-1:-1:-1;8711:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8860:18:0;;;8828:7;8860:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8711:184;16697:402;;;;;;;;;;-1:-1:-1;16697:402:0;;;;;:::i;:::-;;:::i;17563:174::-;;;;;;;;;;-1:-1:-1;17563:174:0;;;;;:::i;:::-;;:::i;3388:244::-;;;;;;;;;;-1:-1:-1;3388:244:0;;;;;:::i;:::-;;:::i;8903:193::-;9005:4;9027:39;1857:10;9050:7;9059:6;9027:8;:39::i;:::-;-1:-1:-1;9084:4:0;8903:193;;;;;:::o;9104:446::-;9236:4;9253:36;9263:6;9271:9;9282:6;9253:9;:36::i;:::-;9300:220;9323:6;1857:10;9371:138;9427:6;9371:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9371:19:0;;;;;;:11;:19;;;;;;;;1857:10;9371:33;;;;;;;;;;:37;:138::i;:::-;9300:8;:220::i;:::-;-1:-1:-1;9538:4:0;9104:446;;;;;:::o;17298:226::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;;;;;;;;;17407:9:::1;17403:114;17422:19:::0;;::::1;17403:114;;;17497:8;17463:18;:31;17482:8;;17491:1;17482:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17463:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17463:31:0;:42;;-1:-1:-1;;17463:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17443:3;::::1;::::0;::::1;:::i;:::-;;;;17403:114;;;;17298:226:::0;;;:::o;17745:184::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;17818:14:::1;:30:::0;;;17884:13:::1;17894:3;6188:12;17884:13;:::i;:::-;17867;:30;;17859:62;;;::::0;-1:-1:-1;;;17859:62:0;;5451:2:1;17859:62:0::1;::::0;::::1;5433:21:1::0;5490:2;5470:18;;;5463:30;-1:-1:-1;;;5509:18:1;;;5502:49;5568:18;;17859:62:0::1;5249:343:1::0;17859:62:0::1;17745:184:::0;:::o;8358:138::-;-1:-1:-1;;;;;8471:16:0;;8424:7;8471:16;;;:7;:16;;;;;;8451:37;;:19;:37::i;3232:148::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;3339:1:::1;3323:6:::0;;3302:40:::1;::::0;-1:-1:-1;;;;;3323:6:0;;::::1;::::0;3302:40:::1;::::0;3339:1;;3302:40:::1;3370:1;3353:19:::0;;-1:-1:-1;;;;;;3353:19:0::1;::::0;;3232:148::o;13007:79::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;13060:11:::1;:18:::0;;-1:-1:-1;;13060:18:0::1;13074:4;13060:18;::::0;;13007:79::o;17151:139::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;17242:19:::1;:40:::0;17151:139::o;8504:199::-;8609:4;8631:42;1857:10;8655:9;8666:6;8631:9;:42::i;13094:197::-;13160:17;;-1:-1:-1;;;;;13160:17:0;1857:10;-1:-1:-1;;;;;13144:33:0;;13136:42;;;;;;13189:23;13215:24;13233:4;13215:9;:24::i;:::-;13189:50;;13250:33;13267:15;13250:16;:33::i;16697:402::-;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;16834:14:::1;:30:::0;;;16875:15:::1;:32:::0;;;16918:12:::1;:26:::0;;;16955:13:::1;:28:::0;;;17030:2:::1;17002:25;16933:11:::0;16851:13;17002:25:::1;:::i;:::-;:30;;:66;;;;-1:-1:-1::0;17066:2:0::1;17035:27;17050:12:::0;17035:14;:27:::1;:::i;:::-;:33;;17002:66;16994:97;;;::::0;-1:-1:-1;;;16994:97:0;;5929:2:1;16994:97:0::1;::::0;::::1;5911:21:1::0;5968:2;5948:18;;;5941:30;-1:-1:-1;;;5987:18:1;;;5980:48;6045:18;;16994:97:0::1;5727:342:1::0;17563:174:0;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;17636:12:::1;:26:::0;;;17696:13:::1;17706:3;6188:12;17696:13;:::i;:::-;17681:11;:28;;17673:56;;;::::0;-1:-1:-1;;;17673:56:0;;6276:2:1;17673:56:0::1;::::0;::::1;6258:21:1::0;6315:2;6295:18;;;6288:30;-1:-1:-1;;;6334:18:1;;;6327:45;6389:18;;17673:56:0::1;6074:339:1::0;3388:244:0;3145:6;;-1:-1:-1;;;;;3145:6:0;1857:10;3145:22;3137:67;;;;-1:-1:-1;;;3137:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3477:22:0;::::1;3469:73;;;::::0;-1:-1:-1;;;3469:73:0;;6620:2:1;3469:73:0::1;::::0;::::1;6602:21:1::0;6659:2;6639:18;;;6632:30;6698:34;6678:18;;;6671:62;-1:-1:-1;;;6749:18:1;;;6742:36;6795:19;;3469:73:0::1;6418:402:1::0;3469:73:0::1;3579:6;::::0;;3558:38:::1;::::0;-1:-1:-1;;;;;3558:38:0;;::::1;::::0;3579:6;::::1;::::0;3558:38:::1;::::0;::::1;3607:6;:17:::0;;-1:-1:-1;;;;;;3607:17:0::1;-1:-1:-1::0;;;;;3607:17:0;;;::::1;::::0;;;::::1;::::0;;3388:244::o;10241:211::-;-1:-1:-1;;;;;10360:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10412:32;;1361:25:1;;;10412:32:0;;1334:18:1;10412:32:0;;;;;;;10241:211;;;:::o;10460:1941::-;-1:-1:-1;;;;;10579:24:0;;;;;;:18;:24;;;;;;;;10578:25;:52;;;;-1:-1:-1;;;;;;10608:22:0;;;;;;:18;:22;;;;;;;;10607:23;10578:52;10574:1101;;;10655:11;;;;10647:87;;;;-1:-1:-1;;;10647:87:0;;7027:2:1;10647:87:0;;;7009:21:1;7066:2;7046:18;;;7039:30;7105:34;7085:18;;;7078:62;7176:33;7156:18;;;7149:61;7227:19;;10647:87:0;6825:427:1;10647:87:0;10769:12;;10759:6;:22;;10751:63;;;;-1:-1:-1;;;10751:63:0;;7459:2:1;10751:63:0;;;7441:21:1;7498:2;7478:18;;;7471:30;7537;7517:18;;;7510:58;7585:18;;10751:63:0;7257:352:1;10751:63:0;10840:13;;-1:-1:-1;;;;;10834:19:0;;;10840:13;;10834:19;10831:146;;10907:14;;10898:6;10882:13;10892:2;10882:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10874:87;;;;-1:-1:-1;;;10874:87:0;;7816:2:1;10874:87:0;;;7798:21:1;7855:2;7835:18;;;7828:30;7894:34;7874:18;;;7867:62;-1:-1:-1;;;7945:18:1;;;7938:33;7988:19;;10874:87:0;7614:399:1;10874:87:0;10993:28;11024:24;11042:4;11024:9;:24::i;:::-;11102:19;;11165:12;;10993:55;;-1:-1:-1;11078:43:0;;;;11141:36;;11138:124;;11234:12;;11211:35;;11138:124;11282:7;:18;;;;-1:-1:-1;11294:6:0;;-1:-1:-1;;;11294:6:0;;;;11293:7;11282:18;:43;;;;-1:-1:-1;11312:13:0;;-1:-1:-1;;;;;11304:21:0;;;11312:13;;11304:21;;11282:43;:58;;;;-1:-1:-1;11329:11:0;;-1:-1:-1;;;11329:11:0;;;;11282:58;:87;;;;-1:-1:-1;;;;;;11345:24:0;;;;;;:18;:24;;;;;;;;11344:25;11282:87;:114;;;;-1:-1:-1;;;;;;11374:22:0;;;;;;:18;:22;;;;;;;;11373:23;11282:114;11278:386;;;11417:38;11434:20;11417:16;:38::i;:::-;11503:21;11547:22;;11543:106;;11594:35;11607:21;11594:12;:35::i;:::-;11398:266;11278:386;10632:1043;;10574:1101;-1:-1:-1;;;;;11751:24:0;;11687:12;11751:24;;;:18;:24;;;;;;11702:4;;11751:24;;;:50;;-1:-1:-1;;;;;;11779:22:0;;;;;;:18;:22;;;;;;;;11751:50;11750:102;;;-1:-1:-1;11815:13:0;;-1:-1:-1;;;;;11807:21:0;;;11815:13;;11807:21;;;;:44;;-1:-1:-1;11838:13:0;;-1:-1:-1;;;;;11832:19:0;;;11838:13;;11832:19;;11807:44;11746:594;;;-1:-1:-1;11879:5:0;11746:594;;;11962:13;;-1:-1:-1;;;;;11954:21:0;;;11962:13;;11954:21;:55;;;;-1:-1:-1;11993:15:0;;-1:-1:-1;;;;;11979:30:0;;;11993:15;;;;;11979:30;;11954:55;11951:162;;;12042:14;;12030:9;:26;12085:12;;12075:7;:22;11951:162;12172:13;;-1:-1:-1;;;;;12166:19:0;;;12172:13;;12166:19;:55;;;;-1:-1:-1;12205:15:0;;-1:-1:-1;;;;;12189:32:0;;;12205:15;;;;;12189:32;;12166:55;12162:165;;;12254:15;;12242:9;:27;12298:13;;12288:7;:23;12162:165;12352:41;12367:4;12373:2;12377:6;12385:7;12352:14;:41::i;3996:224::-;4116:7;4152:12;4144:6;;;;4136:29;;;;-1:-1:-1;;;4136:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4176:9:0;4188:5;4192:1;4188;:5;:::i;:::-;4176:17;3996:224;-1:-1:-1;;;;;3996:224:0:o;9558:323::-;9653:7;9711;;9700;:18;;9678:110;;;;-1:-1:-1;;;9678:110:0;;8353:2:1;9678:110:0;;;8335:21:1;8392:2;8372:18;;;8365:30;8431:34;8411:18;;;8404:62;-1:-1:-1;;;8482:18:1;;;8475:40;8532:19;;9678:110:0;8151:406:1;9678:110:0;9799:19;9821:10;:8;:10::i;:::-;9799:32;-1:-1:-1;9849:24:0;:7;9799:32;9849:11;:24::i;:::-;9842:31;9558:323;-1:-1:-1;;;9558:323:0:o;12409:483::-;7216:6;:13;;-1:-1:-1;;;;7216:13:0;-1:-1:-1;;;7216:13:0;;;12511:16:::1;::::0;;12525:1:::1;12511:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12511:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12511:16:0::1;12487:40;;12556:4;12538;12543:1;12538:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12538:23:0::1;;;-1:-1:-1::0;;;;;12538:23:0::1;;;::::0;::::1;12582:15;;;;;;;;;-1:-1:-1::0;;;;;12582:15:0::1;-1:-1:-1::0;;;;;12582:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12572:4;12577:1;12572:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12572:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12647:15:::1;::::0;12615:62:::1;::::0;12632:4:::1;::::0;12647:15:::1;::::0;::::1;;12665:11:::0;12615:8:::1;:62::i;:::-;12688:15;::::0;:196:::1;::::0;-1:-1:-1;;;12688:196:0;;:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;12688:15:0::1;::::0;:66:::1;::::0;:196:::1;::::0;12769:11;;12795:1:::1;::::0;12811:4;;12838::::1;::::0;12858:15:::1;::::0;12688:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7252:6:0;:14;;-1:-1:-1;;;;7252:14:0;;;-1:-1:-1;;;;12409:483:0:o;12900:99::-;12957:17;;:34;;-1:-1:-1;;;;;12957:17:0;;;;:34;;;;;12984:6;;12957:17;:34;:17;:34;12984:6;12957:17;:34;;;;;;;;;;;;;;;;;;;;;12900:99;:::o;13299:282::-;13455:7;13450:28;;13464:14;:12;:14::i;:::-;13489:44;13507:6;13515:9;13526:6;13489:17;:44::i;:::-;13549:7;13544:29;;13558:15;10172:17;;10160:9;:29;10210:15;;10200:7;:25;10116:117;16260:164;16302:7;16323:15;16340;16359:19;:17;:19::i;:::-;16322:56;;-1:-1:-1;16322:56:0;-1:-1:-1;16396:20:0;16322:56;;16396:11;:20::i;:::-;16389:27;;;;16260:164;:::o;4482:132::-;4540:7;4567:39;4571:1;4574;4567:39;;;;;;;;;;;;;;;;;:3;:39::i;9889:219::-;9936:9;;:14;:30;;;;-1:-1:-1;9954:7:0;;:12;9936:30;9932:43;;;9889:219::o;9932:43::-;10007:9;;;9987:17;:29;10045:7;;;10027:15;:25;-1:-1:-1;10065:13:0;;;;10089:11;9889:219::o;13589:610::-;13736:15;13766:23;13804:12;13831:23;13869:12;13896:13;13923:19;13934:7;13923:10;:19::i;:::-;-1:-1:-1;;;;;13971:15:0;;;;;;:7;:15;;;;;;13721:221;;-1:-1:-1;13721:221:0;;-1:-1:-1;13721:221:0;;-1:-1:-1;13721:221:0;-1:-1:-1;13721:221:0;-1:-1:-1;13721:221:0;-1:-1:-1;13971:28:0;;13721:221;13971:19;:28::i;:::-;-1:-1:-1;;;;;13953:15:0;;;;;;;:7;:15;;;;;;:46;;;;14031:18;;;;;;;:39;;14054:15;14031:22;:39::i;:::-;-1:-1:-1;;;;;14010:18:0;;;;;;:7;:18;;;;;:60;14081:16;14091:5;14081:9;:16::i;:::-;14108:23;14120:4;14126;14108:11;:23::i;:::-;14164:9;-1:-1:-1;;;;;14147:44:0;14156:6;-1:-1:-1;;;;;14147:44:0;;14175:15;14147:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;14147:44:0;;;;;;;;13710:489;;;;;;13589:610;;;:::o;16432:257::-;16530:7;;16483;;;;6188:12;16598:20;16530:7;6188:12;16598:11;:20::i;:::-;16588:7;:30;16584:61;;;-1:-1:-1;;16628:7:0;;;6188:12;;-1:-1:-1;16432:257:0;-1:-1:-1;16432:257:0:o;16584:61::-;16664:7;;16673;;-1:-1:-1;16432:257:0;-1:-1:-1;16432:257:0:o;4622:223::-;4742:7;4777:12;4770:5;4762:28;;;;-1:-1:-1;;;4762:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4801:9:0;4813:5;4817:1;4813;:5;:::i;14618:615::-;14718:7;14740;14762;14784;14806;14828;14864:23;14889:12;14903:13;14933:40;14945:7;14954:9;;14965:7;;14933:11;:40::i;:::-;14863:110;;;;;;14984:19;15006:10;:8;:10::i;:::-;14984:32;;15028:15;15045:23;15070:12;15099:46;15111:7;15120:4;15126:5;15133:11;15099;:46::i;:::-;15027:118;;-1:-1:-1;15027:118:0;-1:-1:-1;15027:118:0;-1:-1:-1;15196:15:0;;-1:-1:-1;15213:4:0;;-1:-1:-1;15219:5:0;;-1:-1:-1;;;;;14618:615:0;;;;;;;:::o;3852:136::-;3910:7;3937:43;3941:1;3944;3937:43;;;;;;;;;;;;;;;;;:3;:43::i;3665:179::-;3723:7;;3755:5;3759:1;3755;:5;:::i;:::-;3743:17;;3784:1;3779;:6;;3771:46;;;;-1:-1:-1;;;3771:46:0;;10137:2:1;3771:46:0;;;10119:21:1;10176:2;10156:18;;;10149:30;10215:29;10195:18;;;10188:57;10262:18;;3771:46:0;9935:351:1;14207:211:0;14260:19;14282:10;:8;:10::i;:::-;14260:32;-1:-1:-1;14303:13:0;14319:22;:5;14260:32;14319:9;:22::i;:::-;14393:4;14377:22;;;;:7;:22;;;;;;14303:38;;-1:-1:-1;14377:33:0;;14303:38;14377:26;:33::i;:::-;14368:4;14352:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14207:211:0:o;14426:147::-;14504:7;;:17;;14516:4;14504:11;:17::i;:::-;14494:7;:27;14545:10;;:20;;14560:4;14545:14;:20::i;:::-;14532:10;:33;-1:-1:-1;;14426:147:0:o;15241:469::-;15410:7;;;;15504:30;15530:3;15504:21;:7;15516:8;15504:11;:21::i;:::-;:25;;:30::i;:::-;15489:45;-1:-1:-1;15545:13:0;15561:28;15585:3;15561:19;:7;15573:6;15561:11;:19::i;:28::-;15545:44;-1:-1:-1;15600:23:0;15626:28;15545:44;15626:17;:7;15638:4;15626:11;:17::i;:::-;:21;;:28::i;:::-;15600:54;15690:4;;-1:-1:-1;15696:5:0;;-1:-1:-1;15241:469:0;;-1:-1:-1;;;;;15241:469:0:o;15718:534::-;15912:7;;;;16009:24;:7;16021:11;16009;:24::i;:::-;15991:42;-1:-1:-1;16044:12:0;16059:21;:4;16068:11;16059:8;:21::i;:::-;16044:36;-1:-1:-1;16091:13:0;16107:22;:5;16117:11;16107:9;:22::i;:::-;16091:38;-1:-1:-1;16140:23:0;16166:28;16091:38;16166:17;:7;16178:4;16166:11;:17::i;:28::-;16213:7;;;;-1:-1:-1;16239:4:0;;-1:-1:-1;15718:534:0;;-1:-1:-1;;;;;;;15718:534:0:o;4228:246::-;4286:7;4310:1;4315;4310:6;4306:47;;-1:-1:-1;4340:1:0;4333:8;;4306:47;4363:9;4375:5;4379:1;4375;:5;:::i;:::-;4363:17;-1:-1:-1;4408:1:0;4399:5;4403:1;4363:17;4399:5;:::i;:::-;:10;4391:56;;;;-1:-1:-1;;;4391:56:0;;10666:2:1;4391:56:0;;;10648:21:1;10705:2;10685:18;;;10678:30;10744:34;10724:18;;;10717:62;-1:-1:-1;;;10795:18:1;;;10788:31;10836:19;;4391:56:0;10464:397: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:782::-;2347:6;2355;2363;2416:2;2404:9;2395:7;2391:23;2387:32;2384:52;;;2432:1;2429;2422:12;2384:52;2472:9;2459:23;2501:18;2542:2;2534:6;2531:14;2528:34;;;2558:1;2555;2548:12;2528:34;2596:6;2585:9;2581:22;2571:32;;2641:7;2634:4;2630:2;2626:13;2622:27;2612:55;;2663:1;2660;2653:12;2612:55;2703:2;2690:16;2729:2;2721:6;2718:14;2715:34;;;2745:1;2742;2735:12;2715:34;2800:7;2793:4;2783:6;2780:1;2776:14;2772:2;2768:23;2764:34;2761:47;2758:67;;;2821:1;2818;2811:12;2758:67;2852:4;2844:13;;;;-1:-1:-1;2876:6:1;-1:-1:-1;;2917:20:1;;2904:34;2974:13;;2967:21;2957:32;;2947:60;;3003:1;3000;2993:12;2947:60;3026:5;3016:15;;;2255:782;;;;;:::o;3042:180::-;3101:6;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;-1:-1:-1;3193:23:1;;3042:180;-1:-1:-1;3042:180:1:o;3227:247::-;3286:6;3339:2;3327:9;3318:7;3314:23;3310:32;3307:52;;;3355:1;3352;3345:12;3307:52;3394:9;3381:23;3413:31;3438:5;3413:31;:::i;3479:388::-;3547:6;3555;3608:2;3596:9;3587:7;3583:23;3579:32;3576:52;;;3624:1;3621;3614:12;3576:52;3663:9;3650:23;3682:31;3707:5;3682:31;:::i;:::-;3732:5;-1:-1:-1;3789:2:1;3774:18;;3761:32;3802:33;3761:32;3802:33;:::i;:::-;3854:7;3844:17;;;3479:388;;;;;:::o;3872:385::-;3958:6;3966;3974;3982;4035:3;4023:9;4014:7;4010:23;4006:33;4003:53;;;4052:1;4049;4042:12;4003:53;-1:-1:-1;;4075:23:1;;;4145:2;4130:18;;4117:32;;-1:-1:-1;4196:2:1;4181:18;;4168:32;;4247:2;4232:18;4219:32;;-1:-1:-1;3872:385:1;-1:-1:-1;3872:385:1:o;4262:356::-;4464:2;4446:21;;;4483:18;;;4476:30;4542:34;4537:2;4522:18;;4515:62;4609:2;4594:18;;4262:356::o;4623:127::-;4684:10;4679:3;4675:20;4672:1;4665:31;4715:4;4712:1;4705:15;4739:4;4736:1;4729:15;4755:127;4816:10;4811:3;4807:20;4804:1;4797:31;4847:4;4844:1;4837:15;4871:4;4868:1;4861:15;4887:135;4926:3;4947:17;;;4944:43;;4967:18;;:::i;:::-;-1:-1:-1;5014:1:1;5003:13;;4887:135::o;5027:217::-;5067:1;5093;5083:132;;5137:10;5132:3;5128:20;5125:1;5118:31;5172:4;5169:1;5162:15;5200:4;5197:1;5190:15;5083:132;-1:-1:-1;5229:9:1;;5027:217::o;5597:125::-;5662:9;;;5683:10;;;5680:36;;;5696:18;;:::i;8018:128::-;8085:9;;;8106:11;;;8103:37;;;8120:18;;:::i;8694:251::-;8764:6;8817:2;8805:9;8796:7;8792:23;8788:32;8785:52;;;8833:1;8830;8823:12;8785:52;8865:9;8859:16;8884:31;8909:5;8884:31;:::i;8950:980::-;9212:4;9260:3;9249:9;9245:19;9291:6;9280:9;9273:25;9317:2;9355:6;9350:2;9339:9;9335:18;9328:34;9398:3;9393:2;9382:9;9378:18;9371:31;9422:6;9457;9451:13;9488:6;9480;9473:22;9526:3;9515:9;9511:19;9504:26;;9565:2;9557:6;9553:15;9539:29;;9586:1;9596:195;9610:6;9607:1;9604:13;9596:195;;;9675:13;;-1:-1:-1;;;;;9671:39:1;9659:52;;9766:15;;;;9731:12;;;;9707:1;9625:9;9596:195;;;-1:-1:-1;;;;;;;9847:32:1;;;;9842:2;9827:18;;9820:60;-1:-1:-1;;;9911:3:1;9896:19;9889:35;9808:3;8950:980;-1:-1:-1;;;8950:980:1:o;10291:168::-;10364:9;;;10395;;10412:15;;;10406:22;;10392:37;10382:71;;10433:18;;:::i
Swarm Source
ipfs://c4349c1eaed401c230291a0913603a0b7c12f75e19a81cadc3d5f4481c97d9a2
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.