ERC-20
Overview
Max Total Supply
1,000,000,000,000 REFLECT
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,102,030,035.050357689 REFLECTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
REFLECT
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-09 */ /* Telegram: https://t.me/reflectETH 14% ETH Reflections */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.7; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ interface IBEP20 { 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); } /** * Allows for contract ownership along with multi-address authorization */ abstract contract Auth { address internal owner; constructor(address _owner) { owner = _owner; } /** * Function modifier to require caller to be contract deployer */ modifier onlyOwner() { require(isOwner(msg.sender), "!Owner"); _; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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; } interface IDividendDistributor { function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function claimDividend(address shareholder) external; function setTreasury(address treasury) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public _treasury; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalClaimed; } address[] private shareholders; mapping (address => uint256) private shareholderIndexes; mapping (address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalClaimed; uint256 public dividendsPerShare; uint256 private dividendsPerShareAccuracyFactor = 10 ** 36; modifier onlyToken() { require(msg.sender == _token); _; } modifier onlyOwner() { require(msg.sender == _owner); _; } constructor (address owner, address treasury) { _token = msg.sender; _owner = owner; _treasury = treasury; } // receive() external payable { } function setShare(address shareholder, uint256 amount) external override onlyToken { if(shares[shareholder].amount > 0){ distributeDividend(shareholder); } if(amount > 0 && shares[shareholder].amount == 0){ addShareholder(shareholder); }else if(amount == 0 && shares[shareholder].amount > 0){ removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } function deposit() external payable override { uint256 amount = msg.value; totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)); } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getClaimableDividendOf(shareholder); if(amount > 0){ totalClaimed = totalClaimed.add(amount); shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); payable(shareholder).transfer(amount); } } function claimDividend(address shareholder) external override onlyToken { distributeDividend(shareholder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1]; shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder]; shareholders.pop(); } function manualSend(uint256 amount, address holder) external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(holder).transfer(amount > 0 ? amount : contractETHBalance); } function setTreasury(address treasury) external onlyToken { _treasury = payable(treasury); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a REFLECT shareholder!"); return shares[shareholder].totalClaimed; } } contract REFLECT is IBEP20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string private constant _name = "Reflect"; string private constant _symbol = "REFLECT"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 1000000000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private totalFee = 10; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0x60D773bb8Fd9C4306F743B71E26C04EE4931F1a5); address payable public treasury = payable(0x69965c18AABa033Aa80a4D5B3aF99d2847e46e1f); IDEXRouter public router; address public pair; uint256 public launchedAt; bool private tradingOpen; bool private buyLimit = true; uint256 private maxBuy = 30000000000 * (10 ** _decimals); DividendDistributor private distributor; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor ( address _owner ) Auth(_owner) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; distributor = new DividendDistributor(_owner, treasury); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = true; isFeeExempt[treasury] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[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) { if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading require (!isBot[sender] && !isBot[recipient], "Nice try"); if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if (block.number <= (launchedAt + 2)) { isBot[recipient] = true; isDividendExempt[recipient] = true; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } bool shouldSwapBack = /*!inSwap &&*/ (recipient==pair && balanceOf(address(this)) > 0); if(shouldSwapBack){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } 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 sender, address recipient) internal view returns (bool) { return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) && (sender == pair || recipient == pair) ); } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount; 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 swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountTreasury = (address(this).balance).div(2); uint256 amountMarketing = (address(this).balance).div(2); payable(marketingWallet).transfer(amountMarketing); payable(treasury).transfer(amountTreasury); } function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } function isInBot(address _address) external view onlyOwner returns (bool) { return isBot[_address]; } function _setIsDividendExempt(address holder, bool exempt) internal { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { _setIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setFee (uint256 _fee) external onlyOwner { require (_fee <= 16, "Fee can't exceed 16%"); totalFee = _fee; } function manualSend() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(marketingWallet).transfer(contractETHBalance); } function claimDividend() external { distributor.claimDividend(msg.sender); } function claimDividend(address holder) external onlyOwner { distributor.claimDividend(holder); } function getClaimableDividendOf(address shareholder) public view returns (uint256) { return distributor.getClaimableDividendOf(shareholder); } function manualBurn(uint256 amount) external onlyOwner returns (bool) { return _basicTransfer(address(this), DEAD, amount); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } function setMarketingWallet(address _marketingWallet) external onlyOwner { marketingWallet = payable(_marketingWallet); } function setTreasury(address _treasury) external onlyOwner { treasury = payable(_treasury); distributor.setTreasury(_treasury); } function getTotalDividends() external view returns (uint256) { return distributor.totalDividends(); } function getTotalClaimed() external view returns (uint256) { return distributor.totalClaimed(); } function getDividendsClaimedOf (address shareholder) external view returns (uint256) { return distributor.getDividendsClaimedOf(shareholder); } function removeBuyLimit() external onlyOwner { buyLimit = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":[{"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":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a62000533565b620000439064e8d4a510006200054b565b6004819055600555600a600b8190556064600c55600d80546001600160a01b03199081167360d773bb8fd9c4306f743b71e26c04ee4931f1a517909155600e80549091167369965c18aaba033aa80a4d5b3af99d2847e46e1f1790556012805461ff001916610100179055620000bc9060099062000533565b620000cd906406fc23ac006200054b565b601355348015620000dd57600080fd5b5060405162002fcd38038062002fcd83398101604081905262000100916200056d565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019f91906200056d565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022491906200056d565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c91906200056d565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5485168452909152908190206000199055600e54905183929190911690620002f49062000410565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000328573d6000803e3d6000fd5b50601480546001600160a01b0319166001600160a01b039283161790558181166000818152600860209081526040808320805460ff199081166001908117909255600d54871685528285208054821683179055600e548716855282852080548216831790556010548716855260098452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000598565b610d1580620022b883390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004755781600019048211156200045957620004596200041e565b808516156200046757918102915b93841c939080029062000439565b509250929050565b6000826200048e575060016200052d565b816200049d575060006200052d565b8160018114620004b65760028114620004c157620004e1565b60019150506200052d565b60ff841115620004d557620004d56200041e565b50506001821b6200052d565b5060208310610133831016604e8410600b841016171562000506575081810a6200052d565b62000512838362000434565b80600019048211156200052957620005296200041e565b0290505b92915050565b60006200054460ff8416836200047d565b9392505050565b60008160001904831182151516156200056857620005686200041e565b500290565b6000602082840312156200058057600080fd5b81516001600160a01b03811681146200054457600080fd5b611d1080620005a86000396000f3fe6080604052600436106102135760003560e01c806369fe0e2d11610118578063bf56b371116100a0578063f0fc6bca1161006f578063f0fc6bca1461065e578063f2fde38b14610673578063f429389014610693578063f708a64f146106a8578063f887ea40146106c857600080fd5b8063bf56b371146105cd578063c9567bf9146105e3578063dd62ed3e146105f8578063f0f442601461063e57600080fd5b8063893d20e8116100e7578063893d20e81461051f5780638ecc37fb1461053d57806395d89b411461055d578063a8aa1b311461058d578063a9059cbb146105ad57600080fd5b806369fe0e2d1461049457806370a08231146104b4578063736a83a1146104ea57806375f0a874146104ff57600080fd5b8063342aa8b51161019b5780635cc33f741161016a5780635cc33f74146103e75780635d098b381461040757806361d027b314610427578063658d4b7f1461045f57806367ee5f091461047f57600080fd5b8063342aa8b5146103725780633e07ce5b14610392578063416501c8146103a7578063571ac8b0146103c757600080fd5b806323b63585116101e257806323b63585146102d257806323b872dd146102f25780632b112e49146103125780632f54bf6e14610327578063313ce5671461035657600080fd5b806306fdde031461021f578063095ea7b31461026157806315f7e05e1461029157806318160ddd146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152661499599b1958dd60ca1b60208201525b6040516102589190611a18565b60405180910390f35b34801561026d57600080fd5b5061028161027c366004611a85565b6106e8565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac366004611ab1565b610755565b005b3480156102bf57600080fd5b506004545b604051908152602001610258565b3480156102de57600080fd5b506102816102ed366004611ace565b6107eb565b3480156102fe57600080fd5b5061028161030d366004611ae7565b61082e565b34801561031e57600080fd5b506102c46108f0565b34801561033357600080fd5b50610281610342366004611ab1565b6000546001600160a01b0391821691161490565b34801561036257600080fd5b5060405160098152602001610258565b34801561037e57600080fd5b506102b161038d366004611b28565b610942565b34801561039e57600080fd5b506102b161099e565b3480156103b357600080fd5b506102816103c2366004611ab1565b6109d5565b3480156103d357600080fd5b506102816103e2366004611ab1565b610a1f565b3480156103f357600080fd5b506102c4610402366004611ab1565b610a2d565b34801561041357600080fd5b506102b1610422366004611ab1565b610a9d565b34801561043357600080fd5b50600e54610447906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b34801561046b57600080fd5b506102b161047a366004611b28565b610ae9565b34801561048b57600080fd5b506102c4610b3e565b3480156104a057600080fd5b506102b16104af366004611ace565b610bac565b3480156104c057600080fd5b506102c46104cf366004611ab1565b6001600160a01b031660009081526006602052604090205490565b3480156104f657600080fd5b506102c4610c23565b34801561050b57600080fd5b50600d54610447906001600160a01b031681565b34801561052b57600080fd5b506000546001600160a01b0316610447565b34801561054957600080fd5b506102c4610558366004611ab1565b610c6d565b34801561056957600080fd5b50604080518082019091526007815266149151931150d560ca1b602082015261024b565b34801561059957600080fd5b50601054610447906001600160a01b031681565b3480156105b957600080fd5b506102816105c8366004611a85565b610ca0565b3480156105d957600080fd5b506102c460115481565b3480156105ef57600080fd5b506102b1610cad565b34801561060457600080fd5b506102c4610613366004611b66565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561064a57600080fd5b506102b1610659366004611ab1565b610cea565b34801561066a57600080fd5b506102b1610d5d565b34801561067f57600080fd5b506102b161068e366004611ab1565b610dbc565b34801561069f57600080fd5b506102b1610e3a565b3480156106b457600080fd5b506102b16106c3366004611b28565b610e9e565b3480156106d457600080fd5b50600f54610447906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107439086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161077f90611b94565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108165760405162461bcd60e51b815260040161077f90611b94565b60025461074f9030906001600160a01b031684610ed2565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108db576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108b6918490610fb8565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108e6848484610ff2565b90505b9392505050565b6003546001600160a01b031660009081526006602052604081205461093d906002546001600160a01b0316600090815260066020526040902054610937906004549061149c565b9061149c565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b815260040161077f90611b94565b6001600160a01b0382166000908152600a60205260409020805460ff191682151517905561099a82826114de565b5050565b6000546001600160a01b031633146109c85760405162461bcd60e51b815260040161077f90611b94565b6012805461ff0019169055565b600080546001600160a01b03163314610a005760405162461bcd60e51b815260040161077f90611b94565b506001600160a01b03166000908152600a602052604090205460ff1690565b600061074f826000196106e8565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610a79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190611bb4565b6000546001600160a01b03163314610ac75760405162461bcd60e51b815260040161077f90611b94565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b135760405162461bcd60e51b815260040161077f90611b94565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611bb4565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161077f90611b94565b6010811115610c1e5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031362560601b604482015260640161077f565b600b55565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610b88573d6000803e3d6000fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610a5c565b60006108e9338484610ff2565b6000546001600160a01b03163314610cd75760405162461bcd60e51b815260040161077f90611b94565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610d145760405162461bcd60e51b815260040161077f90611b94565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f44260906024016107b6565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161077f90611b94565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e645760405162461bcd60e51b815260040161077f90611b94565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561099a573d6000803e3d6000fd5b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260040161077f90611b94565b61099a82826114de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610f23918490610fb8565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f5290836115ef565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa69086815260200190565b60405180910390a35060019392505050565b60008184841115610fdc5760405162461bcd60e51b815260040161077f9190611a18565b506000610fe98486611be3565b95945050505050565b600080546001600160a01b0385811691161480159061101f57506000546001600160a01b03848116911614155b156110765760125460ff166110765760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161077f565b6001600160a01b0384166000908152600a602052604090205460ff161580156110b857506001600160a01b0383166000908152600a602052604090205460ff16155b6110ef5760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b604482015260640161077f565b601254610100900460ff1615611171576000546001600160a01b0385811691161480159061112b57506000546001600160a01b03848116911614155b15611171576013548211156111715760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161077f565b60115461117f906002611bfa565b43116111c1576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff16156111e5576111de848484610ed2565b90506108e9565b6010546000906001600160a01b038581169116148015611212575030600090815260066020526040812054115b905080156112225761122261164e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260069091529190912054611274918590610fb8565b6001600160a01b03861660009081526006602052604081209190915561129a8686611805565b6112a457836112ae565b6112ae868561187a565b6001600160a01b0386166000908152600660205260409020549091506112d490826115ef565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061132057506001600160a01b03861660009081526009602052604090205460ff16155b15611396576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561138357600080fd5b505af1925050508015611394575060015b505b6010546001600160a01b038681169116148015906113cd57506001600160a01b03851660009081526009602052604090205460ff16155b15611443576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561143057600080fd5b505af1925050508015611441575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161148891815260200190565b60405180910390a350600195945050505050565b60006108e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb8565b6001600160a01b038216301480159061150557506010546001600160a01b03838116911614155b61150e57600080fd5b6001600160a01b0382166000908152600960205260409020805460ff191682158015919091179091556115a657601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561158a57600080fd5b505af115801561159e573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611570565b6000806115fc8385611bfa565b9050838110156108e95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161077f565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106116ae576116ae611c12565b6001600160a01b03928316602091820292909201015260018054835192169183919081106116de576116de611c12565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611724908590600090869030904290600401611c28565b600060405180830381600087803b15801561173e57600080fd5b505af1158015611752573d6000803e3d6000fd5b50505050600061176c60024761192690919063ffffffff16565b9050600061177b476002611926565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156117b6573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156117f1573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff168061184457506001600160a01b03821660009081526008602052604090205460ff165b1580156108e957506010546001600160a01b03848116911614806108e95750506010546001600160a01b03908116911614919050565b60008061189e600c54611898600b548661196890919063ffffffff16565b90611926565b306000908152600660205260409020549091506118bb90826115ef565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061190c9085815260200190565b60405180910390a361191e838261149c565b949350505050565b60006108e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119ea565b60008260000361197a5750600061074f565b60006119868385611c99565b9050826119938583611cb8565b146108e95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161077f565b60008183611a0b5760405162461bcd60e51b815260040161077f9190611a18565b506000610fe98486611cb8565b600060208083528351808285015260005b81811015611a4557858101830151858201604001528201611a29565b81811115611a57576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611a8257600080fd5b50565b60008060408385031215611a9857600080fd5b8235611aa381611a6d565b946020939093013593505050565b600060208284031215611ac357600080fd5b81356108e981611a6d565b600060208284031215611ae057600080fd5b5035919050565b600080600060608486031215611afc57600080fd5b8335611b0781611a6d565b92506020840135611b1781611a6d565b929592945050506040919091013590565b60008060408385031215611b3b57600080fd5b8235611b4681611a6d565b915060208301358015158114611b5b57600080fd5b809150509250929050565b60008060408385031215611b7957600080fd5b8235611b8481611a6d565b91506020830135611b5b81611a6d565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060208284031215611bc657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611bf557611bf5611bcd565b500390565b60008219821115611c0d57611c0d611bcd565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c785784516001600160a01b031683529383019391830191600101611c53565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611cb357611cb3611bcd565b500290565b600082611cd557634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ad83ba5b1031f4eacac01bf8da772cf4b3b851bc9d4ef845471a0cbc0961f07f64736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600a5534801561002357600080fd5b50604051610d15380380610d158339810160408190526100429161009a565b600080546001600160a01b03199081163317909155600180546001600160a01b03948516908316179055600280549290931691161790556100cd565b80516001600160a01b038116811461009557600080fd5b919050565b600080604083850312156100ad57600080fd5b6100b68361007e565b91506100c46020840161007e565b90509250929050565b610c39806100dc6000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e2191461027b578063e319a3d914610291578063ecd0c0c3146102b1578063f0f44260146102d157600080fd5b8063b2bdfa7b146101ce578063ce7c2ac214610206578063d0e30db01461025d578063d54ad2a11461026557600080fd5b80633a98ef39116100c65780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f575b600080fd5b3480156100f957600080fd5b5061010d610108366004610a8b565b6102f1565b005b34801561011b57600080fd5b5061010d61012a366004610ab7565b610351565b34801561013b57600080fd5b5061010d61014a366004610ae1565b6104c9565b34801561015b57600080fd5b5061016560065481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610ae1565b6104ec565b3480156101a457600080fd5b506101656101b3366004610ae1565b61057f565b3480156101c457600080fd5b5061016560075481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b50610242610221366004610ae1565b60056020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b61010d61060a565b34801561027157600080fd5b5061016560085481565b34801561028757600080fd5b5061016560095481565b34801561029d57600080fd5b506002546101ee906001600160a01b031681565b3480156102bd57600080fd5b506000546101ee906001600160a01b031681565b3480156102dd57600080fd5b5061010d6102ec366004610ae1565b610649565b6001546001600160a01b0316331461030857600080fd5b476001600160a01b0382166108fc846103215782610323565b845b6040518115909202916000818181858888f1935050505015801561034b573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461036857600080fd5b6001600160a01b0382166000908152600560205260409020541561038f5761038f82610682565b6000811180156103b557506001600160a01b038216600090815260056020526040902054155b1561041b57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561044e565b8015801561044057506001600160a01b03821660009081526005602052604090205415155b1561044e5761044e82610767565b6001600160a01b03821660009081526005602052604090205460065461047f9183916104799161087c565b906108c7565b6006556001600160a01b03821660009081526005602052604090208190556104a681610926565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6000546001600160a01b031633146104e057600080fd5b6104e981610682565b50565b6001600160a01b0381166000908152600560205260408120546105605760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205245464c454354207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526005602052604090206002015490565b6001600160a01b03811660009081526005602052604081205481036105a657506000919050565b6001600160a01b0382166000908152600560205260408120546105c890610926565b6001600160a01b0384166000908152600560205260409020600101549091508082116105f8575060009392505050565b610602828261087c565b949350505050565b600754349061061990826108c7565b600755600654600a546106439161063a916106349085610943565b906109c5565b600954906108c7565b60095550565b6000546001600160a01b0316331461066057600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604081205490036106a45750565b60006106af8261057f565b90508015610763576008546106c490826108c7565b6008556001600160a01b0382166000908152600560205260409020600201546106ed90826108c7565b6001600160a01b038316600090815260056020526040902060028101919091555461071790610926565b6001600160a01b038316600081815260056020526040808220600101939093559151909183156108fc02918491818181858888f19350505050158015610761573d6000803e3d6000fd5b505b5050565b6003805461077790600190610b12565b8154811061078757610787610b29565b60009182526020808320909101546001600160a01b03848116845260049092526040909220546003805492909316929181106107c5576107c5610b29565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526004918290526040812054600380549193929161081190600190610b12565b8154811061082157610821610b29565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061085757610857610b3f565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108be83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a07565b90505b92915050565b6000806108d48385610b55565b9050838110156108be5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610557565b60006108c1600a546106346009548561094390919063ffffffff16565b600082600003610955575060006108c1565b60006109618385610b6d565b90508261096e8583610b8c565b146108be5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610557565b60006108be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a41565b60008184841115610a2b5760405162461bcd60e51b81526004016105579190610bae565b506000610a388486610b12565b95945050505050565b60008183610a625760405162461bcd60e51b81526004016105579190610bae565b506000610a388486610b8c565b80356001600160a01b0381168114610a8657600080fd5b919050565b60008060408385031215610a9e57600080fd5b82359150610aae60208401610a6f565b90509250929050565b60008060408385031215610aca57600080fd5b610ad383610a6f565b946020939093013593505050565b600060208284031215610af357600080fd5b6108be82610a6f565b634e487b7160e01b600052601160045260246000fd5b600082821015610b2457610b24610afc565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610b6857610b68610afc565b500190565b6000816000190483118215151615610b8757610b87610afc565b500290565b600082610ba957634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610bdb57858101830151858201604001528201610bbf565b81811115610bed576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220e179f3bc1113d703520453d4fd366ca243a825978ecb344678bf81ca1ea0c3fe64736f6c634300080d003300000000000000000000000069965c18aaba033aa80a4d5b3af99d2847e46e1f
Deployed Bytecode
0x6080604052600436106102135760003560e01c806369fe0e2d11610118578063bf56b371116100a0578063f0fc6bca1161006f578063f0fc6bca1461065e578063f2fde38b14610673578063f429389014610693578063f708a64f146106a8578063f887ea40146106c857600080fd5b8063bf56b371146105cd578063c9567bf9146105e3578063dd62ed3e146105f8578063f0f442601461063e57600080fd5b8063893d20e8116100e7578063893d20e81461051f5780638ecc37fb1461053d57806395d89b411461055d578063a8aa1b311461058d578063a9059cbb146105ad57600080fd5b806369fe0e2d1461049457806370a08231146104b4578063736a83a1146104ea57806375f0a874146104ff57600080fd5b8063342aa8b51161019b5780635cc33f741161016a5780635cc33f74146103e75780635d098b381461040757806361d027b314610427578063658d4b7f1461045f57806367ee5f091461047f57600080fd5b8063342aa8b5146103725780633e07ce5b14610392578063416501c8146103a7578063571ac8b0146103c757600080fd5b806323b63585116101e257806323b63585146102d257806323b872dd146102f25780632b112e49146103125780632f54bf6e14610327578063313ce5671461035657600080fd5b806306fdde031461021f578063095ea7b31461026157806315f7e05e1461029157806318160ddd146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152661499599b1958dd60ca1b60208201525b6040516102589190611a18565b60405180910390f35b34801561026d57600080fd5b5061028161027c366004611a85565b6106e8565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac366004611ab1565b610755565b005b3480156102bf57600080fd5b506004545b604051908152602001610258565b3480156102de57600080fd5b506102816102ed366004611ace565b6107eb565b3480156102fe57600080fd5b5061028161030d366004611ae7565b61082e565b34801561031e57600080fd5b506102c46108f0565b34801561033357600080fd5b50610281610342366004611ab1565b6000546001600160a01b0391821691161490565b34801561036257600080fd5b5060405160098152602001610258565b34801561037e57600080fd5b506102b161038d366004611b28565b610942565b34801561039e57600080fd5b506102b161099e565b3480156103b357600080fd5b506102816103c2366004611ab1565b6109d5565b3480156103d357600080fd5b506102816103e2366004611ab1565b610a1f565b3480156103f357600080fd5b506102c4610402366004611ab1565b610a2d565b34801561041357600080fd5b506102b1610422366004611ab1565b610a9d565b34801561043357600080fd5b50600e54610447906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b34801561046b57600080fd5b506102b161047a366004611b28565b610ae9565b34801561048b57600080fd5b506102c4610b3e565b3480156104a057600080fd5b506102b16104af366004611ace565b610bac565b3480156104c057600080fd5b506102c46104cf366004611ab1565b6001600160a01b031660009081526006602052604090205490565b3480156104f657600080fd5b506102c4610c23565b34801561050b57600080fd5b50600d54610447906001600160a01b031681565b34801561052b57600080fd5b506000546001600160a01b0316610447565b34801561054957600080fd5b506102c4610558366004611ab1565b610c6d565b34801561056957600080fd5b50604080518082019091526007815266149151931150d560ca1b602082015261024b565b34801561059957600080fd5b50601054610447906001600160a01b031681565b3480156105b957600080fd5b506102816105c8366004611a85565b610ca0565b3480156105d957600080fd5b506102c460115481565b3480156105ef57600080fd5b506102b1610cad565b34801561060457600080fd5b506102c4610613366004611b66565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561064a57600080fd5b506102b1610659366004611ab1565b610cea565b34801561066a57600080fd5b506102b1610d5d565b34801561067f57600080fd5b506102b161068e366004611ab1565b610dbc565b34801561069f57600080fd5b506102b1610e3a565b3480156106b457600080fd5b506102b16106c3366004611b28565b610e9e565b3480156106d457600080fd5b50600f54610447906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107439086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161077f90611b94565b60405180910390fd5b601454604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e906024015b600060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108165760405162461bcd60e51b815260040161077f90611b94565b60025461074f9030906001600160a01b031684610ed2565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108db576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108b6918490610fb8565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108e6848484610ff2565b90505b9392505050565b6003546001600160a01b031660009081526006602052604081205461093d906002546001600160a01b0316600090815260066020526040902054610937906004549061149c565b9061149c565b905090565b6000546001600160a01b0316331461096c5760405162461bcd60e51b815260040161077f90611b94565b6001600160a01b0382166000908152600a60205260409020805460ff191682151517905561099a82826114de565b5050565b6000546001600160a01b031633146109c85760405162461bcd60e51b815260040161077f90611b94565b6012805461ff0019169055565b600080546001600160a01b03163314610a005760405162461bcd60e51b815260040161077f90611b94565b506001600160a01b03166000908152600a602052604090205460ff1690565b600061074f826000196106e8565b601454604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610a79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190611bb4565b6000546001600160a01b03163314610ac75760405162461bcd60e51b815260040161077f90611b94565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b135760405162461bcd60e51b815260040161077f90611b94565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6014546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611bb4565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161077f90611b94565b6010811115610c1e5760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642031362560601b604482015260640161077f565b600b55565b6014546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610b88573d6000803e3d6000fd5b601454604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610a5c565b60006108e9338484610ff2565b6000546001600160a01b03163314610cd75760405162461bcd60e51b815260040161077f90611b94565b436011556012805460ff19166001179055565b6000546001600160a01b03163314610d145760405162461bcd60e51b815260040161077f90611b94565b600e80546001600160a01b0319166001600160a01b03838116918217909255601454604051630787a21360e51b815260048101929092529091169063f0f44260906024016107b6565b601454604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161077f90611b94565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610e645760405162461bcd60e51b815260040161077f90611b94565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561099a573d6000803e3d6000fd5b6000546001600160a01b03163314610ec85760405162461bcd60e51b815260040161077f90611b94565b61099a82826114de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610f23918490610fb8565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610f5290836115ef565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa69086815260200190565b60405180910390a35060019392505050565b60008184841115610fdc5760405162461bcd60e51b815260040161077f9190611a18565b506000610fe98486611be3565b95945050505050565b600080546001600160a01b0385811691161480159061101f57506000546001600160a01b03848116911614155b156110765760125460ff166110765760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161077f565b6001600160a01b0384166000908152600a602052604090205460ff161580156110b857506001600160a01b0383166000908152600a602052604090205460ff16155b6110ef5760405162461bcd60e51b81526020600482015260086024820152674e6963652074727960c01b604482015260640161077f565b601254610100900460ff1615611171576000546001600160a01b0385811691161480159061112b57506000546001600160a01b03848116911614155b15611171576013548211156111715760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161077f565b60115461117f906002611bfa565b43116111c1576001600160a01b0383166000908152600a602090815260408083208054600160ff19918216811790925560099093529220805490911690911790555b601454600160a01b900460ff16156111e5576111de848484610ed2565b90506108e9565b6010546000906001600160a01b038581169116148015611212575030600090815260066020526040812054115b905080156112225761122261164e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038816600090815260069091529190912054611274918590610fb8565b6001600160a01b03861660009081526006602052604081209190915561129a8686611805565b6112a457836112ae565b6112ae868561187a565b6001600160a01b0386166000908152600660205260409020549091506112d490826115ef565b6001600160a01b0380871660009081526006602052604090209190915560105487821691161480159061132057506001600160a01b03861660009081526009602052604090205460ff16155b15611396576014546001600160a01b0387811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561138357600080fd5b505af1925050508015611394575060015b505b6010546001600160a01b038681169116148015906113cd57506001600160a01b03851660009081526009602052604090205460ff16155b15611443576014546001600160a01b0386811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561143057600080fd5b505af1925050508015611441575060015b505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161148891815260200190565b60405180910390a350600195945050505050565b60006108e983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb8565b6001600160a01b038216301480159061150557506010546001600160a01b03838116911614155b61150e57600080fd5b6001600160a01b0382166000908152600960205260409020805460ff191682158015919091179091556115a657601454604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561158a57600080fd5b505af115801561159e573d6000803e3d6000fd5b505050505050565b6014546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611570565b6000806115fc8385611bfa565b9050838110156108e95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161077f565b6014805460ff60a01b1916600160a01b17905530600090815260066020526040812054604080516002808252606082019092529192506000919081602001602082028036833701905050905030816000815181106116ae576116ae611c12565b6001600160a01b03928316602091820292909201015260018054835192169183919081106116de576116de611c12565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611724908590600090869030904290600401611c28565b600060405180830381600087803b15801561173e57600080fd5b505af1158015611752573d6000803e3d6000fd5b50505050600061176c60024761192690919063ffffffff16565b9050600061177b476002611926565b600d546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156117b6573d6000803e3d6000fd5b50600e546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156117f1573d6000803e3d6000fd5b50506014805460ff60a01b19169055505050565b6001600160a01b03821660009081526008602052604081205460ff168061184457506001600160a01b03821660009081526008602052604090205460ff165b1580156108e957506010546001600160a01b03848116911614806108e95750506010546001600160a01b03908116911614919050565b60008061189e600c54611898600b548661196890919063ffffffff16565b90611926565b306000908152600660205260409020549091506118bb90826115ef565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061190c9085815260200190565b60405180910390a361191e838261149c565b949350505050565b60006108e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119ea565b60008260000361197a5750600061074f565b60006119868385611c99565b9050826119938583611cb8565b146108e95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161077f565b60008183611a0b5760405162461bcd60e51b815260040161077f9190611a18565b506000610fe98486611cb8565b600060208083528351808285015260005b81811015611a4557858101830151858201604001528201611a29565b81811115611a57576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611a8257600080fd5b50565b60008060408385031215611a9857600080fd5b8235611aa381611a6d565b946020939093013593505050565b600060208284031215611ac357600080fd5b81356108e981611a6d565b600060208284031215611ae057600080fd5b5035919050565b600080600060608486031215611afc57600080fd5b8335611b0781611a6d565b92506020840135611b1781611a6d565b929592945050506040919091013590565b60008060408385031215611b3b57600080fd5b8235611b4681611a6d565b915060208301358015158114611b5b57600080fd5b809150509250929050565b60008060408385031215611b7957600080fd5b8235611b8481611a6d565b91506020830135611b5b81611a6d565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b600060208284031215611bc657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611bf557611bf5611bcd565b500390565b60008219821115611c0d57611c0d611bcd565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c785784516001600160a01b031683529383019391830191600101611c53565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611cb357611cb3611bcd565b500290565b600082611cd557634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ad83ba5b1031f4eacac01bf8da772cf4b3b851bc9d4ef845471a0cbc0961f07f64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000069965c18aaba033aa80a4d5b3af99d2847e46e1f
-----Decoded View---------------
Arg [0] : _owner (address): 0x69965c18AABa033Aa80a4D5B3aF99d2847e46e1f
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000069965c18aaba033aa80a4d5b3af99d2847e46e1f
Deployed Bytecode Sourcemap
9492:9917:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:80;;;;;;;;;;-1:-1:-1;12189:5:0;;;;;;;;;;;;-1:-1:-1;;;12189:5:0;;;;12117:80;;;;;;;:::i;:::-;;;;;;;;12539:216;;;;;;;;;;-1:-1:-1;12539:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;12539:216:0;1072:187:1;18020:110:0;;;;;;;;;;-1:-1:-1;18020:110:0;;;;;:::i;:::-;;:::i;:::-;;11847:88;;;;;;;;;;-1:-1:-1;11920:12:0;;11847:88;;;1662:25:1;;;1650:2;1635:18;11847:88:0;1516:177:1;18310:139:0;;;;;;;;;;-1:-1:-1;18310:139:0;;;;;:::i;:::-;;:::i;13057:370::-;;;;;;;;;;-1:-1:-1;13057:370:0;;;;;:::i;:::-;;:::i;18461:142::-;;;;;;;;;;;;;:::i;2907:103::-;;;;;;;;;;-1:-1:-1;2907:103:0;;;;;:::i;:::-;2962:4;2997:5;-1:-1:-1;;;;;2986:16:0;;;2997:5;;2986:16;;2907:103;11941:80;;;;;;;;;;-1:-1:-1;11941:80:0;;9874:1;2486:36:1;;2474:2;2459:18;11941:80:0;2344:184:1;16676:158:0;;;;;;;;;;-1:-1:-1;16676:158:0;;;;;:::i;:::-;;:::i;19326:80::-;;;;;;;;;;;;;:::i;16846:115::-;;;;;;;;;;-1:-1:-1;16846:115:0;;;;;:::i;:::-;;:::i;12763:122::-;;;;;;;;;;-1:-1:-1;12763:122:0;;;;;:::i;:::-;;:::i;19161:157::-;;;;;;;;;;-1:-1:-1;19161:157:0;;;;;:::i;:::-;;:::i;18611:135::-;;;;;;;;;;-1:-1:-1;18611:135:0;;;;;:::i;:::-;;:::i;10500:85::-;;;;;;;;;;-1:-1:-1;10500:85:0;;;;-1:-1:-1;;;;;10500:85:0;;;;;;-1:-1:-1;;;;;3134:32:1;;;3116:51;;3104:2;3089:18;10500:85:0;2954:219:1;17458:119:0;;;;;;;;;;-1:-1:-1;17458:119:0;;;;;:::i;:::-;;:::i;18914:115::-;;;;;;;;;;;;;:::i;17585:139::-;;;;;;;;;;-1:-1:-1;17585:139:0;;;;;:::i;:::-;;:::i;12287:105::-;;;;;;;;;;-1:-1:-1;12287:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12371:18:0;12353:7;12371:18;;;:9;:18;;;;;;;12287:105;19041:111;;;;;;;;;;;;;:::i;10401:92::-;;;;;;;;;;-1:-1:-1;10401:92:0;;;;-1:-1:-1;;;;;10401:92:0;;;12203:78;;;;;;;;;;-1:-1:-1;12255:7:0;12273:5;-1:-1:-1;;;;;12273:5:0;12203:78;;18142:156;;;;;;;;;;-1:-1:-1;18142:156:0;;;;;:::i;:::-;;:::i;12027:84::-;;;;;;;;;;-1:-1:-1;12101:7:0;;;;;;;;;;;;-1:-1:-1;;;12101:7:0;;;;12027:84;;10625:19;;;;;;;;;;-1:-1:-1;10625:19:0;;;;-1:-1:-1;;;;;10625:19:0;;;12893:156;;;;;;;;;;-1:-1:-1;12893:156:0;;;;;:::i;:::-;;:::i;10653:25::-;;;;;;;;;;;;;;;;16541:115;;;;;;;;;;;;;:::i;12398:133::-;;;;;;;;;;-1:-1:-1;12398:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12500:19:0;;;12482:7;12500:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12398:133;18754:152;;;;;;;;;;-1:-1:-1;18754:152:0;;;;;:::i;:::-;;:::i;17918:90::-;;;;;;;;;;;;;:::i;3135:136::-;;;;;;;;;;-1:-1:-1;3135:136:0;;;;;:::i;:::-;;:::i;17736:174::-;;;;;;;;;;;;;:::i;17318:132::-;;;;;;;;;;-1:-1:-1;17318:132:0;;;;;:::i;:::-;;:::i;10594:24::-;;;;;;;;;;-1:-1:-1;10594:24:0;;;;-1:-1:-1;;;;;10594:24:0;;;12539:216;12643:10;12614:4;12631:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12631:32:0;;;;;;;;;;:41;;;12688:37;12614:4;;12631:32;;12688:37;;;;12666:6;1662:25:1;;1650:2;1635:18;;1516:177;12688:37:0;;;;;;;;-1:-1:-1;12743:4:0;12539:216;;;;;:::o;18020:110::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;;;;;;;;;18089:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;18089:33:0;;-1:-1:-1;;;;;3134:32:1;;;18089:33:0::1;::::0;::::1;3116:51:1::0;18089:11:0;;::::1;::::0;:25:::1;::::0;3089:18:1;;18089:33:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18020:110:::0;:::o;18310:139::-;18374:4;2997:5;;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;18428:4:::1;::::0;18398:43:::1;::::0;18421:4:::1;::::0;-1:-1:-1;;;;;18428:4:0::1;18434:6:::0;18398:14:::1;:43::i;13057:370::-:0;-1:-1:-1;;;;;13177:19:0;;13157:4;13177:19;;;:11;:19;;;;;;;;13197:10;13177:31;;;;;;;;-1:-1:-1;;13177:52:0;13174:186;;13279:69;;;;;;;;;;;-1:-1:-1;;;13279:69:0;;;;;;;;-1:-1:-1;;;;;13279:19:0;;-1:-1:-1;13279:19:0;;;:11;:19;;;;;13299:10;13279:31;;;;;;;;;;:69;;13315:6;;13279:35;:69::i;:::-;-1:-1:-1;;;;;13245:19:0;;;;;;:11;:19;;;;;;;;13265:10;13245:31;;;;;;;:103;13174:186;13379:40;13393:6;13401:9;13412:6;13379:13;:40::i;:::-;13372:47;;13057:370;;;;;;:::o;18461:142::-;18589:4;;-1:-1:-1;;;;;18589:4:0;18514:7;12371:18;;;:9;:18;;;;;;18541:54;;18568:4;;-1:-1:-1;;;;;18568:4:0;12353:7;12371:18;;;:9;:18;;;;;;18541:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18534:61;;18461:142;:::o;16676:158::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16753:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;16753:24:0::1;::::0;::::1;;;::::0;;16788:38:::1;16753:15:::0;:24;16788:20:::1;:38::i;:::-;16676:158:::0;;:::o;19326:80::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;19382:8:::1;:16:::0;;-1:-1:-1;;19382:16:0::1;::::0;;19326:80::o;16846:115::-;16914:4;2997:5;;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;16938:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;::::0;16846:115::o;12763:122::-;12818:4;12842:35;12850:7;-1:-1:-1;;12842:7:0;:35::i;19161:157::-;19264:11;;:46;;-1:-1:-1;;;19264:46:0;;-1:-1:-1;;;;;3134:32:1;;;19264:46:0;;;3116:51:1;19237:7:0;;19264:11;;:33;;3089:18:1;;19264:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18611:135::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;18695:15:::1;:43:::0;;-1:-1:-1;;;;;;18695:43:0::1;-1:-1:-1::0;;;;;18695:43:0;;;::::1;::::0;;;::::1;::::0;;18611:135::o;17458:119::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17541:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17541:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17458:119::o;18914:115::-;18993:11;;:28;;;-1:-1:-1;;;18993:28:0;;;;18966:7;;-1:-1:-1;;;;;18993:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17585:139::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;17663:2:::1;17655:4;:10;;17646:44;;;::::0;-1:-1:-1;;;17646:44:0;;4990:2:1;17646:44:0::1;::::0;::::1;4972:21:1::0;5029:2;5009:18;;;5002:30;-1:-1:-1;;;5048:18:1;;;5041:50;5108:18;;17646:44:0::1;4788:344:1::0;17646:44:0::1;17701:8;:15:::0;17585:139::o;19041:111::-;19118:11;;:26;;;-1:-1:-1;;;19118:26:0;;;;19091:7;;-1:-1:-1;;;;;19118:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;18142:156;18243:11;;:47;;-1:-1:-1;;;18243:47:0;;-1:-1:-1;;;;;3134:32:1;;;18243:47:0;;;3116:51:1;18216:7:0;;18243:11;;:34;;3089:18:1;;18243:47:0;2954:219:1;12893:156:0;12973:4;12997:44;13011:10;13023:9;13034:6;12997:13;:44::i;16541:115::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;16607:12:::1;16594:10;:25:::0;16630:11:::1;:18:::0;;-1:-1:-1;;16630:18:0::1;16644:4;16630:18;::::0;;16541:115::o;18754:152::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;18824:8:::1;:29:::0;;-1:-1:-1;;;;;;18824:29:0::1;-1:-1:-1::0;;;;;18824:29:0;;::::1;::::0;;::::1;::::0;;;18864:11:::1;::::0;:34:::1;::::0;-1:-1:-1;;;18864:34:0;;::::1;::::0;::::1;3116:51:1::0;;;;18864:11:0;;::::1;::::0;:23:::1;::::0;3089:18:1;;18864:34:0::1;2954:219:1::0;17918:90:0;17963:11;;:37;;-1:-1:-1;;;17963:37:0;;17989:10;17963:37;;;3116:51:1;-1:-1:-1;;;;;17963:11:0;;;;:25;;3089:18:1;;17963:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17918:90::o;3135:136::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;3211:5:::1;:11:::0;;-1:-1:-1;;;;;;3211:11:0::1;-1:-1:-1::0;;;;;3211:11:0;::::1;::::0;;::::1;::::0;;;3238:25:::1;::::0;3116:51:1;;;3238:25:0::1;::::0;3104:2:1;3089:18;3238:25:0::1;;;;;;;3135:136:::0;:::o;17736:174::-;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;17857:15:::1;::::0;17849:53:::1;::::0;17817:21:::1;::::0;-1:-1:-1;;;;;17857:15:0::1;::::0;17849:53;::::1;;;::::0;17817:21;;17788:26:::1;17849:53:::0;17788:26;17849:53;17817:21;17857:15;17849:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;17318:132:::0;2962:4;2997:5;-1:-1:-1;;;;;2997:5:0;2814:10;2986:16;2798:38;;;;-1:-1:-1;;;2798:38:0;;;;;;;:::i;:::-;17406:36:::1;17427:6;17435;17406:20;:36::i;14904:330::-:0;15034:53;;;;;;;;;;;-1:-1:-1;;;15034:53:0;;;;;;;;-1:-1:-1;;;;;15034:17:0;;14997:4;15034:17;;;:9;:17;;;;;;;:53;;15056:6;;15034:21;:53::i;:::-;-1:-1:-1;;;;;15014:17:0;;;;;;;:9;:17;;;;;;:73;;;;15121:20;;;;;;;:32;;15146:6;15121:24;:32::i;:::-;-1:-1:-1;;;;;15098:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15169:35;;;;;;;;;;15197:6;1662:25:1;;1650:2;1635:18;;1516:177;15169:35:0;;;;;;;;-1:-1:-1;15222:4:0;14904:330;;;;;:::o;569:192::-;655:7;691:12;683:6;;;;675:29;;;;-1:-1:-1;;;675:29:0;;;;;;;;:::i;:::-;-1:-1:-1;715:9:0;727:5;731:1;727;:5;:::i;:::-;715:17;569:192;-1:-1:-1;;;;;569:192:0:o;13435:1457::-;13527:4;13557:5;;-1:-1:-1;;;;;13548:14:0;;;13557:5;;13548:14;;;;:35;;-1:-1:-1;13578:5:0;;-1:-1:-1;;;;;13566:17:0;;;13578:5;;13566:17;;13548:35;13544:89;;;13593:11;;;;13585:48;;;;-1:-1:-1;;;13585:48:0;;5817:2:1;13585:48:0;;;5799:21:1;5856:2;5836:18;;;5829:30;5895:26;5875:18;;;5868:54;5939:18;;13585:48:0;5615:348:1;13585:48:0;-1:-1:-1;;;;;13694:13:0;;;;;;:5;:13;;;;;;;;13693:14;:35;;;;-1:-1:-1;;;;;;13712:16:0;;;;;;:5;:16;;;;;;;;13711:17;13693:35;13684:57;;;;-1:-1:-1;;;13684:57:0;;6170:2:1;13684:57:0;;;6152:21:1;6209:1;6189:18;;;6182:29;-1:-1:-1;;;6227:18:1;;;6220:38;6275:18;;13684:57:0;5968:331:1;13684:57:0;13756:8;;;;;;;13752:130;;;13794:5;;-1:-1:-1;;;;;13786:13:0;;;13794:5;;13786:13;;;;:34;;-1:-1:-1;13815:5:0;;-1:-1:-1;;;;;13803:17:0;;;13815:5;;13803:17;;13786:34;13782:80;;;13839:6;;13831;:14;;13822:40;;;;-1:-1:-1;;;13822:40:0;;6506:2:1;13822:40:0;;;6488:21:1;6545:2;6525:18;;;6518:30;-1:-1:-1;;;6564:18:1;;;6557:42;6616:18;;13822:40:0;6304:336:1;13822:40:0;13913:10;;:14;;13926:1;13913:14;:::i;:::-;13896:12;:32;13892:139;;-1:-1:-1;;;;;13946:16:0;;;;;;:5;:16;;;;;;;;:23;;13965:4;-1:-1:-1;;13946:23:0;;;;;;;;13984:16;:27;;;;;:34;;;;;;;;;;13892:139;14053:6;;-1:-1:-1;;;14053:6:0;;;;14050:63;;;14069:41;14084:6;14092:9;14103:6;14069:14;:41::i;:::-;14062:48;;;;14050:63;14184:4;;14135:19;;-1:-1:-1;;;;;14173:15:0;;;14184:4;;14173:15;:47;;;;-1:-1:-1;14210:4:0;14219:1;12371:18;;;:9;:18;;;;;;14192:28;14173:47;14135:86;;14235:14;14232:33;;;14252:10;:8;:10::i;:::-;14297:53;;;;;;;;;;;-1:-1:-1;;;14297:53:0;;;;;;;;-1:-1:-1;;;;;14297:17:0;;-1:-1:-1;14297:17:0;;;:9;:17;;;;;;;;:53;;14319:6;;14297:21;:53::i;:::-;-1:-1:-1;;;;;14277:17:0;;;;;;:9;:17;;;;;:73;;;;14388:32;14287:6;14410:9;14388:13;:32::i;:::-;:67;;14449:6;14388:67;;;14423:23;14431:6;14439;14423:7;:23::i;:::-;-1:-1:-1;;;;;14499:20:0;;;;;;:9;:20;;;;;;14363:92;;-1:-1:-1;14499:40:0;;14363:92;14499:24;:40::i;:::-;-1:-1:-1;;;;;14476:20:0;;;;;;;:9;:20;;;;;:63;;;;14565:4;;14555:14;;;14565:4;;14555:14;;;;:43;;-1:-1:-1;;;;;;14574:24:0;;;;;;:16;:24;;;;;;;;14573:25;14555:43;14552:114;;;14605:11;;-1:-1:-1;;;;;14634:17:0;;;14605:11;14634:17;;;:9;:17;;;;;;;;14605:47;;-1:-1:-1;;;14605:47:0;;;;;6952:51:1;;;;7019:18;;;7012:34;14605:11:0;;;:20;;6925:18:1;;14605:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14601:63;;14692:4;;-1:-1:-1;;;;;14679:17:0;;;14692:4;;14679:17;;;;:49;;-1:-1:-1;;;;;;14701:27:0;;;;;;:16;:27;;;;;;;;14700:28;14679:49;14676:126;;;14735:11;;-1:-1:-1;;;;;14767:20:0;;;14735:11;14767:20;;;:9;:20;;;;;;;;14735:53;;-1:-1:-1;;;14735:53:0;;;;;6952:51:1;;;;7019:18;;;7012:34;14735:11:0;;;:20;;6925:18:1;;14735:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14731:69;;14836:9;-1:-1:-1;;;;;14819:43:0;14828:6;-1:-1:-1;;;;;14819:43:0;;14847:14;14819:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;14819:43:0;;;;;;;;-1:-1:-1;14880:4:0;;13435:1457;-1:-1:-1;;;;;13435:1457:0:o;427:136::-;485:7;512:43;516:1;519;512:43;;;;;;;;;;;;;;;;;:3;:43::i;16973:337::-;-1:-1:-1;;;;;17060:23:0;;17078:4;17060:23;;;;:41;;-1:-1:-1;17097:4:0;;-1:-1:-1;;;;;17087:14:0;;;17097:4;;17087:14;;17060:41;17052:50;;;;;;-1:-1:-1;;;;;17113:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;17113:33:0;;;;;;;;;;;;17157:146;;17182:11;;:31;;-1:-1:-1;;;17182:31:0;;-1:-1:-1;;;;;6970:32:1;;;17182:31:0;;;6952:51:1;17182:11:0;7019:18:1;;;7012:34;17182:11:0;;;;:20;;6925:18:1;;17182:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16676:158;;:::o;17157:146::-;17244:11;;-1:-1:-1;;;;;17273:17:0;;;17244:11;17273:17;;;:9;:17;;;;;;;;17244:47;;-1:-1:-1;;;17244:47:0;;;;;6952:51:1;;;;7019:18;;;7012:34;17244:11:0;;;:20;;6925:18:1;;17244:47:0;6778:274:1;240:181:0;298:7;;330:5;334:1;330;:5;:::i;:::-;318:17;;359:1;354;:6;;346:46;;;;-1:-1:-1;;;346:46:0;;7546:2:1;346:46:0;;;7528:21:1;7585:2;7565:18;;;7558:30;7624:29;7604:18;;;7597:57;7671:18;;346:46:0;7344:351:1;15826:701:0;10930:6;:13;;-1:-1:-1;;;;10930:13:0;-1:-1:-1;;;10930:13:0;;;15916:4:::1;-1:-1:-1::0;12371:18:0;;;:9;:18;;;;;;15959:16:::1;::::0;;15973:1:::1;15959:16:::0;;;;;::::1;::::0;;;15875:47;;-1:-1:-1;15935:21:0::1;::::0;15959:16;::::1;;;;;;;;;;;::::0;-1:-1:-1;15959:16:0::1;15935:40;;16004:4;15986;15991:1;15986:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15986:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16030:4:::1;::::0;;16020:7;;16030:4;::::1;::::0;16020;;16030;16020:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;16020:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16057:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16057:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16129:12;;16057:6:::1;::::0;16172:4;;16199::::1;::::0;16219:15:::1;::::0;16057:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16266:22;16291:30;16319:1;16292:21;16291:27;;:30;;;;:::i;:::-;16266:55:::0;-1:-1:-1;16332:23:0::1;16358:30;16359:21;16386:1;16358:27;:30::i;:::-;16424:15;::::0;16416:50:::1;::::0;16332:56;;-1:-1:-1;;;;;;16424:15:0::1;::::0;16416:50;::::1;;;::::0;16332:56;;16424:15:::1;16416:50:::0;16424:15;16416:50;16332:56;16424:15;16416:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;16485:8:0::1;::::0;16477:42:::1;::::0;-1:-1:-1;;;;;16485:8:0;;::::1;::::0;16477:42;::::1;;;::::0;16504:14;;16485:8:::1;16477:42:::0;16485:8;16477:42;16504:14;16485:8;16477:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10948:6:0;:14;;-1:-1:-1;;;;10948:14:0;;;-1:-1:-1;;;15826:701:0:o;15245:206::-;-1:-1:-1;;;;;15354:19:0;;15326:4;15354:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;15377:22:0;;;;;;:11;:22;;;;;;;;15354:45;15352:48;:90;;;;-1:-1:-1;15416:4:0;;-1:-1:-1;;;;;15406:14:0;;;15416:4;;15406:14;;:35;;-1:-1:-1;;15437:4:0;;-1:-1:-1;;;;;15437:4:0;;;15424:17;;;;15245:206;-1:-1:-1;15245:206:0:o;15459:354::-;15526:7;15546:17;15586:40;15611:14;;15586:20;15597:8;;15586:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;15682:4;15664:24;;;;:9;:24;;;;;;15574:52;;-1:-1:-1;15664:39:0;;15574:52;15664:28;:39::i;:::-;15655:4;15637:24;;;;:9;:24;;;;;;;:66;;;;15719:42;;-1:-1:-1;;;;;15719:42:0;;;;;;;15751:9;1662:25:1;;1650:2;1635:18;;1516:177;15719:42:0;;;;;;;;15784:21;:6;15795:9;15784:10;:21::i;:::-;15777:28;15459:354;-1:-1:-1;;;;15459:354:0:o;1023:132::-;1081:7;1108:39;1112:1;1115;1108:39;;;;;;;;;;;;;;;;;:3;:39::i;767:250::-;825:7;849:1;854;849:6;845:47;;-1:-1:-1;879:1:0;872:8;;845:47;904:9;916:5;920:1;916;:5;:::i;:::-;904:17;-1:-1:-1;949:1:0;940:5;944:1;904:17;940:5;:::i;:::-;:10;932:56;;;;-1:-1:-1;;;932:56:0;;9546:2:1;932:56:0;;;9528:21:1;9585:2;9565:18;;;9558:30;9624:34;9604:18;;;9597:62;-1:-1:-1;;;9675:18:1;;;9668:31;9716:19;;932:56:0;9344:397:1;1161:345:0;1247:7;1349:12;1342:5;1334:28;;;;-1:-1:-1;;;1334:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1373:9:0;1385:5;1389:1;1385;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;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;2533:416::-;2598:6;2606;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2714:9;2701:23;2733:31;2758:5;2733:31;:::i;:::-;2783:5;-1:-1:-1;2840:2:1;2825:18;;2812:32;2882:15;;2875:23;2863:36;;2853:64;;2913:1;2910;2903:12;2853:64;2936:7;2926:17;;;2533:416;;;;;:::o;3386:388::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3570:9;3557:23;3589:31;3614:5;3589:31;:::i;:::-;3639:5;-1:-1:-1;3696:2:1;3681:18;;3668:32;3709:33;3668:32;3709:33;:::i;4265:329::-;4467:2;4449:21;;;4506:1;4486:18;;;4479:29;-1:-1:-1;;;4539:2:1;4524:18;;4517:36;4585:2;4570:18;;4265:329::o;4599:184::-;4669:6;4722:2;4710:9;4701:7;4697:23;4693:32;4690:52;;;4738:1;4735;4728:12;4690:52;-1:-1:-1;4761:16:1;;4599:184;-1:-1:-1;4599:184:1:o;5353:127::-;5414:10;5409:3;5405:20;5402:1;5395:31;5445:4;5442:1;5435:15;5469:4;5466:1;5459:15;5485:125;5525:4;5553:1;5550;5547:8;5544:34;;;5558:18;;:::i;:::-;-1:-1:-1;5595:9:1;;5485:125::o;6645:128::-;6685:3;6716:1;6712:6;6709:1;6706:13;6703:39;;;6722:18;;:::i;:::-;-1:-1:-1;6758:9:1;;6645:128::o;7832:127::-;7893:10;7888:3;7884:20;7881:1;7874:31;7924:4;7921:1;7914:15;7948:4;7945:1;7938:15;7964:980;8226:4;8274:3;8263:9;8259:19;8305:6;8294:9;8287:25;8331:2;8369:6;8364:2;8353:9;8349:18;8342:34;8412:3;8407:2;8396:9;8392:18;8385:31;8436:6;8471;8465:13;8502:6;8494;8487:22;8540:3;8529:9;8525:19;8518:26;;8579:2;8571:6;8567:15;8553:29;;8600:1;8610:195;8624:6;8621:1;8618:13;8610:195;;;8689:13;;-1:-1:-1;;;;;8685:39:1;8673:52;;8780:15;;;;8745:12;;;;8721:1;8639:9;8610:195;;;-1:-1:-1;;;;;;;8861:32:1;;;;8856:2;8841:18;;8834:60;-1:-1:-1;;;8925:3:1;8910:19;8903:35;8822:3;7964:980;-1:-1:-1;;;7964:980:1:o;8949:168::-;8989:7;9055:1;9051;9047:6;9043:14;9040:1;9037:21;9032:1;9025:9;9018:17;9014:45;9011:71;;;9062:18;;:::i;:::-;-1:-1:-1;9102:9:1;;8949:168::o;9122:217::-;9162:1;9188;9178:132;;9232:10;9227:3;9223:20;9220:1;9213:31;9267:4;9264:1;9257:15;9295:4;9292:1;9285:15;9178:132;-1:-1:-1;9324:9:1;;9122:217::o
Swarm Source
ipfs://e179f3bc1113d703520453d4fd366ca243a825978ecb344678bf81ca1ea0c3fe
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.