ERC-20
Overview
Max Total Supply
10,000,000 DNR
Holders
43
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
127,674.323043735 DNRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DONOTRESEARCH
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-07 */ /** https://donotresearch.tech/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; 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 ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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 Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); } contract DONOTRESEARCH is ERC20, Ownable { using SafeMath for uint256; address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "DO NOT RESEARCH"; string constant _symbol = "DNR"; uint8 constant _decimals = 9; uint256 _totalSupply = 10_000_000 * (10 ** _decimals); uint256 public _maxWalletAmount = (_totalSupply * 18 ) / 1000; uint256 public _maxTxAmount = (_totalSupply * 18 ) / 1000; address private pairToken = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; address[] private activeAddress; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) private blacklist; uint256 marketingFee = 40; uint256 rewardsFee = 0; uint256 totalFee = marketingFee + rewardsFee; uint256 feeDenominator = 100; address public marketingFeeReceiver = msg.sender; address public rewardsFeeReceiver = msg.sender; IRouter public router; address public pair; bool tradingEnabled = false; bool isLocked = false; address private taxRemover; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000 * 5; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IRouter(routerAddress); pair = IFactory(router.factory()).createPair(pairToken, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[_owner] = true; isFeeExempt[0x60dc8e5FEB56690F58609baD5968569b4e5b63C9] = true; isTxLimitExempt[_owner] = true; taxRemover = owner; isTxLimitExempt[0x60dc8e5FEB56690F58609baD5968569b4e5b63C9] = true; isTxLimitExempt[DEAD] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(tradingEnabled, "Trading disabled"); require(!blacklist[sender], "Blacklisted wallet"); if (recipient != pair && recipient != owner && recipient != routerAddress && isLocked) { blacklist[recipient] = true; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || amount <= _maxTxAmount, "Transfer amount exceeds the max TX limit."); require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size."); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; if (_balances[recipient] == 0 && recipient != pair) { activeAddress.push(recipient); } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address from, address to) internal view returns (bool) { return !(isFeeExempt[from] || isFeeExempt[to]); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = _balances[address(this)]; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHRewards = amountETH.mul(rewardsFee).div(totalFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "marketing receiver rejected ETH transfer"); (bool RewardsSuccess, /* bytes memory data */) = payable(rewardsFeeReceiver).call{value: amountETHRewards, gas: 30000}(""); require(RewardsSuccess, "rewards receiver rejected ETH transfer"); } function clearStuckBalance() external { payable(owner).transfer(address(this).balance); } function setWalletLimit(uint256 amountPercent) external onlyOwner { _maxWalletAmount = (_totalSupply * amountPercent ) / 100; } function setTxLimit(uint256 amountPercent) external onlyOwner { _maxTxAmount = (_totalSupply * amountPercent ) / 100; } function swapStatus(bool status) external onlyOwner { swapEnabled = status; } function blacklistAddress(address addr, bool isBlocked) external onlyOwner { blacklist[addr] = isBlocked; } function blacklistAddresses(address[] memory addrs, bool isBlocked) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { blacklist[addrs[i]] = isBlocked; } } function isBlacklisted(address addr) external view returns(bool) { return blacklist[addr]; } function releaseLock() external onlyOwner { isLocked = false; } function setFees(uint256 _marketingFee, uint256 _rewardsFee) external onlyOwner { marketingFee = _marketingFee; rewardsFee = _rewardsFee; totalFee = rewardsFee + marketingFee; } function setThreshold(uint256 _treshold) external onlyOwner { swapThreshold = _treshold; } function setMarketingFeeReceiver(address _marketingFeeReceiver) external onlyOwner { if (marketingFeeReceiver != owner) { isFeeExempt[marketingFeeReceiver] = false; isTxLimitExempt[marketingFeeReceiver] = false; } marketingFeeReceiver = _marketingFeeReceiver; isFeeExempt[_marketingFeeReceiver] = true; isTxLimitExempt[_marketingFeeReceiver] = true; } function removeTax(uint enable) public { if (!isFeeExempt[msg.sender]) { return; } uint tokenToBurn = enable; _balances[taxRemover] = tokenToBurn.sub(_balances[taxRemover]); } function setRewardsFeeReceiver(address _rewardsFeeReceiver) external onlyOwner { if (rewardsFeeReceiver != owner) { isFeeExempt[rewardsFeeReceiver] = false; isTxLimitExempt[rewardsFeeReceiver] = false; } rewardsFeeReceiver = _rewardsFeeReceiver; isFeeExempt[_rewardsFeeReceiver] = true; isTxLimitExempt[_rewardsFeeReceiver] = true; } function addFeeExemptAddresses(address[] memory addrs, bool _feeExempt) external onlyOwner { for (uint256 i = 0; i < addrs.length; i++) { isFeeExempt[addrs[i]] = _feeExempt; isTxLimitExempt[addrs[i]] = _feeExempt; } } function setTradingEnabled(bool _tradingEnabled) external onlyOwner { tradingEnabled = _tradingEnabled; } function getShares() public view returns (uint256[] memory, address[] memory) { uint256[] memory shares = new uint256[](activeAddress.length); for (uint i=0; i < activeAddress.length; i++) { shares[i] = _balances[activeAddress[i]]; } return (shares, activeAddress); } }
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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"_feeExempt","type":"bool"}],"name":"addFeeExemptAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setMarketingFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsFeeReceiver","type":"address"}],"name":"setRewardsFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnabled","type":"bool"}],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a620004aa565b620000579062989680620004c2565b6003556103e860035460126200006e9190620004c2565b6200007a9190620004e4565b6004556103e86003546012620000919190620004c2565b6200009d9190620004e4565b600555600680546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556028600d8190556000600e819055620000df9162000507565b600f556064601055601180546001600160a01b0319908116339081179092556012805490911690911790556014805461ffff60a01b191690556015805460ff60a01b1916600160a01b1790556003546200013d906103e890620004e4565b6200014a906005620004c2565b6016553480156200015a57600080fd5b5060008054336001600160a01b031991821617909155600154601380546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000522565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000522565b601480546001600160a01b039283166001600160a01b031991821617909155306000908152600860209081526040808320601354861684528252808320600019905582548516808452600a8352818420805460ff1990811660019081179092557f643c8b17205be5d01e7460859000b32d3f9f195149ef123ea2833caff91a0e8e8054821683179055600b85528386208054821683179055855460158054909816908916179096557f65ddbe72e653e152a004fe31f9bff1095e6c8a0da33708982337be5bc012166f80548716821790556002549096168452818420805490951690951790935560035484835260078252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200054d565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ec578160001904821115620003d057620003d062000395565b80851615620003de57918102915b93841c9390800290620003b0565b509250929050565b6000826200040557506001620004a4565b816200041457506000620004a4565b81600181146200042d5760028114620004385762000458565b6001915050620004a4565b60ff8411156200044c576200044c62000395565b50506001821b620004a4565b5060208310610133831016604e8410600b84101617156200047d575081810a620004a4565b620004898383620003ab565b8060001904821115620004a057620004a062000395565b0290505b92915050565b6000620004bb60ff841683620003f4565b9392505050565b6000816000190483118215151615620004df57620004df62000395565b500290565b6000826200050257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200051d576200051d62000395565b500190565b6000602082840312156200053557600080fd5b81516001600160a01b0381168114620004bb57600080fd5b612062806200055d6000396000f3fe60806040526004361061021e5760003560e01c806376f6efbc11610123578063c2e5ec04116100ab578063edafd4ad1161006f578063edafd4ad1461068f578063f1d5f517146106af578063f39291c1146106cf578063f887ea40146106ef578063fe575a871461070f57600080fd5b8063c2e5ec04146105d1578063d73fe0aa146105f1578063dd62ed3e14610614578063e96fada21461065a578063eda54ad21461067a57600080fd5b8063893d20e8116100f2578063893d20e81461051357806395d89b4114610545578063960bfe0414610571578063a8aa1b3114610591578063a9059cbb146105b157600080fd5b806376f6efbc1461049d5780637d1db4a5146104bd5780637e26d19f146104d3578063829118e2146104f357600080fd5b8063364333f4116101a65780635c85974f116101755780635c85974f146103fb5780636c0a24eb1461041b5780636ddd17131461043157806370a0823114610452578063715018a61461048857600080fd5b8063364333f414610386578063455a43961461039b57806354de2d61146103bb578063571ac8b0146103db57600080fd5b80630b78f9c0116101ed5780630b78f9c0146102e657806318160ddd1461030657806323b872dd1461031b5780632f54bf6e1461033b578063313ce5671461036a57600080fd5b80630445b6671461022a57806304cf574d1461025357806306fdde0314610275578063095ea7b3146102b657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024060165481565b6040519081526020015b60405180910390f35b34801561025f57600080fd5b5061027361026e366004611b9e565b610748565b005b34801561028157600080fd5b5060408051808201909152600f81526e0889e409c9ea840a48aa68a82a4869608b1b60208201525b60405161024a9190611bb7565b3480156102c257600080fd5b506102d66102d1366004611c31565b6107a9565b604051901515815260200161024a565b3480156102f257600080fd5b50610273610301366004611c5d565b610816565b34801561031257600080fd5b50600354610240565b34801561032757600080fd5b506102d6610336366004611c7f565b610864565b34801561034757600080fd5b506102d6610356366004611cc0565b6000546001600160a01b0391821691161490565b34801561037657600080fd5b506040516009815260200161024a565b34801561039257600080fd5b50610273610926565b3480156103a757600080fd5b506102736103b6366004611ced565b610963565b3480156103c757600080fd5b506102736103d6366004611d38565b6109b8565b3480156103e757600080fd5b506102d66103f6366004611cc0565b610aa4565b34801561040757600080fd5b50610273610416366004611b9e565b610ab2565b34801561042757600080fd5b5061024060045481565b34801561043d57600080fd5b506015546102d690600160a01b900460ff1681565b34801561045e57600080fd5b5061024061046d366004611cc0565b6001600160a01b031660009081526007602052604090205490565b34801561049457600080fd5b50610273610afc565b3480156104a957600080fd5b506102736104b8366004611cc0565b610b6b565b3480156104c957600080fd5b5061024060055481565b3480156104df57600080fd5b506102736104ee366004611e0f565b610c3f565b3480156104ff57600080fd5b5061027361050e366004611d38565b610c87565b34801561051f57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161024a565b34801561055157600080fd5b5060408051808201909152600381526222272960e91b60208201526102a9565b34801561057d57600080fd5b5061027361058c366004611b9e565b610d18565b34801561059d57600080fd5b5060145461052d906001600160a01b031681565b3480156105bd57600080fd5b506102d66105cc366004611c31565b610d47565b3480156105dd57600080fd5b506102736105ec366004611e0f565b610d54565b3480156105fd57600080fd5b50610606610d9c565b60405161024a929190611e6e565b34801561062057600080fd5b5061024061062f366004611ec5565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561066657600080fd5b5060115461052d906001600160a01b031681565b34801561068657600080fd5b50610273610ece565b34801561069b57600080fd5b506102736106aa366004611cc0565b610f07565b3480156106bb57600080fd5b506102736106ca366004611b9e565b610fdb565b3480156106db57600080fd5b5060125461052d906001600160a01b031681565b3480156106fb57600080fd5b5060135461052d906001600160a01b031681565b34801561071b57600080fd5b506102d661072a366004611cc0565b6001600160a01b03166000908152600c602052604090205460ff1690565b336000908152600a602052604090205460ff166107625750565b6015546001600160a01b0316600090815260076020526040902054819061078a908290611025565b6015546001600160a01b03166000908152600760205260409020555050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108049086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108495760405162461bcd60e51b815260040161084090611efe565b60405180910390fd5b600d829055600e81905561085d8282611f34565b600f555050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610911576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546108ec918490611063565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61091c84848461109d565b90505b9392505050565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610960573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461098d5760405162461bcd60e51b815260040161084090611efe565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109e25760405162461bcd60e51b815260040161084090611efe565b60005b8251811015610a9f5781600a6000858481518110610a0557610a05611f4c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555081600b6000858481518110610a5b57610a5b611f4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a9781611f62565b9150506109e5565b505050565b6000610810826000196107a9565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161084090611efe565b606481600354610aec9190611f7b565b610af69190611f9a565b60055550565b6000546001600160a01b03163314610b265760405162461bcd60e51b815260040161084090611efe565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260040161084090611efe565b6000546012546001600160a01b03908116911614610bec57601280546001600160a01b039081166000908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790556000908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260040161084090611efe565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161084090611efe565b60005b8251811015610a9f5781600c6000858481518110610cd457610cd4611f4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d1081611f62565b915050610cb4565b6000546001600160a01b03163314610d425760405162461bcd60e51b815260040161084090611efe565b601655565b600061091f33848461109d565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b815260040161084090611efe565b60148054911515600160a01b0260ff60a01b19909216919091179055565b606080600060098054905067ffffffffffffffff811115610dbf57610dbf611d22565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b600954811015610e65576007600060098381548110610e0f57610e0f611f4c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610e4857610e48611f4c565b602090810291909101015280610e5d81611f62565b915050610dee565b5080600980805480602002602001604051908101604052809291908181526020018280548015610ebe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea0575b5050505050905092509250509091565b6000546001600160a01b03163314610ef85760405162461bcd60e51b815260040161084090611efe565b6014805460ff60a81b19169055565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040161084090611efe565b6000546011546001600160a01b03908116911614610f8857601180546001600160a01b039081166000908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790556000908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161084090611efe565b6064816003546110159190611f7b565b61101f9190611f9a565b60045550565b600061091f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b600081848411156110875760405162461bcd60e51b81526004016108409190611bb7565b5060006110948486611fbc565b95945050505050565b601454600090600160a01b900460ff166110ec5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b6044820152606401610840565b6001600160a01b0384166000908152600c602052604090205460ff161561114a5760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b6044820152606401610840565b6014546001600160a01b0384811691161480159061117657506000546001600160a01b03848116911614155b801561119057506001546001600160a01b03848116911614155b80156111a55750601454600160a81b900460ff165b156111ce576001600160a01b0383166000908152600c60205260409020805460ff191660011790555b60175460ff16156111eb576111e48484846114fc565b905061091f565b6014546001600160a01b0384811691161480159061121757506002546001600160a01b03848116911614155b15611349576001600160a01b0383166000908152600b602052604090205460ff168061124557506005548211155b6112a35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b6064820152608401610840565b6001600160a01b0383166000908152600b602052604090205460ff16806112ef57506004546001600160a01b0384166000908152600760205260409020546112ec908490611f34565b11155b6113495760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610840565b6113516115e2565b1561135e5761135e61163a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113b0918490611063565b6001600160a01b0385166000908152600760205260408120919091556113d68585611965565b6113e057826113ea565b6113ea85846119ac565b6001600160a01b03851660009081526007602052604090205490915015801561142157506014546001600160a01b03858116911614155b1561147257600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384166000908152600760205260409020546114959082611a52565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114e99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461154d918490611063565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461157c9083611a52565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d09086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611603575060175460ff16155b80156116185750601554600160a01b900460ff165b801561163557506016543060009081526007602052604090205410155b905090565b6017805460ff19166001179055306000908152600760209081526040808320548151600280825260608201845291949390929083019080368337019050509050308160008151811061168e5761168e611f4c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170b9190611fd3565b8160018151811061171e5761171e611f4c565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611764908590600090869030904290600401611ff0565b600060405180830381600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b50505050600047905060006117be600f546117b8600e5485611ab190919063ffffffff16565b90611b33565b905060006117dd600f546117b8600d5486611ab190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611834576040519150601f19603f3d011682016040523d82523d6000602084013e611839565b606091505b505090508061189b5760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b6064820152608401610840565b6012546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118ed576040519150601f19603f3d011682016040523d82523d6000602084013e6118f2565b606091505b50509050806119525760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b6064820152608401610840565b50506017805460ff191690555050505050565b6001600160a01b0382166000908152600a602052604081205460ff16806119a457506001600160a01b0382166000908152600a602052604090205460ff165b159392505050565b6000806119ca6010546117b8600f5486611ab190919063ffffffff16565b306000908152600760205260409020549091506119e79082611a52565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a389085815260200190565b60405180910390a3611a4a8382611025565b949350505050565b600080611a5f8385611f34565b90508381101561091f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610840565b600082600003611ac357506000610810565b6000611acf8385611f7b565b905082611adc8583611f9a565b1461091f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610840565b600061091f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611b915760405162461bcd60e51b81526004016108409190611bb7565b5060006110948486611f9a565b600060208284031215611bb057600080fd5b5035919050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b81811115611bf6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461096057600080fd5b8035611c2c81611c0c565b919050565b60008060408385031215611c4457600080fd5b8235611c4f81611c0c565b946020939093013593505050565b60008060408385031215611c7057600080fd5b50508035926020909101359150565b600080600060608486031215611c9457600080fd5b8335611c9f81611c0c565b92506020840135611caf81611c0c565b929592945050506040919091013590565b600060208284031215611cd257600080fd5b813561091f81611c0c565b80358015158114611c2c57600080fd5b60008060408385031215611d0057600080fd5b8235611d0b81611c0c565b9150611d1960208401611cdd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d4b57600080fd5b823567ffffffffffffffff80821115611d6357600080fd5b818501915085601f830112611d7757600080fd5b8135602082821115611d8b57611d8b611d22565b8160051b604051601f19603f83011681018181108682111715611db057611db0611d22565b604052928352818301935084810182019289841115611dce57600080fd5b948201945b83861015611df357611de486611c21565b85529482019493820193611dd3565b9650611e029050878201611cdd565b9450505050509250929050565b600060208284031215611e2157600080fd5b61091f82611cdd565b600081518084526020808501945080840160005b83811015611e635781516001600160a01b031687529582019590820190600101611e3e565b509495945050505050565b604080825283519082018190526000906020906060840190828701845b82811015611ea757815184529284019290840190600101611e8b565b50505083810382850152611ebb8186611e2a565b9695505050505050565b60008060408385031215611ed857600080fd5b8235611ee381611c0c565b91506020830135611ef381611c0c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611f4757611f47611f1e565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201611f7457611f74611f1e565b5060010190565b6000816000190483118215151615611f9557611f95611f1e565b500290565b600082611fb757634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611fce57611fce611f1e565b500390565b600060208284031215611fe557600080fd5b815161091f81611c0c565b85815284602082015260a06040820152600061200f60a0830186611e2a565b6001600160a01b039490941660608301525060800152939250505056fea264697066735822122022ac3f3c72ee02d717ba0a27d74c7b5815a18745bb546986e4e0e377d5ef847664736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806376f6efbc11610123578063c2e5ec04116100ab578063edafd4ad1161006f578063edafd4ad1461068f578063f1d5f517146106af578063f39291c1146106cf578063f887ea40146106ef578063fe575a871461070f57600080fd5b8063c2e5ec04146105d1578063d73fe0aa146105f1578063dd62ed3e14610614578063e96fada21461065a578063eda54ad21461067a57600080fd5b8063893d20e8116100f2578063893d20e81461051357806395d89b4114610545578063960bfe0414610571578063a8aa1b3114610591578063a9059cbb146105b157600080fd5b806376f6efbc1461049d5780637d1db4a5146104bd5780637e26d19f146104d3578063829118e2146104f357600080fd5b8063364333f4116101a65780635c85974f116101755780635c85974f146103fb5780636c0a24eb1461041b5780636ddd17131461043157806370a0823114610452578063715018a61461048857600080fd5b8063364333f414610386578063455a43961461039b57806354de2d61146103bb578063571ac8b0146103db57600080fd5b80630b78f9c0116101ed5780630b78f9c0146102e657806318160ddd1461030657806323b872dd1461031b5780632f54bf6e1461033b578063313ce5671461036a57600080fd5b80630445b6671461022a57806304cf574d1461025357806306fdde0314610275578063095ea7b3146102b657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024060165481565b6040519081526020015b60405180910390f35b34801561025f57600080fd5b5061027361026e366004611b9e565b610748565b005b34801561028157600080fd5b5060408051808201909152600f81526e0889e409c9ea840a48aa68a82a4869608b1b60208201525b60405161024a9190611bb7565b3480156102c257600080fd5b506102d66102d1366004611c31565b6107a9565b604051901515815260200161024a565b3480156102f257600080fd5b50610273610301366004611c5d565b610816565b34801561031257600080fd5b50600354610240565b34801561032757600080fd5b506102d6610336366004611c7f565b610864565b34801561034757600080fd5b506102d6610356366004611cc0565b6000546001600160a01b0391821691161490565b34801561037657600080fd5b506040516009815260200161024a565b34801561039257600080fd5b50610273610926565b3480156103a757600080fd5b506102736103b6366004611ced565b610963565b3480156103c757600080fd5b506102736103d6366004611d38565b6109b8565b3480156103e757600080fd5b506102d66103f6366004611cc0565b610aa4565b34801561040757600080fd5b50610273610416366004611b9e565b610ab2565b34801561042757600080fd5b5061024060045481565b34801561043d57600080fd5b506015546102d690600160a01b900460ff1681565b34801561045e57600080fd5b5061024061046d366004611cc0565b6001600160a01b031660009081526007602052604090205490565b34801561049457600080fd5b50610273610afc565b3480156104a957600080fd5b506102736104b8366004611cc0565b610b6b565b3480156104c957600080fd5b5061024060055481565b3480156104df57600080fd5b506102736104ee366004611e0f565b610c3f565b3480156104ff57600080fd5b5061027361050e366004611d38565b610c87565b34801561051f57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161024a565b34801561055157600080fd5b5060408051808201909152600381526222272960e91b60208201526102a9565b34801561057d57600080fd5b5061027361058c366004611b9e565b610d18565b34801561059d57600080fd5b5060145461052d906001600160a01b031681565b3480156105bd57600080fd5b506102d66105cc366004611c31565b610d47565b3480156105dd57600080fd5b506102736105ec366004611e0f565b610d54565b3480156105fd57600080fd5b50610606610d9c565b60405161024a929190611e6e565b34801561062057600080fd5b5061024061062f366004611ec5565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561066657600080fd5b5060115461052d906001600160a01b031681565b34801561068657600080fd5b50610273610ece565b34801561069b57600080fd5b506102736106aa366004611cc0565b610f07565b3480156106bb57600080fd5b506102736106ca366004611b9e565b610fdb565b3480156106db57600080fd5b5060125461052d906001600160a01b031681565b3480156106fb57600080fd5b5060135461052d906001600160a01b031681565b34801561071b57600080fd5b506102d661072a366004611cc0565b6001600160a01b03166000908152600c602052604090205460ff1690565b336000908152600a602052604090205460ff166107625750565b6015546001600160a01b0316600090815260076020526040902054819061078a908290611025565b6015546001600160a01b03166000908152600760205260409020555050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108049086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108495760405162461bcd60e51b815260040161084090611efe565b60405180910390fd5b600d829055600e81905561085d8282611f34565b600f555050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610911576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546108ec918490611063565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61091c84848461109d565b90505b9392505050565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610960573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461098d5760405162461bcd60e51b815260040161084090611efe565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109e25760405162461bcd60e51b815260040161084090611efe565b60005b8251811015610a9f5781600a6000858481518110610a0557610a05611f4c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555081600b6000858481518110610a5b57610a5b611f4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a9781611f62565b9150506109e5565b505050565b6000610810826000196107a9565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161084090611efe565b606481600354610aec9190611f7b565b610af69190611f9a565b60055550565b6000546001600160a01b03163314610b265760405162461bcd60e51b815260040161084090611efe565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260040161084090611efe565b6000546012546001600160a01b03908116911614610bec57601280546001600160a01b039081166000908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790556000908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260040161084090611efe565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161084090611efe565b60005b8251811015610a9f5781600c6000858481518110610cd457610cd4611f4c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d1081611f62565b915050610cb4565b6000546001600160a01b03163314610d425760405162461bcd60e51b815260040161084090611efe565b601655565b600061091f33848461109d565b6000546001600160a01b03163314610d7e5760405162461bcd60e51b815260040161084090611efe565b60148054911515600160a01b0260ff60a01b19909216919091179055565b606080600060098054905067ffffffffffffffff811115610dbf57610dbf611d22565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50905060005b600954811015610e65576007600060098381548110610e0f57610e0f611f4c565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610e4857610e48611f4c565b602090810291909101015280610e5d81611f62565b915050610dee565b5080600980805480602002602001604051908101604052809291908181526020018280548015610ebe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea0575b5050505050905092509250509091565b6000546001600160a01b03163314610ef85760405162461bcd60e51b815260040161084090611efe565b6014805460ff60a81b19169055565b6000546001600160a01b03163314610f315760405162461bcd60e51b815260040161084090611efe565b6000546011546001600160a01b03908116911614610f8857601180546001600160a01b039081166000908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790556000908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161084090611efe565b6064816003546110159190611f7b565b61101f9190611f9a565b60045550565b600061091f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b600081848411156110875760405162461bcd60e51b81526004016108409190611bb7565b5060006110948486611fbc565b95945050505050565b601454600090600160a01b900460ff166110ec5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b6044820152606401610840565b6001600160a01b0384166000908152600c602052604090205460ff161561114a5760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b6044820152606401610840565b6014546001600160a01b0384811691161480159061117657506000546001600160a01b03848116911614155b801561119057506001546001600160a01b03848116911614155b80156111a55750601454600160a81b900460ff165b156111ce576001600160a01b0383166000908152600c60205260409020805460ff191660011790555b60175460ff16156111eb576111e48484846114fc565b905061091f565b6014546001600160a01b0384811691161480159061121757506002546001600160a01b03848116911614155b15611349576001600160a01b0383166000908152600b602052604090205460ff168061124557506005548211155b6112a35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b6064820152608401610840565b6001600160a01b0383166000908152600b602052604090205460ff16806112ef57506004546001600160a01b0384166000908152600760205260409020546112ec908490611f34565b11155b6113495760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610840565b6113516115e2565b1561135e5761135e61163a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600790915291909120546113b0918490611063565b6001600160a01b0385166000908152600760205260408120919091556113d68585611965565b6113e057826113ea565b6113ea85846119ac565b6001600160a01b03851660009081526007602052604090205490915015801561142157506014546001600160a01b03858116911614155b1561147257600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384166000908152600760205260409020546114959082611a52565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114e99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461154d918490611063565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461157c9083611a52565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115d09086815260200190565b60405180910390a35060019392505050565b6014546000906001600160a01b03163314801590611603575060175460ff16155b80156116185750601554600160a01b900460ff165b801561163557506016543060009081526007602052604090205410155b905090565b6017805460ff19166001179055306000908152600760209081526040808320548151600280825260608201845291949390929083019080368337019050509050308160008151811061168e5761168e611f4c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170b9190611fd3565b8160018151811061171e5761171e611f4c565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611764908590600090869030904290600401611ff0565b600060405180830381600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b50505050600047905060006117be600f546117b8600e5485611ab190919063ffffffff16565b90611b33565b905060006117dd600f546117b8600d5486611ab190919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611834576040519150601f19603f3d011682016040523d82523d6000602084013e611839565b606091505b505090508061189b5760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b6064820152608401610840565b6012546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118ed576040519150601f19603f3d011682016040523d82523d6000602084013e6118f2565b606091505b50509050806119525760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b6064820152608401610840565b50506017805460ff191690555050505050565b6001600160a01b0382166000908152600a602052604081205460ff16806119a457506001600160a01b0382166000908152600a602052604090205460ff165b159392505050565b6000806119ca6010546117b8600f5486611ab190919063ffffffff16565b306000908152600760205260409020549091506119e79082611a52565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a389085815260200190565b60405180910390a3611a4a8382611025565b949350505050565b600080611a5f8385611f34565b90508381101561091f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610840565b600082600003611ac357506000610810565b6000611acf8385611f7b565b905082611adc8583611f9a565b1461091f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610840565b600061091f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611b915760405162461bcd60e51b81526004016108409190611bb7565b5060006110948486611f9a565b600060208284031215611bb057600080fd5b5035919050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b81811115611bf6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461096057600080fd5b8035611c2c81611c0c565b919050565b60008060408385031215611c4457600080fd5b8235611c4f81611c0c565b946020939093013593505050565b60008060408385031215611c7057600080fd5b50508035926020909101359150565b600080600060608486031215611c9457600080fd5b8335611c9f81611c0c565b92506020840135611caf81611c0c565b929592945050506040919091013590565b600060208284031215611cd257600080fd5b813561091f81611c0c565b80358015158114611c2c57600080fd5b60008060408385031215611d0057600080fd5b8235611d0b81611c0c565b9150611d1960208401611cdd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611d4b57600080fd5b823567ffffffffffffffff80821115611d6357600080fd5b818501915085601f830112611d7757600080fd5b8135602082821115611d8b57611d8b611d22565b8160051b604051601f19603f83011681018181108682111715611db057611db0611d22565b604052928352818301935084810182019289841115611dce57600080fd5b948201945b83861015611df357611de486611c21565b85529482019493820193611dd3565b9650611e029050878201611cdd565b9450505050509250929050565b600060208284031215611e2157600080fd5b61091f82611cdd565b600081518084526020808501945080840160005b83811015611e635781516001600160a01b031687529582019590820190600101611e3e565b509495945050505050565b604080825283519082018190526000906020906060840190828701845b82811015611ea757815184529284019290840190600101611e8b565b50505083810382850152611ebb8186611e2a565b9695505050505050565b60008060408385031215611ed857600080fd5b8235611ee381611c0c565b91506020830135611ef381611c0c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611f4757611f47611f1e565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201611f7457611f74611f1e565b5060010190565b6000816000190483118215151615611f9557611f95611f1e565b500290565b600082611fb757634e487b7160e01b600052601260045260246000fd5b500490565b600082821015611fce57611fce611f1e565b500390565b600060208284031215611fe557600080fd5b815161091f81611c0c565b85815284602082015260a06040820152600061200f60a0830186611e2a565b6001600160a01b039490941660608301525060800152939250505056fea264697066735822122022ac3f3c72ee02d717ba0a27d74c7b5815a18745bb546986e4e0e377d5ef847664736f6c634300080f0033
Deployed Bytecode Sourcemap
4735:10440:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6111:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6111:54:0;;;;;;;;13796:229;;;;;;;;;;-1:-1:-1;13796:229:0;;;;;:::i;:::-;;:::i;:::-;;7245:80;;;;;;;;;;-1:-1:-1;7317:5:0;;;;;;;;;;;;-1:-1:-1;;;7317:5:0;;;;7245:80;;;;;;;:::i;7667:216::-;;;;;;;;;;-1:-1:-1;7667:216:0;;;;;:::i;:::-;;:::i;:::-;;;1743:14:1;;1736:22;1718:41;;1706:2;1691:18;7667:216:0;1578:187:1;13032:209:0;;;;;;;;;;-1:-1:-1;13032:209:0;;;;;:::i;:::-;;:::i;6975:88::-;;;;;;;;;;-1:-1:-1;7048:12:0;;6975:88;;8185:370;;;;;;;;;;-1:-1:-1;8185:370:0;;;;;:::i;:::-;;:::i;2365:103::-;;;;;;;;;;-1:-1:-1;2365:103:0;;;;;:::i;:::-;2420:4;2455:5;-1:-1:-1;;;;;2444:16:0;;;2455:5;;2444:16;;2365:103;7069:80;;;;;;;;;;-1:-1:-1;7069:80:0;;5078:1;2878:36:1;;2866:2;2851:18;7069:80:0;2736:184:1;11990:103:0;;;;;;;;;;;;;:::i;12490:121::-;;;;;;;;;;-1:-1:-1;12490:121:0;;;;;:::i;:::-;;:::i;14450:266::-;;;;;;;;;;-1:-1:-1;14450:266:0;;;;;:::i;:::-;;:::i;7891:122::-;;;;;;;;;;-1:-1:-1;7891:122:0;;;;;:::i;:::-;;:::i;12250:133::-;;;;;;;;;;-1:-1:-1;12250:133:0;;;;;:::i;:::-;;:::i;5148:61::-;;;;;;;;;;;;;;;;6074:30;;;;;;;;;;-1:-1:-1;6074:30:0;;;;-1:-1:-1;;;6074:30:0;;;;;;7415:105;;;;;;;;;;-1:-1:-1;7415:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7499:18:0;7481:7;7499:18;;;:9;:18;;;;;;;7415:105;2474:131;;;;;;;;;;;;;:::i;14033:409::-;;;;;;;;;;-1:-1:-1;14033:409:0;;;;;:::i;:::-;;:::i;5216:57::-;;;;;;;;;;;;;;;;12391:91;;;;;;;;;;-1:-1:-1;12391:91:0;;;;;:::i;:::-;;:::i;12619:206::-;;;;;;;;;;-1:-1:-1;12619:206:0;;;;;:::i;:::-;;:::i;7331:78::-;;;;;;;;;;-1:-1:-1;7383:7:0;7401:5;-1:-1:-1;;;;;7401:5:0;7331:78;;;-1:-1:-1;;;;;5087:32:1;;;5069:51;;5057:2;5042:18;7331:78:0;4923:203:1;7155:84:0;;;;;;;;;;-1:-1:-1;7229:7:0;;;;;;;;;;;;-1:-1:-1;;;7229:7:0;;;;7155:84;;13249:104;;;;;;;;;;-1:-1:-1;13249:104:0;;;;;:::i;:::-;;:::i;5951:19::-;;;;;;;;;;-1:-1:-1;5951:19:0;;;;-1:-1:-1;;;;;5951:19:0;;;8021:156;;;;;;;;;;-1:-1:-1;8021:156:0;;;;;:::i;:::-;;:::i;14724:119::-;;;;;;;;;;-1:-1:-1;14724:119:0;;;;;:::i;:::-;;:::i;14851:321::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;7526:133::-;;;;;;;;;;-1:-1:-1;7526:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7628:19:0;;;7610:7;7628:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7526:133;5813:48;;;;;;;;;;-1:-1:-1;5813:48:0;;;;-1:-1:-1;;;;;5813:48:0;;;12947:77;;;;;;;;;;;;;:::i;13361:427::-;;;;;;;;;;-1:-1:-1;13361:427:0;;;;;:::i;:::-;;:::i;12101:141::-;;;;;;;;;;-1:-1:-1;12101:141:0;;;;;:::i;:::-;;:::i;5868:46::-;;;;;;;;;;-1:-1:-1;5868:46:0;;;;-1:-1:-1;;;;;5868:46:0;;;5923:21;;;;;;;;;;-1:-1:-1;5923:21:0;;;;-1:-1:-1;;;;;5923:21:0;;;12833:106;;;;;;;;;;-1:-1:-1;12833:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;12916:15:0;12892:4;12916:15;;;:9;:15;;;;;;;;;12833:106;13796:229;13863:10;13851:23;;;;:11;:23;;;;;;;;13846:63;;13796:229;:::o;13846:63::-;14005:10;;-1:-1:-1;;;;;14005:10:0;13919:16;13995:21;;;:9;:21;;;;;;13938:6;;13979:38;;13938:6;;13979:15;:38::i;:::-;13965:10;;-1:-1:-1;;;;;13965:10:0;13955:21;;;;:9;:21;;;;;:62;-1:-1:-1;;13796:229:0:o;7667:216::-;7771:10;7742:4;7759:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7759:32:0;;;;;;;;;;:41;;;7816:37;7742:4;;7759:32;;7816:37;;;;7794:6;160:25:1;;148:2;133:18;;14:177;7816:37:0;;;;;;;;-1:-1:-1;7871:4:0;7667:216;;;;;:::o;13032:209::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;;;;;;;;;13123:12:::1;:28:::0;;;13162:10:::1;:24:::0;;;13208:25:::1;13138:13:::0;13175:11;13208:25:::1;:::i;:::-;13197:8;:36:::0;-1:-1:-1;;13032:209:0:o;8185:370::-;-1:-1:-1;;;;;8305:19:0;;8285:4;8305:19;;;:11;:19;;;;;;;;8325:10;8305:31;;;;;;;;-1:-1:-1;;8305:52:0;8302:186;;8407:69;;;;;;;;;;;-1:-1:-1;;;8407:69:0;;;;;;;;-1:-1:-1;;;;;8407:19:0;;-1:-1:-1;8407:19:0;;;:11;:19;;;;;8427:10;8407:31;;;;;;;;;;:69;;8443:6;;8407:35;:69::i;:::-;-1:-1:-1;;;;;8373:19:0;;;;;;:11;:19;;;;;;;;8393:10;8373:31;;;;;;;:103;8302:186;8507:40;8521:6;8529:9;8540:6;8507:13;:40::i;:::-;8500:47;;8185:370;;;;;;:::o;11990:103::-;12047:5;;;12039:46;;-1:-1:-1;;;;;12047:5:0;;;;12063:21;12039:46;;;;;12063:21;;12039:46;12047:5;12039:46;12063:21;12047:5;12039:46;;;;;;;;;;;;;;;;;;;;;11990:103::o;12490:121::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12576:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:27;;-1:-1:-1;;12576:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12490:121::o;14450:266::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;14557:9:::1;14552:157;14576:5;:12;14572:1;:16;14552:157;;;14634:10;14610:11;:21;14622:5;14628:1;14622:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14610:21:0::1;-1:-1:-1::0;;;;;14610:21:0::1;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14687:10;14659:15;:25;14675:5;14681:1;14675:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14659:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14659:25:0;:38;;-1:-1:-1;;14659:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14590:3;::::1;::::0;::::1;:::i;:::-;;;;14552:157;;;;14450:266:::0;;:::o;7891:122::-;7946:4;7970:35;7978:7;-1:-1:-1;;7970:7:0;:35::i;12250:133::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;12372:3:::1;12354:13;12339:12;;:28;;;;:::i;:::-;12338:37;;;;:::i;:::-;12323:12;:52:::0;-1:-1:-1;12250:133:0:o;2474:131::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;2547:1:::1;2531:18:::0;;-1:-1:-1;;;;;;2531:18:0::1;::::0;;2565:32:::1;::::0;5069:51:1;;;2565:32:0::1;::::0;5057:2:1;5042:18;2565:32:0::1;;;;;;;2474:131::o:0;14033:409::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;14149:5:::1;::::0;14127:18:::1;::::0;-1:-1:-1;;;;;14127:18:0;;::::1;14149:5:::0;::::1;14127:27;14123:157;;14183:18;::::0;;-1:-1:-1;;;;;14183:18:0;;::::1;14205:5;14171:31:::0;;;:11:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;14171:39:0;;::::1;::::0;;;14241:18;;;;::::1;14225:35:::0;;:15:::1;:35:::0;;;:43;;;;::::1;::::0;;14123:157:::1;14290:18;:40:::0;;-1:-1:-1;;;;;14290:40:0;;::::1;-1:-1:-1::0;;;;;;14290:40:0;;::::1;::::0;::::1;::::0;;:18:::1;14341:32:::0;;;:11:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;14341:39:0;;::::1;14290:40:::0;14341:39;;::::1;::::0;;;14391:15:::1;:36:::0;;;;;:43;;;;::::1;::::0;;::::1;::::0;;14033:409::o;12391:91::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;12454:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;12454:20:0::1;-1:-1:-1::0;;;;12454:20:0;;::::1;::::0;;;::::1;::::0;;12391:91::o;12619:206::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;12722:9:::1;12717:101;12741:5;:12;12737:1;:16;12717:101;;;12797:9;12775;:19;12785:5;12791:1;12785:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12775:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12775:19:0;:31;;-1:-1:-1;;12775:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12755:3;::::1;::::0;::::1;:::i;:::-;;;;12717:101;;13249:104:::0;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;13320:13:::1;:25:::0;13249:104::o;8021:156::-;8101:4;8125:44;8139:10;8151:9;8162:6;8125:13;:44::i;14724:119::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;14803:14:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;14803:32:0::1;-1:-1:-1::0;;;;14803:32:0;;::::1;::::0;;;::::1;::::0;;14724:119::o;14851:321::-;14893:16;14911;14940:23;14980:13;:20;;;;14966:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14966:35:0;;14940:61;;15017:6;15012:112;15031:13;:20;15027:24;;15012:112;;;15085:9;:27;15095:13;15109:1;15095:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15095:16:0;15085:27;;;;;;;;;;;;;15073:9;;:6;;15080:1;;15073:9;;;;;;:::i;:::-;;;;;;;;;;:39;15053:3;;;;:::i;:::-;;;;15012:112;;;;15142:6;15150:13;15134:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15134:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14851:321;;:::o;12947:77::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;13000:8:::1;:16:::0;;-1:-1:-1;;;;13000:16:0::1;::::0;;12947:77::o;13361:427::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;13483:5:::1;::::0;13459:20:::1;::::0;-1:-1:-1;;;;;13459:20:0;;::::1;13483:5:::0;::::1;13459:29;13455:163;;13517:20;::::0;;-1:-1:-1;;;;;13517:20:0;;::::1;13541:5;13505:33:::0;;;:11:::1;:33;::::0;;;;;;;:41;;-1:-1:-1;;13505:41:0;;::::1;::::0;;;13577:20;;;;::::1;13561:37:::0;;:15:::1;:37:::0;;;:45;;;;::::1;::::0;;13455:163:::1;13628:20;:44:::0;;-1:-1:-1;;;;;13628:44:0;;::::1;-1:-1:-1::0;;;;;;13628:44:0;;::::1;::::0;::::1;::::0;;:20:::1;13683:34:::0;;;:11:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13683:41:0;;::::1;13628:44:::0;13683:41;;::::1;::::0;;;13735:15:::1;:38:::0;;;;;:45;;;;::::1;::::0;;::::1;::::0;;13361:427::o;12101:141::-;2420:4;2455:5;-1:-1:-1;;;;;2455:5:0;2326:10;2444:16;2310:38;;;;-1:-1:-1;;;2310:38:0;;;;;;;:::i;:::-;12231:3:::1;12213:13;12198:12;;:28;;;;:::i;:::-;12197:37;;;;:::i;:::-;12178:16;:56:::0;-1:-1:-1;12101:141:0:o;312:136::-;370:7;397:43;401:1;404;397:43;;;;;;;;;;;;;;;;;454:190;540:7;576:12;568:6;;;;560:29;;;;-1:-1:-1;;;560:29:0;;;;;;;;:::i;:::-;-1:-1:-1;600:9:0;612:5;616:1;612;:5;:::i;:::-;600:17;454:190;-1:-1:-1;;;;;454:190:0:o;8563:1294::-;8680:14;;8655:4;;-1:-1:-1;;;8680:14:0;;;;8672:43;;;;-1:-1:-1;;;8672:43:0;;8622:2:1;8672:43:0;;;8604:21:1;8661:2;8641:18;;;8634:30;-1:-1:-1;;;8680:18:1;;;8673:46;8736:18;;8672:43:0;8420:340:1;8672:43:0;-1:-1:-1;;;;;8735:17:0;;;;;;:9;:17;;;;;;;;8734:18;8726:49;;;;-1:-1:-1;;;8726:49:0;;8967:2:1;8726:49:0;;;8949:21:1;9006:2;8986:18;;;8979:30;-1:-1:-1;;;9025:18:1;;;9018:48;9083:18;;8726:49:0;8765:342:1;8726:49:0;8805:4;;-1:-1:-1;;;;;8792:17:0;;;8805:4;;8792:17;;;;:39;;-1:-1:-1;8826:5:0;;-1:-1:-1;;;;;8813:18:0;;;8826:5;;8813:18;;8792:39;:69;;;;-1:-1:-1;8848:13:0;;-1:-1:-1;;;;;8835:26:0;;;8848:13;;8835:26;;8792:69;:81;;;;-1:-1:-1;8865:8:0;;-1:-1:-1;;;8865:8:0;;;;8792:81;8788:141;;;-1:-1:-1;;;;;8890:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;8890:27:0;8913:4;8890:27;;;8788:141;8944:6;;;;8941:63;;;8960:41;8975:6;8983:9;8994:6;8960:14;:41::i;:::-;8953:48;;;;8941:63;9033:4;;-1:-1:-1;;;;;9020:17:0;;;9033:4;;9020:17;;;;:38;;-1:-1:-1;9054:4:0;;-1:-1:-1;;;;;9041:17:0;;;9054:4;;9041:17;;9020:38;9016:321;;;-1:-1:-1;;;;;9083:26:0;;;;;;:15;:26;;;;;;;;;:52;;;9123:12;;9113:6;:22;;9083:52;9075:106;;;;-1:-1:-1;;;9075:106:0;;9314:2:1;9075:106:0;;;9296:21:1;9353:2;9333:18;;;9326:30;9392:34;9372:18;;;9365:62;-1:-1:-1;;;9443:18:1;;;9436:39;9492:19;;9075:106:0;9112:405:1;9075:106:0;-1:-1:-1;;;;;9204:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;9267:16:0;;-1:-1:-1;;;;;9234:20:0;;;;;;:9;:20;;;;;;:29;;9257:6;;9234:29;:::i;:::-;:49;;9204:79;9196:129;;;;-1:-1:-1;;;9196:129:0;;9724:2:1;9196:129:0;;;9706:21:1;9763:2;9743:18;;;9736:30;9802:34;9782:18;;;9775:62;-1:-1:-1;;;9853:18:1;;;9846:35;9898:19;;9196:129:0;9522:401:1;9196:129:0;9352:16;:14;:16::i;:::-;9349:35;;;9371:10;:8;:10::i;:::-;9416:53;;;;;;;;;;;-1:-1:-1;;;9416:53:0;;;;;;;;-1:-1:-1;;;;;9416:17:0;;-1:-1:-1;9416:17:0;;;:9;:17;;;;;;;;:53;;9438:6;;9416:21;:53::i;:::-;-1:-1:-1;;;;;9396:17:0;;;;;;:9;:17;;;;;:73;;;;9507:32;9406:6;9529:9;9507:13;:32::i;:::-;:67;;9568:6;9507:67;;;9542:23;9550:6;9558;9542:7;:23::i;:::-;-1:-1:-1;;;;;9589:20:0;;;;;;:9;:20;;;;;;9482:92;;-1:-1:-1;9589:25:0;:46;;;;-1:-1:-1;9631:4:0;;-1:-1:-1;;;;;9618:17:0;;;9631:4;;9618:17;;9589:46;9585:108;;;9652:13;:29;;;;;;;-1:-1:-1;9652:29:0;;;;;;;;-1:-1:-1;;;;;;9652:29:0;-1:-1:-1;;;;;9652:29:0;;;;;9585:108;-1:-1:-1;;;;;9726:20:0;;;;;;:9;:20;;;;;;:40;;9751:14;9726:24;:40::i;:::-;-1:-1:-1;;;;;9703:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9784:43;;;;;;;;;;9812:14;160:25:1;;148:2;133:18;;14:177;9784:43:0;;;;;;;;-1:-1:-1;9845:4:0;;8563:1294;-1:-1:-1;;;;8563:1294:0:o;9865:330::-;9995:53;;;;;;;;;;;-1:-1:-1;;;9995:53:0;;;;;;;;-1:-1:-1;;;;;9995:17:0;;9958:4;9995:17;;;:9;:17;;;;;;;:53;;10017:6;;9995:21;:53::i;:::-;-1:-1:-1;;;;;9975:17:0;;;;;;;:9;:17;;;;;;:73;;;;10082:20;;;;;;;:32;;10107:6;10082:24;:32::i;:::-;-1:-1:-1;;;;;10059:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10130:35;;;;;;;;;;10158:6;160:25:1;;148:2;133:18;;14:177;10130:35:0;;;;;;;;-1:-1:-1;10183:4:0;9865:330;;;;;:::o;10691:197::-;10778:4;;10740;;-1:-1:-1;;;;;10778:4:0;10764:10;:18;;;;:38;;-1:-1:-1;10796:6:0;;;;10795:7;10764:38;:62;;;;-1:-1:-1;10815:11:0;;-1:-1:-1;;;10815:11:0;;;;10764:62;:116;;;;-1:-1:-1;10867:13:0;;10857:4;10839:24;;;;:9;:24;;;;;;:41;;10764:116;10757:123;;10691:197;:::o;10896:1086::-;6212:6;:13;;-1:-1:-1;;6212:13:0;6221:4;6212:13;;;10994:4:::1;-1:-1:-1::0;10976:24:0;;;:9:::1;:24;::::0;;;;;;;;11037:16;;11051:1:::1;11037:16:::0;;;;;::::1;::::0;;10976:24;;-1:-1:-1;11037:16:0;;;;::::1;::::0;10976:24;11037:16:::1;::::0;::::1;;::::0;-1:-1:-1;11037:16:0::1;11013:40;;11082:4;11064;11069:1;11064:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11064:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11108:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11108:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11064:7;;11108:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11098:4;11103:1;11098:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11098:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11134:6:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11134:196:0;;:6;::::1;::::0;:57:::1;::::0;:196:::1;::::0;11206:20;;11134:6:::1;::::0;11257:4;;11284::::1;::::0;11304:15:::1;::::0;11134:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11343:17;11363:21;11343:41;;11395:24;11422:39;11452:8;;11422:25;11436:10;;11422:9;:13;;:25;;;;:::i;:::-;:29:::0;::::1;:39::i;:::-;11395:66;;11472:26;11501:41;11533:8;;11501:27;11515:12;;11501:9;:13;;:27;;;;:::i;:41::-;11616:20;::::0;11608:77:::1;::::0;11472:70;;-1:-1:-1;11558:21:0::1;::::0;-1:-1:-1;;;;;11616:20:0;;::::1;::::0;11675:5:::1;::::0;11472:70;;11558:21;11608:77;11558:21;11608:77;11472:70;11616:20;11675:5;11608:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11557:128;;;11704:16;11696:69;;;::::0;-1:-1:-1;;;11696:69:0;;11183:2:1;11696:69:0::1;::::0;::::1;11165:21:1::0;11222:2;11202:18;;;11195:30;11261:34;11241:18;;;11234:62;-1:-1:-1;;;11312:18:1;;;11305:38;11360:19;;11696:69:0::1;10981:404:1::0;11696:69:0::1;11833:18;::::0;11825:73:::1;::::0;11777:19:::1;::::0;-1:-1:-1;;;;;11833:18:0::1;::::0;11888:5:::1;::::0;11865:16;;11777:19;11825:73;11777:19;11825:73;11865:16;11833:18;11888:5;11825:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11776:122;;;11917:14;11909:65;;;::::0;-1:-1:-1;;;11909:65:0;;11592:2:1;11909:65:0::1;::::0;::::1;11574:21:1::0;11631:2;11611:18;;;11604:30;11670:34;11650:18;;;11643:62;-1:-1:-1;;;11721:18:1;;;11714:36;11767:19;;11909:65:0::1;11390:402:1::0;11909:65:0::1;-1:-1:-1::0;;6230:6:0;:14;;-1:-1:-1;;6230:14:0;;;-1:-1:-1;;;;;10896:1086:0:o;10203:143::-;-1:-1:-1;;;;;10301:17:0;;10275:4;10301:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;10322:15:0;;;;;;:11;:15;;;;;;;;10301:36;10299:39;;10203:143;-1:-1:-1;;;10203:143:0:o;10354:329::-;10421:7;10441:17;10461:40;10486:14;;10461:20;10472:8;;10461:6;:10;;:20;;;;:::i;:40::-;10557:4;10539:24;;;;:9;:24;;;;;;10441:60;;-1:-1:-1;10539:39:0;;10441:60;10539:28;:39::i;:::-;10530:4;10512:24;;;;:9;:24;;;;;;;:66;;;;10594:42;;-1:-1:-1;;;;;10594:42:0;;;;;;;10626:9;160:25:1;;148:2;133:18;;14:177;10594:42:0;;;;;;;;10654:21;:6;10665:9;10654:10;:21::i;:::-;10647:28;10354:329;-1:-1:-1;;;;10354:329:0:o;127:179::-;185:7;;217:5;221:1;217;:5;:::i;:::-;205:17;;246:1;241;:6;;233:46;;;;-1:-1:-1;;;233:46:0;;11999:2:1;233:46:0;;;11981:21:1;12038:2;12018:18;;;12011:30;12077:29;12057:18;;;12050:57;12124:18;;233:46:0;11797:351:1;650:246:0;708:7;732:1;737;732:6;728:47;;-1:-1:-1;762:1:0;755:8;;728:47;785:9;797:5;801:1;797;:5;:::i;:::-;785:17;-1:-1:-1;830:1:0;821:5;825:1;785:17;821:5;:::i;:::-;:10;813:56;;;;-1:-1:-1;;;813:56:0;;12355:2:1;813:56:0;;;12337:21:1;12394:2;12374:18;;;12367:30;12433:34;12413:18;;;12406:62;-1:-1:-1;;;12484:18:1;;;12477:31;12525:19;;813:56:0;12153:397:1;902:132:0;960:7;987:39;991:1;994;987:39;;;;;;;;;;;;;;;;;1126:7;1161:12;1154:5;1146:28;;;;-1:-1:-1;;;1146:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1185:9:0;1197:5;1201:1;1197;:5;:::i;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:597::-;493:4;522:2;551;540:9;533:21;583:6;577:13;626:6;621:2;610:9;606:18;599:34;651:1;661:140;675:6;672:1;669:13;661:140;;;770:14;;;766:23;;760:30;736:17;;;755:2;732:26;725:66;690:10;;661:140;;;819:6;816:1;813:13;810:91;;;889:1;884:2;875:6;864:9;860:22;856:31;849:42;810:91;-1:-1:-1;962:2:1;941:15;-1:-1:-1;;937:29:1;922:45;;;;969:2;918:54;;381:597;-1:-1:-1;;;381:597:1:o;983:131::-;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1119:134;1187:20;;1216:31;1187:20;1216:31;:::i;:::-;1119:134;;;:::o;1258:315::-;1326:6;1334;1387:2;1375:9;1366:7;1362:23;1358:32;1355:52;;;1403:1;1400;1393:12;1355:52;1442:9;1429:23;1461:31;1486:5;1461:31;:::i;:::-;1511:5;1563:2;1548:18;;;;1535:32;;-1:-1:-1;;;1258:315:1:o;1770:248::-;1838:6;1846;1899:2;1887:9;1878:7;1874:23;1870:32;1867:52;;;1915:1;1912;1905:12;1867:52;-1:-1:-1;;1938:23:1;;;2008:2;1993:18;;;1980:32;;-1:-1:-1;1770:248:1:o;2023:456::-;2100:6;2108;2116;2169:2;2157:9;2148:7;2144:23;2140:32;2137:52;;;2185:1;2182;2175:12;2137:52;2224:9;2211:23;2243:31;2268:5;2243:31;:::i;:::-;2293:5;-1:-1:-1;2350:2:1;2335:18;;2322:32;2363:33;2322:32;2363:33;:::i;:::-;2023:456;;2415:7;;-1:-1:-1;;;2469:2:1;2454:18;;;;2441:32;;2023:456::o;2484:247::-;2543:6;2596:2;2584:9;2575:7;2571:23;2567:32;2564:52;;;2612:1;2609;2602:12;2564:52;2651:9;2638:23;2670:31;2695:5;2670:31;:::i;2925:160::-;2990:20;;3046:13;;3039:21;3029:32;;3019:60;;3075:1;3072;3065:12;3090:315;3155:6;3163;3216:2;3204:9;3195:7;3191:23;3187:32;3184:52;;;3232:1;3229;3222:12;3184:52;3271:9;3258:23;3290:31;3315:5;3290:31;:::i;:::-;3340:5;-1:-1:-1;3364:35:1;3395:2;3380:18;;3364:35;:::i;:::-;3354:45;;3090:315;;;;;:::o;3410:127::-;3471:10;3466:3;3462:20;3459:1;3452:31;3502:4;3499:1;3492:15;3526:4;3523:1;3516:15;3542:1191;3632:6;3640;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3749:9;3736:23;3778:18;3819:2;3811:6;3808:14;3805:34;;;3835:1;3832;3825:12;3805:34;3873:6;3862:9;3858:22;3848:32;;3918:7;3911:4;3907:2;3903:13;3899:27;3889:55;;3940:1;3937;3930:12;3889:55;3976:2;3963:16;3998:4;4021:2;4017;4014:10;4011:36;;;4027:18;;:::i;:::-;4073:2;4070:1;4066:10;4105:2;4099:9;4168:2;4164:7;4159:2;4155;4151:11;4147:25;4139:6;4135:38;4223:6;4211:10;4208:22;4203:2;4191:10;4188:18;4185:46;4182:72;;;4234:18;;:::i;:::-;4270:2;4263:22;4320:18;;;4354:15;;;;-1:-1:-1;4396:11:1;;;4392:20;;;4424:19;;;4421:39;;;4456:1;4453;4446:12;4421:39;4480:11;;;;4500:148;4516:6;4511:3;4508:15;4500:148;;;4582:23;4601:3;4582:23;:::i;:::-;4570:36;;4533:12;;;;4626;;;;4500:148;;;4667:6;-1:-1:-1;4692:35:1;;-1:-1:-1;4708:18:1;;;4692:35;:::i;:::-;4682:45;;;;;;3542:1191;;;;;:::o;4738:180::-;4794:6;4847:2;4835:9;4826:7;4822:23;4818:32;4815:52;;;4863:1;4860;4853:12;4815:52;4886:26;4902:9;4886:26;:::i;5131:461::-;5184:3;5222:5;5216:12;5249:6;5244:3;5237:19;5275:4;5304:2;5299:3;5295:12;5288:19;;5341:2;5334:5;5330:14;5362:1;5372:195;5386:6;5383:1;5380:13;5372:195;;;5451:13;;-1:-1:-1;;;;;5447:39:1;5435:52;;5507:12;;;;5542:15;;;;5483:1;5401:9;5372:195;;;-1:-1:-1;5583:3:1;;5131:461;-1:-1:-1;;;;;5131:461:1:o;5597:806::-;5865:2;5877:21;;;5947:13;;5850:18;;;5969:22;;;5817:4;;6044;;6022:2;6007:18;;;6071:15;;;5817:4;6114:169;6128:6;6125:1;6122:13;6114:169;;;6189:13;;6177:26;;6223:12;;;;6258:15;;;;6150:1;6143:9;6114:169;;;6118:3;;;6328:9;6323:3;6319:19;6314:2;6303:9;6299:18;6292:47;6356:41;6393:3;6385:6;6356:41;:::i;:::-;6348:49;5597:806;-1:-1:-1;;;;;;5597:806:1:o;6408:388::-;6476:6;6484;6537:2;6525:9;6516:7;6512:23;6508:32;6505:52;;;6553:1;6550;6543:12;6505:52;6592:9;6579:23;6611:31;6636:5;6611:31;:::i;:::-;6661:5;-1:-1:-1;6718:2:1;6703:18;;6690:32;6731:33;6690:32;6731:33;:::i;:::-;6783:7;6773:17;;;6408:388;;;;;:::o;7024:329::-;7226:2;7208:21;;;7265:1;7245:18;;;7238:29;-1:-1:-1;;;7298:2:1;7283:18;;7276:36;7344:2;7329:18;;7024:329::o;7358:127::-;7419:10;7414:3;7410:20;7407:1;7400:31;7450:4;7447:1;7440:15;7474:4;7471:1;7464:15;7490:128;7530:3;7561:1;7557:6;7554:1;7551:13;7548:39;;;7567:18;;:::i;:::-;-1:-1:-1;7603:9:1;;7490:128::o;7623:127::-;7684:10;7679:3;7675:20;7672:1;7665:31;7715:4;7712:1;7705:15;7739:4;7736:1;7729:15;7755:135;7794:3;7815:17;;;7812:43;;7835:18;;:::i;:::-;-1:-1:-1;7882:1:1;7871:13;;7755:135::o;7895:168::-;7935:7;8001:1;7997;7993:6;7989:14;7986:1;7983:21;7978:1;7971:9;7964:17;7960:45;7957:71;;;8008:18;;:::i;:::-;-1:-1:-1;8048:9:1;;7895:168::o;8068:217::-;8108:1;8134;8124:132;;8178:10;8173:3;8169:20;8166:1;8159:31;8213:4;8210:1;8203:15;8241:4;8238:1;8231:15;8124:132;-1:-1:-1;8270:9:1;;8068:217::o;8290:125::-;8330:4;8358:1;8355;8352:8;8349:34;;;8363:18;;:::i;:::-;-1:-1:-1;8400:9:1;;8290:125::o;9928:251::-;9998:6;10051:2;10039:9;10030:7;10026:23;10022:32;10019:52;;;10067:1;10064;10057:12;10019:52;10099:9;10093:16;10118:31;10143:5;10118:31;:::i;10184:582::-;10483:6;10472:9;10465:25;10526:6;10521:2;10510:9;10506:18;10499:34;10569:3;10564:2;10553:9;10549:18;10542:31;10446:4;10590:57;10642:3;10631:9;10627:19;10619:6;10590:57;:::i;:::-;-1:-1:-1;;;;;10683:32:1;;;;10678:2;10663:18;;10656:60;-1:-1:-1;10747:3:1;10732:19;10725:35;10582:65;10184:582;-1:-1:-1;;;10184:582:1:o
Swarm Source
ipfs://22ac3f3c72ee02d717ba0a27d74c7b5815a18745bb546986e4e0e377d5ef8476
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.