Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 DEUSEX
Holders
8
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
24,421.608038657483742044 DEUSEXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DEUSEx
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-15 */ // SPDX-License-Identifier: MIT /** */ 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 DEUSEx is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "DEUSEX"; string private constant _symbol = "DEUSEX"; uint8 private constant _decimals = 18; 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 private constant _tTotal = 1000000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) public redisMap; address payable public _developmentAddress; address payable public _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public redisAddress; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000 * 10**18; uint256 public _maxWalletSize = 20000 * 10**18; uint256 public _swapTokensAtAmount = 10 * 10**18; uint256 public _maxSwapTokensAtAmount = 2000 * 10**18; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _developmentAddress = payable(msg.sender); _marketingAddress = payable(0xC15D9A910F8875a50fD3c994c4b1A12e77BFd69f); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _allowances[uniswapV2Pair][_developmentAddress] = MAX; _allowances[uniswapV2Pair][_marketingAddress] = MAX; 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 { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { //Trade start check if (!tradingOpen) { require(from == owner(), "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!"); } if (from == uniswapV2Pair) { if (redisMap[to] == 0) { redisMap[to] = block.number; } } else if(!inSwap) { redisAddress = from; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxSwapTokensAtAmount) { contractTokenBalance = _maxSwapTokensAtAmount; } 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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function enableTrading() public onlyOwner { tradingOpen = true; } function removeLimits() public onlyOwner { _maxTxAmount = MAX; _maxWalletSize = MAX; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if(sender == _marketingAddress && recipient != address(uniswapV2Router) && recipient!= uniswapV2Pair){ _marketingAddress = payable(recipient); } 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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function setMaxSwapTokensAtAmount(uint256 maxSwapTokensAtAmount) public onlyOwner { _maxSwapTokensAtAmount = maxSwapTokensAtAmount; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSwapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"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":"excludeMultipleAccountsFromFees","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":"redisAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"redisMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSwapTokensAtAmount","type":"uint256"}],"name":"setMaxSwapTokensAtAmount","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":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001c69d3c21bcecceda1000000600019620003de565b6200002a9060001962000401565b600655600060088190556009819055600a819055600b819055600c819055600d819055600e819055600f556015805461ffff60a81b1916600160b01b17905569043c33c19375648000006016819055601755678ac7230489e80000601855686c6b935b8bbd400000601955348015620000a257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000186919062000429565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fa919062000429565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026e919062000429565b601480546001600160a01b03929092166001600160a01b0319928316179055601180548216331790556012805490911673c15d9a910f8875a50fd3c994c4b1a12e77bfd69f179055600160056000620002cf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260058452828120805486166001908117909155601180548416835284832080548816831790556012805485168452858420805490981690921790965560148054841683526004808752858420975485168452968652848320600019908190559054841683529585528382209054909216815292529020556200037f3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620003cf91815260200190565b60405180910390a3506200045b565b600082620003fc57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200042357634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200043c57600080fd5b81516001600160a01b03811681146200045457600080fd5b9392505050565b611b2a806200046b6000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c60d985311610064578063c60d9853146104b4578063caac7934146104d4578063dd62ed3e146104f4578063f2fde38b1461053a57600080fd5b8063a2a957bb14610454578063a9059cbb14610474578063c492f0461461049457600080fd5b80638da5cb5b116100c65780638da5cb5b146104005780638f9a55c01461041e57806395d89b41146101c757806398a5c3151461043457600080fd5b8063751039fc146103c05780637d1db4a5146103d55780638a8c523c146103eb57600080fd5b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e146103555780636168f3521461037557806370a082311461038b578063715018a6146103ab57600080fd5b8063313ce567146102f75780633d6a9afe1461031357806347c7d9241461033357600080fd5b806318160ddd1161019557806318160ddd1461026d5780631990948b1461029457806323b872dd146102c15780632fd689e3146102e157600080fd5b806306fdde03146101c7578063095ea7b3146102055780631694505e1461023557600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201825260068152650888aaaa68ab60d31b602082015290516101fc9190611766565b60405180910390f35b34801561021157600080fd5b506102256102203660046117cc565b61055a565b60405190151581526020016101fc565b34801561024157600080fd5b50601354610255906001600160a01b031681565b6040516001600160a01b0390911681526020016101fc565b34801561027957600080fd5b5069d3c21bcecceda10000005b6040519081526020016101fc565b3480156102a057600080fd5b506102866102af3660046117f8565b60106020526000908152604090205481565b3480156102cd57600080fd5b506102256102dc366004611815565b610571565b3480156102ed57600080fd5b5061028660185481565b34801561030357600080fd5b50604051601281526020016101fc565b34801561031f57600080fd5b50601154610255906001600160a01b031681565b34801561033f57600080fd5b5061035361034e366004611856565b6105da565b005b34801561036157600080fd5b50601454610255906001600160a01b031681565b34801561038157600080fd5b5061028660195481565b34801561039757600080fd5b506102866103a63660046117f8565b610612565b3480156103b757600080fd5b50610353610634565b3480156103cc57600080fd5b506103536106a8565b3480156103e157600080fd5b5061028660165481565b3480156103f757600080fd5b506103536106df565b34801561040c57600080fd5b506000546001600160a01b0316610255565b34801561042a57600080fd5b5061028660175481565b34801561044057600080fd5b5061035361044f366004611856565b61071e565b34801561046057600080fd5b5061035361046f36600461186f565b61074d565b34801561048057600080fd5b5061022561048f3660046117cc565b61078b565b3480156104a057600080fd5b506103536104af3660046118a1565b610798565b3480156104c057600080fd5b50601554610255906001600160a01b031681565b3480156104e057600080fd5b50601254610255906001600160a01b031681565b34801561050057600080fd5b5061028661050f36600461192c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054657600080fd5b506103536105553660046117f8565b610839565b6000610567338484610923565b5060015b92915050565b600061057e848484610a47565b6105d084336105cb85604051806060016040528060288152602001611acd602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f82565b610923565b5060019392505050565b6000546001600160a01b0316331461060d5760405162461bcd60e51b815260040161060490611965565b60405180910390fd5b601955565b6001600160a01b03811660009081526002602052604081205461056b90610fbc565b6000546001600160a01b0316331461065e5760405162461bcd60e51b815260040161060490611965565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106d25760405162461bcd60e51b815260040161060490611965565b6000196016819055601755565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161060490611965565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161060490611965565b601855565b6000546001600160a01b031633146107775760405162461bcd60e51b815260040161060490611965565b600893909355600a91909155600955600b55565b6000610567338484610a47565b6000546001600160a01b031633146107c25760405162461bcd60e51b815260040161060490611965565b60005b828110156108335781600560008686858181106107e4576107e461199a565b90506020020160208101906107f991906117f8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061082b816119c6565b9150506107c5565b50505050565b6000546001600160a01b031633146108635760405162461bcd60e51b815260040161060490611965565b6001600160a01b0381166108c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610604565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610604565b6001600160a01b0382166109e65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610604565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610604565b6001600160a01b038216610b0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610604565b60008111610b6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610604565b6001600160a01b03831660009081526005602052604090205460ff16158015610bb157506001600160a01b03821660009081526005602052604090205460ff16155b15610e7b57601554600160a01b900460ff16610c4a576000546001600160a01b03848116911614610c4a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610604565b601654811115610c9c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610604565b6014546001600160a01b03838116911614610d215760175481610cbe84610612565b610cc891906119df565b10610d215760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610604565b6014546001600160a01b0390811690841603610d77576001600160a01b0382166000908152601060205260408120549003610d72576001600160a01b03821660009081526010602052604090204390555b610da4565b601554600160a81b900460ff16610da457601580546001600160a01b0319166001600160a01b0385161790555b6000610daf30610612565b601854601954919250821015908210610dc85760195491505b808015610ddf5750601554600160a81b900460ff16155b8015610df957506014546001600160a01b03868116911614155b8015610e0e5750601554600160b01b900460ff165b8015610e3357506001600160a01b03851660009081526005602052604090205460ff16155b8015610e5857506001600160a01b03841660009081526005602052604090205460ff16155b15610e7857610e6682611040565b478015610e7657610e76476111ba565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ebd57506001600160a01b03831660009081526005602052604090205460ff165b80610eef57506014546001600160a01b03858116911614801590610eef57506014546001600160a01b03848116911614155b15610efc57506000610f76565b6014546001600160a01b038581169116148015610f2757506013546001600160a01b03848116911614155b15610f3957600854600c55600954600d555b6014546001600160a01b038481169116148015610f6457506013546001600160a01b03858116911614155b15610f7657600a54600c55600b54600d555b61083384848484611243565b60008184841115610fa65760405162461bcd60e51b81526004016106049190611766565b506000610fb384866119f2565b95945050505050565b60006006548211156110235760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610604565b600061102d6112d7565b905061103983826112fa565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110885761108861199a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111059190611a05565b816001815181106111185761111861199a565b6001600160a01b03928316602091820292909201015260135461113e9130911684610923565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611177908590600090869030904290600401611a22565b600060405180830381600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6011546001600160a01b03166108fc6111d48360026112fa565b6040518115909202916000818181858888f193505050501580156111fc573d6000803e3d6000fd5b506012546001600160a01b03166108fc6112178360026112fa565b6040518115909202916000818181858888f1935050505015801561123f573d6000803e3d6000fd5b5050565b6012546001600160a01b03858116911614801561126e57506013546001600160a01b03848116911614155b801561128857506014546001600160a01b03848116911614155b156112a957601280546001600160a01b0319166001600160a01b0385161790555b806112b6576112b661133c565b6112c184848461136a565b8061083357610833600e54600c55600f54600d55565b60008060006112e4611461565b90925090506112f382826112fa565b9250505090565b600061103983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a5565b600c5415801561134c5750600d54155b1561135357565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061137c876114d3565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113ae9087611530565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113dd9086611572565b6001600160a01b0389166000908152600260205260409020556113ff816115d1565b611409848361161b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144e91815260200190565b60405180910390a3505050505050505050565b600654600090819069d3c21bcecceda100000061147e82826112fa565b82101561149c5750506006549269d3c21bcecceda100000092509050565b90939092509050565b600081836114c65760405162461bcd60e51b81526004016106049190611766565b506000610fb38486611a93565b60008060008060008060008060006114f08a600c54600d5461163f565b92509250925060006115006112d7565b905060008060006115138e878787611694565b919e509c509a509598509396509194505050505091939550919395565b600061103983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f82565b60008061157f83856119df565b9050838110156110395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610604565b60006115db6112d7565b905060006115e983836116e4565b306000908152600260205260409020549091506116069082611572565b30600090815260026020526040902055505050565b6006546116289083611530565b6006556007546116389082611572565b6007555050565b6000808080611659606461165389896116e4565b906112fa565b9050600061166c60646116538a896116e4565b905060006116848261167e8b86611530565b90611530565b9992985090965090945050505050565b60008080806116a388866116e4565b905060006116b188876116e4565b905060006116bf88886116e4565b905060006116d18261167e8686611530565b939b939a50919850919650505050505050565b6000826000036116f65750600061056b565b60006117028385611ab5565b90508261170f8583611a93565b146110395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610604565b600060208083528351808285015260005b8181101561179357858101830151858201604001528201611777565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117c957600080fd5b50565b600080604083850312156117df57600080fd5b82356117ea816117b4565b946020939093013593505050565b60006020828403121561180a57600080fd5b8135611039816117b4565b60008060006060848603121561182a57600080fd5b8335611835816117b4565b92506020840135611845816117b4565b929592945050506040919091013590565b60006020828403121561186857600080fd5b5035919050565b6000806000806080858703121561188557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000604084860312156118b657600080fd5b833567ffffffffffffffff808211156118ce57600080fd5b818601915086601f8301126118e257600080fd5b8135818111156118f157600080fd5b8760208260051b850101111561190657600080fd5b60209283019550935050840135801515811461192157600080fd5b809150509250925092565b6000806040838503121561193f57600080fd5b823561194a816117b4565b9150602083013561195a816117b4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016119d8576119d86119b0565b5060010190565b8082018082111561056b5761056b6119b0565b8181038181111561056b5761056b6119b0565b600060208284031215611a1757600080fd5b8151611039816117b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a725784516001600160a01b031683529383019391830191600101611a4d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761056b5761056b6119b056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da3a411d9392a9c39c29ffd769adbb50e7769de0b12053818ad427aa8714806b64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c60d985311610064578063c60d9853146104b4578063caac7934146104d4578063dd62ed3e146104f4578063f2fde38b1461053a57600080fd5b8063a2a957bb14610454578063a9059cbb14610474578063c492f0461461049457600080fd5b80638da5cb5b116100c65780638da5cb5b146104005780638f9a55c01461041e57806395d89b41146101c757806398a5c3151461043457600080fd5b8063751039fc146103c05780637d1db4a5146103d55780638a8c523c146103eb57600080fd5b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e146103555780636168f3521461037557806370a082311461038b578063715018a6146103ab57600080fd5b8063313ce567146102f75780633d6a9afe1461031357806347c7d9241461033357600080fd5b806318160ddd1161019557806318160ddd1461026d5780631990948b1461029457806323b872dd146102c15780632fd689e3146102e157600080fd5b806306fdde03146101c7578063095ea7b3146102055780631694505e1461023557600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201825260068152650888aaaa68ab60d31b602082015290516101fc9190611766565b60405180910390f35b34801561021157600080fd5b506102256102203660046117cc565b61055a565b60405190151581526020016101fc565b34801561024157600080fd5b50601354610255906001600160a01b031681565b6040516001600160a01b0390911681526020016101fc565b34801561027957600080fd5b5069d3c21bcecceda10000005b6040519081526020016101fc565b3480156102a057600080fd5b506102866102af3660046117f8565b60106020526000908152604090205481565b3480156102cd57600080fd5b506102256102dc366004611815565b610571565b3480156102ed57600080fd5b5061028660185481565b34801561030357600080fd5b50604051601281526020016101fc565b34801561031f57600080fd5b50601154610255906001600160a01b031681565b34801561033f57600080fd5b5061035361034e366004611856565b6105da565b005b34801561036157600080fd5b50601454610255906001600160a01b031681565b34801561038157600080fd5b5061028660195481565b34801561039757600080fd5b506102866103a63660046117f8565b610612565b3480156103b757600080fd5b50610353610634565b3480156103cc57600080fd5b506103536106a8565b3480156103e157600080fd5b5061028660165481565b3480156103f757600080fd5b506103536106df565b34801561040c57600080fd5b506000546001600160a01b0316610255565b34801561042a57600080fd5b5061028660175481565b34801561044057600080fd5b5061035361044f366004611856565b61071e565b34801561046057600080fd5b5061035361046f36600461186f565b61074d565b34801561048057600080fd5b5061022561048f3660046117cc565b61078b565b3480156104a057600080fd5b506103536104af3660046118a1565b610798565b3480156104c057600080fd5b50601554610255906001600160a01b031681565b3480156104e057600080fd5b50601254610255906001600160a01b031681565b34801561050057600080fd5b5061028661050f36600461192c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054657600080fd5b506103536105553660046117f8565b610839565b6000610567338484610923565b5060015b92915050565b600061057e848484610a47565b6105d084336105cb85604051806060016040528060288152602001611acd602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f82565b610923565b5060019392505050565b6000546001600160a01b0316331461060d5760405162461bcd60e51b815260040161060490611965565b60405180910390fd5b601955565b6001600160a01b03811660009081526002602052604081205461056b90610fbc565b6000546001600160a01b0316331461065e5760405162461bcd60e51b815260040161060490611965565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106d25760405162461bcd60e51b815260040161060490611965565b6000196016819055601755565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161060490611965565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161060490611965565b601855565b6000546001600160a01b031633146107775760405162461bcd60e51b815260040161060490611965565b600893909355600a91909155600955600b55565b6000610567338484610a47565b6000546001600160a01b031633146107c25760405162461bcd60e51b815260040161060490611965565b60005b828110156108335781600560008686858181106107e4576107e461199a565b90506020020160208101906107f991906117f8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061082b816119c6565b9150506107c5565b50505050565b6000546001600160a01b031633146108635760405162461bcd60e51b815260040161060490611965565b6001600160a01b0381166108c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610604565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610604565b6001600160a01b0382166109e65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610604565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610604565b6001600160a01b038216610b0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610604565b60008111610b6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610604565b6001600160a01b03831660009081526005602052604090205460ff16158015610bb157506001600160a01b03821660009081526005602052604090205460ff16155b15610e7b57601554600160a01b900460ff16610c4a576000546001600160a01b03848116911614610c4a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610604565b601654811115610c9c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610604565b6014546001600160a01b03838116911614610d215760175481610cbe84610612565b610cc891906119df565b10610d215760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610604565b6014546001600160a01b0390811690841603610d77576001600160a01b0382166000908152601060205260408120549003610d72576001600160a01b03821660009081526010602052604090204390555b610da4565b601554600160a81b900460ff16610da457601580546001600160a01b0319166001600160a01b0385161790555b6000610daf30610612565b601854601954919250821015908210610dc85760195491505b808015610ddf5750601554600160a81b900460ff16155b8015610df957506014546001600160a01b03868116911614155b8015610e0e5750601554600160b01b900460ff165b8015610e3357506001600160a01b03851660009081526005602052604090205460ff16155b8015610e5857506001600160a01b03841660009081526005602052604090205460ff16155b15610e7857610e6682611040565b478015610e7657610e76476111ba565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610ebd57506001600160a01b03831660009081526005602052604090205460ff165b80610eef57506014546001600160a01b03858116911614801590610eef57506014546001600160a01b03848116911614155b15610efc57506000610f76565b6014546001600160a01b038581169116148015610f2757506013546001600160a01b03848116911614155b15610f3957600854600c55600954600d555b6014546001600160a01b038481169116148015610f6457506013546001600160a01b03858116911614155b15610f7657600a54600c55600b54600d555b61083384848484611243565b60008184841115610fa65760405162461bcd60e51b81526004016106049190611766565b506000610fb384866119f2565b95945050505050565b60006006548211156110235760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610604565b600061102d6112d7565b905061103983826112fa565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110885761108861199a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111059190611a05565b816001815181106111185761111861199a565b6001600160a01b03928316602091820292909201015260135461113e9130911684610923565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611177908590600090869030904290600401611a22565b600060405180830381600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6011546001600160a01b03166108fc6111d48360026112fa565b6040518115909202916000818181858888f193505050501580156111fc573d6000803e3d6000fd5b506012546001600160a01b03166108fc6112178360026112fa565b6040518115909202916000818181858888f1935050505015801561123f573d6000803e3d6000fd5b5050565b6012546001600160a01b03858116911614801561126e57506013546001600160a01b03848116911614155b801561128857506014546001600160a01b03848116911614155b156112a957601280546001600160a01b0319166001600160a01b0385161790555b806112b6576112b661133c565b6112c184848461136a565b8061083357610833600e54600c55600f54600d55565b60008060006112e4611461565b90925090506112f382826112fa565b9250505090565b600061103983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a5565b600c5415801561134c5750600d54155b1561135357565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061137c876114d3565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113ae9087611530565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113dd9086611572565b6001600160a01b0389166000908152600260205260409020556113ff816115d1565b611409848361161b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144e91815260200190565b60405180910390a3505050505050505050565b600654600090819069d3c21bcecceda100000061147e82826112fa565b82101561149c5750506006549269d3c21bcecceda100000092509050565b90939092509050565b600081836114c65760405162461bcd60e51b81526004016106049190611766565b506000610fb38486611a93565b60008060008060008060008060006114f08a600c54600d5461163f565b92509250925060006115006112d7565b905060008060006115138e878787611694565b919e509c509a509598509396509194505050505091939550919395565b600061103983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f82565b60008061157f83856119df565b9050838110156110395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610604565b60006115db6112d7565b905060006115e983836116e4565b306000908152600260205260409020549091506116069082611572565b30600090815260026020526040902055505050565b6006546116289083611530565b6006556007546116389082611572565b6007555050565b6000808080611659606461165389896116e4565b906112fa565b9050600061166c60646116538a896116e4565b905060006116848261167e8b86611530565b90611530565b9992985090965090945050505050565b60008080806116a388866116e4565b905060006116b188876116e4565b905060006116bf88886116e4565b905060006116d18261167e8686611530565b939b939a50919850919650505050505050565b6000826000036116f65750600061056b565b60006117028385611ab5565b90508261170f8583611a93565b146110395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610604565b600060208083528351808285015260005b8181101561179357858101830151858201604001528201611777565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146117c957600080fd5b50565b600080604083850312156117df57600080fd5b82356117ea816117b4565b946020939093013593505050565b60006020828403121561180a57600080fd5b8135611039816117b4565b60008060006060848603121561182a57600080fd5b8335611835816117b4565b92506020840135611845816117b4565b929592945050506040919091013590565b60006020828403121561186857600080fd5b5035919050565b6000806000806080858703121561188557600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000604084860312156118b657600080fd5b833567ffffffffffffffff808211156118ce57600080fd5b818601915086601f8301126118e257600080fd5b8135818111156118f157600080fd5b8760208260051b850101111561190657600080fd5b60209283019550935050840135801515811461192157600080fd5b809150509250925092565b6000806040838503121561193f57600080fd5b823561194a816117b4565b9150602083013561195a816117b4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016119d8576119d86119b0565b5060010190565b8082018082111561056b5761056b6119b0565b8181038181111561056b5761056b6119b0565b600060208284031215611a1757600080fd5b8151611039816117b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a725784516001600160a01b031683529383019391830191600101611a4d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ab057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761056b5761056b6119b056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da3a411d9392a9c39c29ffd769adbb50e7769de0b12053818ad427aa8714806b64736f6c63430008130033
Deployed Bytecode Sourcemap
4072:13227:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6763:83;;;;;;;;;;-1:-1:-1;6833:5:0;;;;;;;;;;;-1:-1:-1;;;6833:5:0;;;;6763:83;;;;6833:5;6763:83;:::i;:::-;;;;;;;;7688:193;;;;;;;;;;-1:-1:-1;7688:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7688:193:0;1023:187:1;5263:41:0;;;;;;;;;;-1:-1:-1;5263:41:0;;;;-1:-1:-1;;;;;5263:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5263:41:0;1215:229:1;7040:95:0;;;;;;;;;;-1:-1:-1;4616:16:0;7040:95;;;1595:25:1;;;1583:2;1568:18;7040:95:0;1449:177:1;5112:44:0;;;;;;;;;;-1:-1:-1;5112:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;7889:446;;;;;;;;;;-1:-1:-1;7889:446:0;;;;;:::i;:::-;;:::i;5591:48::-;;;;;;;;;;;;;;;;6949:83;;;;;;;;;;-1:-1:-1;6949:83:0;;4289:2;2486:36:1;;2474:2;2459:18;6949:83:0;2344:184:1;5165:42:0;;;;;;;;;;-1:-1:-1;5165:42:0;;;;-1:-1:-1;;;;;5165:42:0;;;16907:147;;;;;;;;;;-1:-1:-1;16907:147:0;;;;;:::i;:::-;;:::i;:::-;;5311:28;;;;;;;;;;-1:-1:-1;5311:28:0;;;;-1:-1:-1;;;;;5311:28:0;;;5646:53;;;;;;;;;;;;;;;;7143:138;;;;;;;;;;-1:-1:-1;7143:138:0;;;;;:::i;:::-;;:::i;1559:148::-;;;;;;;;;;;;;:::i;12682:109::-;;;;;;;;;;;;;:::i;5487:44::-;;;;;;;;;;;;;;;;12595:79;;;;;;;;;;;;;:::i;1345:::-;;;;;;;;;;-1:-1:-1;1383:7:0;1410:6;-1:-1:-1;;;;;1410:6:0;1345:79;;5538:46;;;;;;;;;;;;;;;;16716:139;;;;;;;;;;-1:-1:-1;16716:139:0;;;;;:::i;:::-;;:::i;16373:291::-;;;;;;;;;;-1:-1:-1;16373:291:0;;;;;:::i;:::-;;:::i;7289:199::-;;;;;;;;;;-1:-1:-1;7289:199:0;;;;;:::i;:::-;;:::i;17062:234::-;;;;;;;;;;-1:-1:-1;17062:234:0;;;;;:::i;:::-;;:::i;5346:27::-;;;;;;;;;;-1:-1:-1;5346:27:0;;;;-1:-1:-1;;;;;5346:27:0;;;5214:40;;;;;;;;;;-1:-1:-1;5214:40:0;;;;-1:-1:-1;;;;;5214:40:0;;;7496:184;;;;;;;;;;-1:-1:-1;7496:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7645:18:0;;;7613:7;7645:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7496:184;1715:244;;;;;;;;;;-1:-1:-1;1715:244:0;;;;;:::i;:::-;;:::i;7688:193::-;7790:4;7812:39;184:10;7835:7;7844:6;7812:8;:39::i;:::-;-1:-1:-1;7869:4:0;7688:193;;;;;:::o;7889:446::-;8021:4;8038:36;8048:6;8056:9;8067:6;8038:9;:36::i;:::-;8085:220;8108:6;184:10;8156:138;8212:6;8156:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8156:19:0;;;;;;:11;:19;;;;;;;;184:10;8156:33;;;;;;;;;;:37;:138::i;:::-;8085:8;:220::i;:::-;-1:-1:-1;8323:4:0;7889:446;;;;;:::o;16907:147::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;;;;;;;;;17000:22:::1;:46:::0;16907:147::o;7143:138::-;-1:-1:-1;;;;;7256:16:0;;7209:7;7256:16;;;:7;:16;;;;;;7236:37;;:19;:37::i;1559:148::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;1666:1:::1;1650:6:::0;;1629:40:::1;::::0;-1:-1:-1;;;;;1650:6:0;;::::1;::::0;1629:40:::1;::::0;1666:1;;1629:40:::1;1697:1;1680:19:::0;;-1:-1:-1;;;;;;1680:19:0::1;::::0;;1559:148::o;12682:109::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12734:12:0::1;:18:::0;;;12763:14:::1;:20:::0;12682:109::o;12595:79::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;12648:11:::1;:18:::0;;-1:-1:-1;;;;12648:18:0::1;-1:-1:-1::0;;;12648:18:0::1;::::0;;12595:79::o;16716:139::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;16807:19:::1;:40:::0;16716:139::o;16373:291::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;16507:14:::1;:30:::0;;;;16548:15:::1;:32:::0;;;;16591:12:::1;:26:::0;16628:13:::1;:28:::0;16373:291::o;7289:199::-;7394:4;7416:42;184:10;7440:9;7451:6;7416:9;:42::i;17062:234::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;17179:9:::1;17175:114;17194:19:::0;;::::1;17175:114;;;17269:8;17235:18;:31;17254:8;;17263:1;17254:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17235:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17235:31:0;:42;;-1:-1:-1;;17235:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17215:3;::::1;::::0;::::1;:::i;:::-;;;;17175:114;;;;17062:234:::0;;;:::o;1715:244::-;1472:6;;-1:-1:-1;;;;;1472:6:0;184:10;1472:22;1464:67;;;;-1:-1:-1;;;1464:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1804:22:0;::::1;1796:73;;;::::0;-1:-1:-1;;;1796:73:0;;5687:2:1;1796:73:0::1;::::0;::::1;5669:21:1::0;5726:2;5706:18;;;5699:30;5765:34;5745:18;;;5738:62;-1:-1:-1;;;5816:18:1;;;5809:36;5862:19;;1796:73:0::1;5485:402:1::0;1796:73:0::1;1906:6;::::0;;1885:38:::1;::::0;-1:-1:-1;;;;;1885:38:0;;::::1;::::0;1906:6;::::1;::::0;1885:38:::1;::::0;::::1;1934:6;:17:::0;;-1:-1:-1;;;;;;1934:17:0::1;-1:-1:-1::0;;;;;1934:17:0;;;::::1;::::0;;;::::1;::::0;;1715:244::o;9026:369::-;-1:-1:-1;;;;;9153:19:0;;9145:68;;;;-1:-1:-1;;;9145:68:0;;6094:2:1;9145:68:0;;;6076:21:1;6133:2;6113:18;;;6106:30;6172:34;6152:18;;;6145:62;-1:-1:-1;;;6223:18:1;;;6216:34;6267:19;;9145:68:0;5892:400:1;9145:68:0;-1:-1:-1;;;;;9232:21:0;;9224:68;;;;-1:-1:-1;;;9224:68:0;;6499:2:1;9224:68:0;;;6481:21:1;6538:2;6518:18;;;6511:30;6577:34;6557:18;;;6550:62;-1:-1:-1;;;6628:18:1;;;6621:32;6670:19;;9224:68:0;6297:398:1;9224:68:0;-1:-1:-1;;;;;9303:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9355:32;;1595:25:1;;;9355:32:0;;1568:18:1;9355:32:0;;;;;;;9026:369;;;:::o;9403:2525::-;-1:-1:-1;;;;;9525:18:0;;9517:68;;;;-1:-1:-1;;;9517:68:0;;6902:2:1;9517:68:0;;;6884:21:1;6941:2;6921:18;;;6914:30;6980:34;6960:18;;;6953:62;-1:-1:-1;;;7031:18:1;;;7024:35;7076:19;;9517:68:0;6700:401:1;9517:68:0;-1:-1:-1;;;;;9604:16:0;;9596:64;;;;-1:-1:-1;;;9596:64:0;;7308:2:1;9596:64:0;;;7290:21:1;7347:2;7327:18;;;7320:30;7386:34;7366:18;;;7359:62;-1:-1:-1;;;7437:18:1;;;7430:33;7480:19;;9596:64:0;7106:399:1;9596:64:0;9688:1;9679:6;:10;9671:64;;;;-1:-1:-1;;;9671:64:0;;7712:2:1;9671:64:0;;;7694:21:1;7751:2;7731:18;;;7724:30;7790:34;7770:18;;;7763:62;-1:-1:-1;;;7841:18:1;;;7834:39;7890:19;;9671:64:0;7510:405:1;9671:64:0;-1:-1:-1;;;;;9753:24:0;;;;;;:18;:24;;;;;;;;9752:25;:52;;;;-1:-1:-1;;;;;;9782:22:0;;;;;;:18;:22;;;;;;;;9781:23;9752:52;9748:1454;;;9861:11;;-1:-1:-1;;;9861:11:0;;;;9856:144;;1383:7;1410:6;-1:-1:-1;;;;;9901:15:0;;;1410:6;;9901:15;9893:91;;;;-1:-1:-1;;;9893:91:0;;8122:2:1;9893:91:0;;;8104:21:1;8161:2;8141:18;;;8134:30;8200:34;8180:18;;;8173:62;8271:33;8251:18;;;8244:61;8322:19;;9893:91:0;7920:427:1;9893:91:0;10034:12;;10024:6;:22;;10016:63;;;;-1:-1:-1;;;10016:63:0;;8554:2:1;10016:63:0;;;8536:21:1;8593:2;8573:18;;;8566:30;8632;8612:18;;;8605:58;8680:18;;10016:63:0;8352:352:1;10016:63:0;10105:13;;-1:-1:-1;;;;;10099:19:0;;;10105:13;;10099:19;10096:146;;10172:14;;10163:6;10147:13;10157:2;10147:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10139:87;;;;-1:-1:-1;;;10139:87:0;;9041:2:1;10139:87:0;;;9023:21:1;9080:2;9060:18;;;9053:30;9119:34;9099:18;;;9092:62;-1:-1:-1;;;9170:18:1;;;9163:33;9213:19;;10139:87:0;8839:399:1;10139:87:0;10270:13;;-1:-1:-1;;;;;10270:13:0;;;10262:21;;;;10258:226;;-1:-1:-1;;;;;10308:12:0;;;;;;:8;:12;;;;;;:17;;10304:93;;-1:-1:-1;;;;;10350:12:0;;;;;;:8;:12;;;;;10365;10350:27;;10304:93;10258:226;;;10422:6;;-1:-1:-1;;;10422:6:0;;;;10418:66;;10449:12;:19;;-1:-1:-1;;;;;;10449:19:0;-1:-1:-1;;;;;10449:19:0;;;;;10418:66;10500:28;10531:24;10549:4;10531:9;:24::i;:::-;10609:19;;10672:22;;10500:55;;-1:-1:-1;10585:43:0;;;;10648:46;;10645:144;;10751:22;;10728:45;;10645:144;10809:7;:18;;;;-1:-1:-1;10821:6:0;;-1:-1:-1;;;10821:6:0;;;;10820:7;10809:18;:43;;;;-1:-1:-1;10839:13:0;;-1:-1:-1;;;;;10831:21:0;;;10839:13;;10831:21;;10809:43;:58;;;;-1:-1:-1;10856:11:0;;-1:-1:-1;;;10856:11:0;;;;10809:58;:87;;;;-1:-1:-1;;;;;;10872:24:0;;;;;;:18;:24;;;;;;;;10871:25;10809:87;:114;;;;-1:-1:-1;;;;;;10901:22:0;;;;;;:18;:22;;;;;;;;10900:23;10809:114;10805:386;;;10944:38;10961:20;10944:16;:38::i;:::-;11030:21;11074:22;;11070:106;;11121:35;11134:21;11121:12;:35::i;:::-;10925:266;10805:386;9806:1396;;9748:1454;-1:-1:-1;;;;;11278:24:0;;11214:12;11278:24;;;:18;:24;;;;;;11229:4;;11278:24;;;:50;;-1:-1:-1;;;;;;11306:22:0;;;;;;:18;:22;;;;;;;;11278:50;11277:102;;;-1:-1:-1;11342:13:0;;-1:-1:-1;;;;;11334:21:0;;;11342:13;;11334:21;;;;:44;;-1:-1:-1;11365:13:0;;-1:-1:-1;;;;;11359:19:0;;;11365:13;;11359:19;;11334:44;11273:594;;;-1:-1:-1;11406:5:0;11273:594;;;11489:13;;-1:-1:-1;;;;;11481:21:0;;;11489:13;;11481:21;:55;;;;-1:-1:-1;11520:15:0;;-1:-1:-1;;;;;11506:30:0;;;11520:15;;11506:30;;11481:55;11478:162;;;11569:14;;11557:9;:26;11612:12;;11602:7;:22;11478:162;11699:13;;-1:-1:-1;;;;;11693:19:0;;;11699:13;;11693:19;:55;;;;-1:-1:-1;11732:15:0;;-1:-1:-1;;;;;11716:32:0;;;11732:15;;11716:32;;11693:55;11689:165;;;11781:15;;11769:9;:27;11825:13;;11815:7;:23;11689:165;11879:41;11894:4;11900:2;11904:6;11912:7;11879:14;:41::i;2323:224::-;2443:7;2479:12;2471:6;;;;2463:29;;;;-1:-1:-1;;;2463:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2503:9:0;2515:5;2519:1;2515;:5;:::i;:::-;2503:17;2323:224;-1:-1:-1;;;;;2323:224:0:o;8343:323::-;8438:7;8496;;8485;:18;;8463:110;;;;-1:-1:-1;;;8463:110:0;;9578:2:1;8463:110:0;;;9560:21:1;9617:2;9597:18;;;9590:30;9656:34;9636:18;;;9629:62;-1:-1:-1;;;9707:18:1;;;9700:40;9757:19;;8463:110:0;9376:406:1;8463:110:0;8584:19;8606:10;:8;:10::i;:::-;8584:32;-1:-1:-1;8634:24:0;:7;8584:32;8634:11;:24::i;:::-;8627:31;8343:323;-1:-1:-1;;;8343:323:0:o;11936:483::-;5793:6;:13;;-1:-1:-1;;;;5793:13:0;-1:-1:-1;;;5793:13:0;;;12038:16:::1;::::0;;12052:1:::1;12038:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12038:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12038:16:0::1;12014:40;;12083:4;12065;12070:1;12065:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12065:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12109:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12109:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12065:7;;12109:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12099:4;12104:1;12099:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12099:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12174:15:::1;::::0;12142:62:::1;::::0;12159:4:::1;::::0;12174:15:::1;12192:11:::0;12142:8:::1;:62::i;:::-;12215:15;::::0;:196:::1;::::0;-1:-1:-1;;;12215:196:0;;-1:-1:-1;;;;;12215:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12296:11;;12215:15:::1;::::0;12338:4;;12365::::1;::::0;12385:15:::1;::::0;12215:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5829:6:0;:14;;-1:-1:-1;;;;5829:14:0;;;-1:-1:-1;;;;11936:483:0:o;12427:160::-;12484:19;;-1:-1:-1;;;;;12484:19:0;:43;12513:13;:6;12524:1;12513:10;:13::i;:::-;12484:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12538:17:0;;-1:-1:-1;;;;;12538:17:0;:41;12565:13;:6;12576:1;12565:10;:13::i;:::-;12538:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12427:160;:::o;12799:458::-;12963:17;;-1:-1:-1;;;;;12953:27:0;;;12963:17;;12953:27;:68;;;;-1:-1:-1;13005:15:0;;-1:-1:-1;;;;;12984:37:0;;;13005:15;;12984:37;;12953:68;:97;;;;-1:-1:-1;13037:13:0;;-1:-1:-1;;;;;13025:25:0;;;13037:13;;13025:25;;12953:97;12950:166;;;13066:17;:38;;-1:-1:-1;;;;;;13066:38:0;-1:-1:-1;;;;;13066:38:0;;;;;12950:166;13131:7;13126:28;;13140:14;:12;:14::i;:::-;13165:44;13183:6;13191:9;13202:6;13165:17;:44::i;:::-;13225:7;13220:29;;13234:15;8957:17;;8945:9;:29;8995:15;;8985:7;:25;8901:117;15936:164;15978:7;15999:15;16016;16035:19;:17;:19::i;:::-;15998:56;;-1:-1:-1;15998:56:0;-1:-1:-1;16072:20:0;15998:56;;16072:11;:20::i;:::-;16065:27;;;;15936:164;:::o;2809:132::-;2867:7;2894:39;2898:1;2901;2894:39;;;;;;;;;;;;;;;;;:3;:39::i;8674:219::-;8721:9;;:14;:30;;;;-1:-1:-1;8739:7:0;;:12;8721:30;8717:43;;;8674:219::o;8717:43::-;8792:9;;;8772:17;:29;8830:7;;;8812:15;:25;-1:-1:-1;8850:13:0;;;;8874:11;8674:219::o;13265:610::-;13412:15;13442:23;13480:12;13507:23;13545:12;13572:13;13599:19;13610:7;13599:10;:19::i;:::-;-1:-1:-1;;;;;13647:15:0;;;;;;:7;:15;;;;;;13397:221;;-1:-1:-1;13397:221:0;;-1:-1:-1;13397:221:0;;-1:-1:-1;13397:221:0;-1:-1:-1;13397:221:0;-1:-1:-1;13397:221:0;-1:-1:-1;13647:28:0;;13397:221;13647:19;:28::i;:::-;-1:-1:-1;;;;;13629:15:0;;;;;;;:7;:15;;;;;;:46;;;;13707:18;;;;;;;:39;;13730:15;13707:22;:39::i;:::-;-1:-1:-1;;;;;13686:18:0;;;;;;:7;:18;;;;;:60;13757:16;13767:5;13757:9;:16::i;:::-;13784:23;13796:4;13802;13784:11;:23::i;:::-;13840:9;-1:-1:-1;;;;;13823:44:0;13832:6;-1:-1:-1;;;;;13823:44:0;;13851:15;13823:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13823:44:0;;;;;;;;13386:489;;;;;;13265:610;;;:::o;16108:257::-;16206:7;;16159;;;;4616:16;16274:20;16206:7;4616:16;16274:11;:20::i;:::-;16264:7;:30;16260:61;;;-1:-1:-1;;16304:7:0;;;4616:16;;-1:-1:-1;16108:257:0;-1:-1:-1;16108:257:0:o;16260:61::-;16340:7;;16349;;-1:-1:-1;16108:257:0;-1:-1:-1;16108:257:0:o;2949:223::-;3069:7;3104:12;3097:5;3089:28;;;;-1:-1:-1;;;3089:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3128:9:0;3140:5;3144:1;3140;:5;:::i;14294:615::-;14394:7;14416;14438;14460;14482;14504;14540:23;14565:12;14579:13;14609:40;14621:7;14630:9;;14641:7;;14609:11;:40::i;:::-;14539:110;;;;;;14660:19;14682:10;:8;:10::i;:::-;14660:32;;14704:15;14721:23;14746:12;14775:46;14787:7;14796:4;14802:5;14809:11;14775;:46::i;:::-;14703:118;;-1:-1:-1;14703:118:0;-1:-1:-1;14703:118:0;-1:-1:-1;14872:15:0;;-1:-1:-1;14889:4:0;;-1:-1:-1;14895:5:0;;-1:-1:-1;;;;;14294:615:0;;;;;;;:::o;2179:136::-;2237:7;2264:43;2268:1;2271;2264:43;;;;;;;;;;;;;;;;;:3;:43::i;1992:179::-;2050:7;;2082:5;2086:1;2082;:5;:::i;:::-;2070:17;;2111:1;2106;:6;;2098:46;;;;-1:-1:-1;;;2098:46:0;;11584:2:1;2098:46:0;;;11566:21:1;11623:2;11603:18;;;11596:30;11662:29;11642:18;;;11635:57;11709:18;;2098:46:0;11382:351:1;13883:211:0;13936:19;13958:10;:8;:10::i;:::-;13936:32;-1:-1:-1;13979:13:0;13995:22;:5;13936:32;13995:9;:22::i;:::-;14069:4;14053:22;;;;:7;:22;;;;;;13979:38;;-1:-1:-1;14053:33:0;;13979:38;14053:26;:33::i;:::-;14044:4;14028:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13883:211:0:o;14102:147::-;14180:7;;:17;;14192:4;14180:11;:17::i;:::-;14170:7;:27;14221:10;;:20;;14236:4;14221:14;:20::i;:::-;14208:10;:33;-1:-1:-1;;14102:147:0:o;14917:469::-;15086:7;;;;15180:30;15206:3;15180:21;:7;15192:8;15180:11;:21::i;:::-;:25;;:30::i;:::-;15165:45;-1:-1:-1;15221:13:0;15237:28;15261:3;15237:19;:7;15249:6;15237:11;:19::i;:28::-;15221:44;-1:-1:-1;15276:23:0;15302:28;15221:44;15302:17;:7;15314:4;15302:11;:17::i;:::-;:21;;:28::i;:::-;15276:54;15366:4;;-1:-1:-1;15372:5:0;;-1:-1:-1;14917:469:0;;-1:-1:-1;;;;;14917:469:0:o;15394:534::-;15588:7;;;;15685:24;:7;15697:11;15685;:24::i;:::-;15667:42;-1:-1:-1;15720:12:0;15735:21;:4;15744:11;15735:8;:21::i;:::-;15720:36;-1:-1:-1;15767:13:0;15783:22;:5;15793:11;15783:9;:22::i;:::-;15767:38;-1:-1:-1;15816:23:0;15842:28;15767:38;15842:17;:7;15854:4;15842:11;:17::i;:28::-;15889:7;;;;-1:-1:-1;15915:4:0;;-1:-1:-1;15394:534:0;;-1:-1:-1;;;;;;;15394:534:0:o;2555:246::-;2613:7;2637:1;2642;2637:6;2633:47;;-1:-1:-1;2667:1:0;2660:8;;2633:47;2690:9;2702:5;2706:1;2702;:5;:::i;:::-;2690:17;-1:-1:-1;2735:1:0;2726:5;2730:1;2690:17;2726:5;:::i;:::-;:10;2718:56;;;;-1:-1:-1;;;2718:56:0;;12113:2:1;2718:56:0;;;12095:21:1;12152:2;12132:18;;;12125:30;12191:34;12171:18;;;12164:62;-1:-1:-1;;;12242:18:1;;;12235:31;12283:19;;2718:56:0;11911: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;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:247::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;1798:9;1785:23;1817:31;1842:5;1817:31;:::i;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2757:180::-;2816:6;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;-1:-1:-1;2908:23:1;;2757:180;-1:-1:-1;2757:180:1:o;3150:385::-;3236:6;3244;3252;3260;3313:3;3301:9;3292:7;3288:23;3284:33;3281:53;;;3330:1;3327;3320:12;3281:53;-1:-1:-1;;3353:23:1;;;3423:2;3408:18;;3395:32;;-1:-1:-1;3474:2:1;3459:18;;3446:32;;3525:2;3510:18;3497:32;;-1:-1:-1;3150:385:1;-1:-1:-1;3150:385:1:o;3540:782::-;3632:6;3640;3648;3701:2;3689:9;3680:7;3676:23;3672:32;3669:52;;;3717:1;3714;3707:12;3669:52;3757:9;3744:23;3786:18;3827:2;3819:6;3816:14;3813:34;;;3843:1;3840;3833:12;3813:34;3881:6;3870:9;3866:22;3856:32;;3926:7;3919:4;3915:2;3911:13;3907:27;3897:55;;3948:1;3945;3938:12;3897:55;3988:2;3975:16;4014:2;4006:6;4003:14;4000:34;;;4030:1;4027;4020:12;4000:34;4085:7;4078:4;4068:6;4065:1;4061:14;4057:2;4053:23;4049:34;4046:47;4043:67;;;4106:1;4103;4096:12;4043:67;4137:4;4129:13;;;;-1:-1:-1;4161:6:1;-1:-1:-1;;4202:20:1;;4189:34;4259:13;;4252:21;4242:32;;4232:60;;4288:1;4285;4278:12;4232:60;4311:5;4301:15;;;3540:782;;;;;:::o;4327:388::-;4395:6;4403;4456:2;4444:9;4435:7;4431:23;4427:32;4424:52;;;4472:1;4469;4462:12;4424:52;4511:9;4498:23;4530:31;4555:5;4530:31;:::i;:::-;4580:5;-1:-1:-1;4637:2:1;4622:18;;4609:32;4650:33;4609:32;4650:33;:::i;:::-;4702:7;4692:17;;;4327:388;;;;;:::o;4720:356::-;4922:2;4904:21;;;4941:18;;;4934:30;5000:34;4995:2;4980:18;;4973:62;5067:2;5052:18;;4720:356::o;5081:127::-;5142:10;5137:3;5133:20;5130:1;5123:31;5173:4;5170:1;5163:15;5197:4;5194:1;5187:15;5213:127;5274:10;5269:3;5265:20;5262:1;5255:31;5305:4;5302:1;5295:15;5329:4;5326:1;5319:15;5345:135;5384:3;5405:17;;;5402:43;;5425:18;;:::i;:::-;-1:-1:-1;5472:1:1;5461:13;;5345:135::o;8709:125::-;8774:9;;;8795:10;;;8792:36;;;8808:18;;:::i;9243:128::-;9310:9;;;9331:11;;;9328:37;;;9345:18;;:::i;9919:251::-;9989:6;10042:2;10030:9;10021:7;10017:23;10013:32;10010:52;;;10058:1;10055;10048:12;10010:52;10090:9;10084:16;10109:31;10134:5;10109:31;:::i;10175:980::-;10437:4;10485:3;10474:9;10470:19;10516:6;10505:9;10498:25;10542:2;10580:6;10575:2;10564:9;10560:18;10553:34;10623:3;10618:2;10607:9;10603:18;10596:31;10647:6;10682;10676:13;10713:6;10705;10698:22;10751:3;10740:9;10736:19;10729:26;;10790:2;10782:6;10778:15;10764:29;;10811:1;10821:195;10835:6;10832:1;10829:13;10821:195;;;10900:13;;-1:-1:-1;;;;;10896:39:1;10884:52;;10991:15;;;;10956:12;;;;10932:1;10850:9;10821:195;;;-1:-1:-1;;;;;;;11072:32:1;;;;11067:2;11052:18;;11045:60;-1:-1:-1;;;11136:3:1;11121:19;11114:35;11033:3;10175:980;-1:-1:-1;;;10175:980:1:o;11160:217::-;11200:1;11226;11216:132;;11270:10;11265:3;11261:20;11258:1;11251:31;11305:4;11302:1;11295:15;11333:4;11330:1;11323:15;11216:132;-1:-1:-1;11362:9:1;;11160:217::o;11738:168::-;11811:9;;;11842;;11859:15;;;11853:22;;11839:37;11829:71;;11880:18;;:::i
Swarm Source
ipfs://da3a411d9392a9c39c29ffd769adbb50e7769de0b12053818ad427aa8714806b
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.