Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
690,420,000,000,000,000,000 MOGP
Holders
23
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MogPrinter
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.0; /** * 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; } } /** * ERC20 standard interface. */ interface IERC20 { 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(uint256 amount) external; function claimDividend(address shareholder) external; function getDividendsClaimedOf (address shareholder) external returns (uint256); } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address public _token; address public _owner; address public immutable MOG = address(0xaaeE1A9723aaDB7afA2810263653A34bA2C21C7a); //UNI 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) { _token = msg.sender; _owner = owner; } 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(uint256 amount) external override onlyToken { if (amount > 0) { 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); IERC20(MOG).transfer(shareholder, 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 getDividendsClaimedOf (address shareholder) external view returns (uint256) { require (shares[shareholder].amount > 0, "You're not a PRINTER shareholder!"); return shares[shareholder].totalClaimed; } } contract MogPrinter is IERC20, Auth { using SafeMath for uint256; address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; address public immutable MOG = address(0xaaeE1A9723aaDB7afA2810263653A34bA2C21C7a); //UNI string private constant _name = unicode"MOG Printer 👓🖨️"; string private constant _symbol = "MOGP"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 690420000000 * (10 ** _decimals); uint256 private _maxTxAmountBuy = _totalSupply; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private cooldown; mapping (address => bool) private isFeeExempt; mapping (address => bool) private isDividendExempt; mapping (address => bool) private isBot; uint256 private totalFee = 14; uint256 private feeDenominator = 100; address payable public marketingWallet = payable(0x260e8E6dFf9D623EE3f631FD72F44BCE83D07679); IDEXRouter public router; address public pair; uint256 public launchedAt; bool private tradingOpen; bool private buyLimit = true; uint256 private maxBuy = 10356300000 * (10 ** _decimals); uint256 public numTokensSellToAddToLiquidity = 2761680000 * 10**9; DividendDistributor private distributor; bool public blacklistEnabled = false; 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); isFeeExempt[_owner] = true; isFeeExempt[marketingWallet] = 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 if (blacklistEnabled) { require (!isBot[sender] && !isBot[recipient], "Bot!"); } if (buyLimit) { if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir"); } if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) { require (cooldown[recipient] < block.timestamp); cooldown[recipient] = block.timestamp + 60 seconds; } if(inSwap){ return _basicTransfer(sender, recipient, amount); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; bool shouldSwapBack = (overMinTokenBalance && 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)); swapTokensForEth(amountToSwap.div(2)); swapTokensForMOG(amountToSwap.div(2)); uint256 dividends = IERC20(MOG).balanceOf(address(this)); bool success = IERC20(MOG).transfer(address(distributor), dividends); if (success) { distributor.deposit(dividends); } payable(marketingWallet).transfer(address(this).balance); } function swapTokensForMOG(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = WETH; path[2] = MOG; // make the swap router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner, block.timestamp ); } function openTrading() external onlyOwner { launchedAt = block.number; tradingOpen = true; } function setBot(address _address, bool toggle) external onlyOwner { isBot[_address] = toggle; _setIsDividendExempt(_address, toggle); } 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 <= 14, "Fee can't exceed 14%"); 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 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; } function checkBot(address account) public view returns (bool) { return isBot[account]; } function setBlacklistEnabled() external onlyOwner { require (blacklistEnabled == false, "can only be called once"); blacklistEnabled = true; } function setSwapThresholdAmount (uint256 amount) external onlyOwner { require (amount <= _totalSupply.div(100), "can't exceed 1%"); numTokensSellToAddToLiquidity = amount * 10 ** 9; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
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":[],"name":"MOG","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":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073aaee1a9723aadb7afa2810263653a34ba2c21c7a73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000e0919062000a90565b64a0c03d2500620000f2919062000ae1565b600455600454600555600e600c556064600d5573260e8e6dff9d623ee3f631fd72f44bce83d07679600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260016101000a81548160ff0219169083151502179055506009600a62000185919062000a90565b6402694898e062000197919062000ae1565b6013556726537553f74d00006014556000601560146101000a81548160ff021916908315150217905550348015620001ce57600080fd5b5060405162006872380380620068728339818101604052810190620001f4919062000b96565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031f919062000b96565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f3919062000b96565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200045192919062000bd9565b6020604051808303816000875af115801562000471573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000497919062000b96565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080604051620005a990620008e8565b620005b5919062000c06565b604051809103906000f080158015620005d2573d6000803e3d6000fd5b50601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620008d9919062000c34565b60405180910390a35062000c51565b611a8b8062004de783390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000984578086048111156200095c576200095b620008f6565b5b60018516156200096c5780820291505b80810290506200097c8562000925565b94506200093c565b94509492505050565b6000826200099f576001905062000a72565b81620009af576000905062000a72565b8160018114620009c85760028114620009d35762000a09565b600191505062000a72565b60ff841115620009e857620009e7620008f6565b5b8360020a91508482111562000a025762000a01620008f6565b5b5062000a72565b5060208310610133831016604e8410600b841016171562000a435782820a90508381111562000a3d5762000a3c620008f6565b5b62000a72565b62000a52848484600162000932565b9250905081840481111562000a6c5762000a6b620008f6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a9d8262000a79565b915062000aaa8362000a83565b925062000ad97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200098d565b905092915050565b600062000aee8262000a79565b915062000afb8362000a79565b925082820262000b0b8162000a79565b9150828204841483151762000b255762000b24620008f6565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b5e8262000b31565b9050919050565b62000b708162000b51565b811462000b7c57600080fd5b50565b60008151905062000b908162000b65565b92915050565b60006020828403121562000baf5762000bae62000b2c565b5b600062000bbf8482850162000b7f565b91505092915050565b62000bd38162000b51565b82525050565b600060408201905062000bf0600083018562000bc8565b62000bff602083018462000bc8565b9392505050565b600060208201905062000c1d600083018462000bc8565b92915050565b62000c2e8162000a79565b82525050565b600060208201905062000c4b600083018462000c23565b92915050565b60805161416562000c8260003960008181611a8a01528181612ad601528181612b74015261330c01526141656000f3fe6080604052600436106102345760003560e01c8063736a83a11161012e578063bffb691d116100ab578063f2fde38b1161006f578063f2fde38b14610860578063f429389014610889578063f708a64f146108a0578063f887ea40146108c9578063fb796bb0146108f45761023b565b8063bffb691d1461079f578063c9567bf9146107ca578063d12a7688146107e1578063dd62ed3e1461080c578063f0fc6bca146108495761023b565b806395d89b41116100f257806395d89b41146106a4578063a8aa1b31146106cf578063a9059cbb146106fa578063b1a4e0dc14610737578063bf56b371146107745761023b565b8063736a83a1146105cf57806375f0a874146105fa578063764ca51214610625578063893d20e81461063c5780638ecc37fb146106675761023b565b8063313ce567116101bc5780635d098b38116101805780635d098b38146104ec578063658d4b7f1461051557806367ee5f091461053e57806369fe0e2d1461056957806370a08231146105925761023b565b8063313ce56714610407578063342aa8b5146104325780633e07ce5b1461045b578063571ac8b0146104725780635cc33f74146104af5761023b565b806323b635851161020357806323b63585146102fc57806323b872dd1461033957806329e04b4a146103765780632b112e491461039f5780632f54bf6e146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806315f7e05e146102a857806318160ddd146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561091f565b604051610262919061351d565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906135d8565b61095c565b60405161029f9190613633565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca919061364e565b610a4e565b005b3480156102dd57600080fd5b506102e6610b26565b6040516102f3919061368a565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906136a5565b610b30565b6040516103309190613633565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b91906136d2565b610bae565b60405161036d9190613633565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906136a5565b610dae565b005b3480156103ab57600080fd5b506103b4610e67565b6040516103c1919061368a565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec919061364e565b610ee9565b6040516103fe9190613633565b60405180910390f35b34801561041357600080fd5b5061041c610f42565b6040516104299190613741565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613788565b610f4b565b005b34801561046757600080fd5b50610470610ff8565b005b34801561047e57600080fd5b506104996004803603810190610494919061364e565b61105d565b6040516104a69190613633565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d1919061364e565b611090565b6040516104e3919061368a565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061364e565b611135565b005b34801561052157600080fd5b5061053c60048036038101906105379190613788565b6111c1565b005b34801561054a57600080fd5b50610553611264565b604051610560919061368a565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b91906136a5565b6112fc565b005b34801561059e57600080fd5b506105b960048036038101906105b4919061364e565b611392565b6040516105c6919061368a565b60405180910390f35b3480156105db57600080fd5b506105e46113db565b6040516105f1919061368a565b60405180910390f35b34801561060657600080fd5b5061060f611473565b60405161061c91906137e9565b60405180910390f35b34801561063157600080fd5b5061063a611499565b005b34801561064857600080fd5b50610651611554565b60405161065e9190613813565b60405180910390f35b34801561067357600080fd5b5061068e6004803603810190610689919061364e565b61157d565b60405161069b919061368a565b60405180910390f35b3480156106b057600080fd5b506106b9611622565b6040516106c6919061351d565b60405180910390f35b3480156106db57600080fd5b506106e461165f565b6040516106f19190613813565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c91906135d8565b611685565b60405161072e9190613633565b60405180910390f35b34801561074357600080fd5b5061075e6004803603810190610759919061364e565b61169a565b60405161076b9190613633565b60405180910390f35b34801561078057600080fd5b506107896116f0565b604051610796919061368a565b60405180910390f35b3480156107ab57600080fd5b506107b46116f6565b6040516107c19190613633565b60405180910390f35b3480156107d657600080fd5b506107df611709565b005b3480156107ed57600080fd5b506107f6611775565b604051610803919061368a565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e919061382e565b61177b565b604051610840919061368a565b60405180910390f35b34801561085557600080fd5b5061085e611802565b005b34801561086c57600080fd5b506108876004803603810190610882919061389a565b611891565b005b34801561089557600080fd5b5061089e611953565b005b3480156108ac57600080fd5b506108c760048036038101906108c29190613788565b611a0c565b005b3480156108d557600080fd5b506108de611a62565b6040516108eb9190613926565b60405180910390f35b34801561090057600080fd5b50610909611a88565b6040516109169190613813565b60405180910390f35b60606040518060400160405280601781526020017f4d4f47205072696e74657220f09f9193f09f96a8efb88f000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3c919061368a565b60405180910390a36001905092915050565b610a5733610ee9565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d9061398d565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610af19190613813565b600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b3b33610ee9565b610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b719061398d565b60405180910390fd5b610ba730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d9a57610d19826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610da5848484611ce3565b90509392505050565b610db733610ee9565b610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded9061398d565b60405180910390fd5b610e0c606460045461272990919063ffffffff16565b811115610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e45906139f9565b60405180910390fd5b633b9aca0081610e5e9190613a48565b60148190555050565b6000610ee4610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611392565b610ed6610ec5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611392565b60045461277390919063ffffffff16565b61277390919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610f5433610ee9565b610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a9061398d565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ff482826127bd565b5050565b61100133610ee9565b611040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110379061398d565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000611089827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61095c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016110ed9190613813565b602060405180830381865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190613a9f565b9050919050565b61113e33610ee9565b61117d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111749061398d565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ca33610ee9565b611209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112009061398d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f79190613a9f565b905090565b61130533610ee9565b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b9061398d565b60405180910390fd5b600e811115611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613b18565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146e9190613a9f565b905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114a233610ee9565b6114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d89061398d565b60405180910390fd5b60001515601560149054906101000a900460ff16151514611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90613b84565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016115da9190613813565b602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190613a9f565b9050919050565b60606040518060400160405280600481526020017f4d4f475000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611692338484611ce3565b905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601560149054906101000a900460ff1681565b61171233610ee9565b611751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117489061398d565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60145481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161185d9190613813565b600060405180830381600087803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050565b61189a33610ee9565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061398d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516119489190613bc5565b60405180910390a150565b61195c33610ee9565b61199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119929061398d565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a08573d6000803e3d6000fd5b5050565b611a1533610ee9565b611a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4b9061398d565b60405180910390fd5b611a5e82826127bd565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611b37826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bcc82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c6c919061368a565b60405180910390a3600190509392505050565b6000838311158290611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe919061351d565b60405180910390fd5b5060008385611cd69190613be0565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d8e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611de357601260009054906101000a900460ff16611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd990613c60565b60405180910390fd5b5b601560149054906101000a900460ff1615611edc57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290613ccc565b60405180910390fd5b5b601260019054906101000a900460ff1615611fe55760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f99575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fe457601354821115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d38565b60405180910390fd5b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120905750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120e65750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121875742600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061213657600080fd5b603c426121439190613d58565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60158054906101000a900460ff16156121ac576121a5848484611aac565b9050612722565b60006121b730611392565b905060006014548210159050600081801561221f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156122335750600061223130611392565b115b9050801561224457612243612a73565b5b6122cd856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061231c8888612d50565b6123265785612331565b6123308887612ead565b5b905061238581600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156124705750600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612511929190613d8c565b600060405180830381600087803b15801561252b57600080fd5b505af192505050801561253c575060015b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156125e65750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126b457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612687929190613d8c565b600060405180830381600087803b1580156126a157600080fd5b505af19250505080156126b2575060015b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612711919061368a565b60405180910390a360019450505050505b9392505050565b600061276b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff1565b905092915050565b60006127b583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7f565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128475750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61285057600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561294257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161290b929190613df0565b600060405180830381600087803b15801561292557600080fd5b505af1158015612939573d6000803e3d6000fd5b50505050612a11565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129de929190613d8c565b600060405180830381600087803b1580156129f857600080fd5b505af1158015612a0c573d6000803e3d6000fd5b505050505b5050565b6000808284612a249190613d58565b905083811015612a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6090613e65565b60405180910390fd5b8091505092915050565b60016015806101000a81548160ff0219169083151502179055506000612a9830611392565b9050612ab6612ab160028361272990919063ffffffff16565b613054565b612ad2612acd60028361272990919063ffffffff16565b6131fc565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612b2d9190613813565b602060405180830381865afa158015612b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6e9190613a9f565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612bef929190613d8c565b6020604051808303816000875af1158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190613e9a565b90508015612cc857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401612c95919061368a565b600060405180830381600087803b158015612caf57600080fd5b505af1158015612cc3573d6000803e3d6000fd5b505050505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612d30573d6000803e3d6000fd5b5050505060006015806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612df35750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612ea55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612ea45750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612ed9600d54612ecb600c548661341390919063ffffffff16565b61272990919063ffffffff16565b9050612f2d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fcd919061368a565b60405180910390a3612fe8818461277390919063ffffffff16565b91505092915050565b60008083118290613038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302f919061351d565b60405180910390fd5b50600083856130479190613ef6565b9050809150509392505050565b6000600267ffffffffffffffff81111561307157613070613f27565b5b60405190808252806020026020018201604052801561309f5781602001602082028036833780820191505090505b50905030816000815181106130b7576130b6613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061312857613127613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131c6959493929190614043565b600060405180830381600087803b1580156131e057600080fd5b505af11580156131f4573d6000803e3d6000fd5b505050505050565b6000600367ffffffffffffffff81111561321957613218613f27565b5b6040519080825280602002602001820160405280156132475781602001602082028036833780820191505090505b509050308160008151811061325f5761325e613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106132d0576132cf613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061333f5761333e613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b81526004016133dd959493929190614043565b600060405180830381600087803b1580156133f757600080fd5b505af115801561340b573d6000803e3d6000fd5b505050505050565b60008083036134255760009050613487565b600082846134339190613a48565b90508284826134429190613ef6565b14613482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134799061410f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134c75780820151818401526020810190506134ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006134ef8261348d565b6134f98185613498565b93506135098185602086016134a9565b613512816134d3565b840191505092915050565b6000602082019050818103600083015261353781846134e4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061356f82613544565b9050919050565b61357f81613564565b811461358a57600080fd5b50565b60008135905061359c81613576565b92915050565b6000819050919050565b6135b5816135a2565b81146135c057600080fd5b50565b6000813590506135d2816135ac565b92915050565b600080604083850312156135ef576135ee61353f565b5b60006135fd8582860161358d565b925050602061360e858286016135c3565b9150509250929050565b60008115159050919050565b61362d81613618565b82525050565b60006020820190506136486000830184613624565b92915050565b6000602082840312156136645761366361353f565b5b60006136728482850161358d565b91505092915050565b613684816135a2565b82525050565b600060208201905061369f600083018461367b565b92915050565b6000602082840312156136bb576136ba61353f565b5b60006136c9848285016135c3565b91505092915050565b6000806000606084860312156136eb576136ea61353f565b5b60006136f98682870161358d565b935050602061370a8682870161358d565b925050604061371b868287016135c3565b9150509250925092565b600060ff82169050919050565b61373b81613725565b82525050565b60006020820190506137566000830184613732565b92915050565b61376581613618565b811461377057600080fd5b50565b6000813590506137828161375c565b92915050565b6000806040838503121561379f5761379e61353f565b5b60006137ad8582860161358d565b92505060206137be85828601613773565b9150509250929050565b60006137d382613544565b9050919050565b6137e3816137c8565b82525050565b60006020820190506137fe60008301846137da565b92915050565b61380d81613564565b82525050565b60006020820190506138286000830184613804565b92915050565b600080604083850312156138455761384461353f565b5b60006138538582860161358d565b92505060206138648582860161358d565b9150509250929050565b613877816137c8565b811461388257600080fd5b50565b6000813590506138948161386e565b92915050565b6000602082840312156138b0576138af61353f565b5b60006138be84828501613885565b91505092915050565b6000819050919050565b60006138ec6138e76138e284613544565b6138c7565b613544565b9050919050565b60006138fe826138d1565b9050919050565b6000613910826138f3565b9050919050565b61392081613905565b82525050565b600060208201905061393b6000830184613917565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613977600683613498565b915061398282613941565b602082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006139e3600f83613498565b91506139ee826139ad565b602082019050919050565b60006020820190508181036000830152613a12816139d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a53826135a2565b9150613a5e836135a2565b9250828202613a6c816135a2565b91508282048414831517613a8357613a82613a19565b5b5092915050565b600081519050613a99816135ac565b92915050565b600060208284031215613ab557613ab461353f565b5b6000613ac384828501613a8a565b91505092915050565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b6000613b02601483613498565b9150613b0d82613acc565b602082019050919050565b60006020820190508181036000830152613b3181613af5565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613b6e601783613498565b9150613b7982613b38565b602082019050919050565b60006020820190508181036000830152613b9d81613b61565b9050919050565b6000613baf826138f3565b9050919050565b613bbf81613ba4565b82525050565b6000602082019050613bda6000830184613bb6565b92915050565b6000613beb826135a2565b9150613bf6836135a2565b9250828203905081811115613c0e57613c0d613a19565b5b92915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613c4a601883613498565b9150613c5582613c14565b602082019050919050565b60006020820190508181036000830152613c7981613c3d565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b6000613cb6600483613498565b9150613cc182613c80565b602082019050919050565b60006020820190508181036000830152613ce581613ca9565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613d22600c83613498565b9150613d2d82613cec565b602082019050919050565b60006020820190508181036000830152613d5181613d15565b9050919050565b6000613d63826135a2565b9150613d6e836135a2565b9250828201905080821115613d8657613d85613a19565b5b92915050565b6000604082019050613da16000830185613804565b613dae602083018461367b565b9392505050565b6000819050919050565b6000613dda613dd5613dd084613db5565b6138c7565b6135a2565b9050919050565b613dea81613dbf565b82525050565b6000604082019050613e056000830185613804565b613e126020830184613de1565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e4f601b83613498565b9150613e5a82613e19565b602082019050919050565b60006020820190508181036000830152613e7e81613e42565b9050919050565b600081519050613e948161375c565b92915050565b600060208284031215613eb057613eaf61353f565b5b6000613ebe84828501613e85565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f01826135a2565b9150613f0c836135a2565b925082613f1c57613f1b613ec7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fba81613564565b82525050565b6000613fcc8383613fb1565b60208301905092915050565b6000602082019050919050565b6000613ff082613f85565b613ffa8185613f90565b935061400583613fa1565b8060005b8381101561403657815161401d8882613fc0565b975061402883613fd8565b925050600181019050614009565b5085935050505092915050565b600060a082019050614058600083018861367b565b6140656020830187613de1565b81810360408301526140778186613fe5565b90506140866060830185613804565b614093608083018461367b565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140f9602183613498565b91506141048261409d565b604082019050919050565b60006020820190508181036000830152614128816140ec565b905091905056fea264697066735822122057ea90c5817a312036b9ce87fd69847556e8dbda56ab6081fac8f21953eeb25164736f6c6343000811003360a060405273aaee1a9723aadb7afa2810263653a34ba2c21c7a73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506ec097ce7bc90715b34b9f10000000006009553480156200006b57600080fd5b5060405162001a8b38038062001a8b833981810160405281019062000091919062000183565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001b5565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200014b826200011e565b9050919050565b6200015d816200013e565b81146200016957600080fd5b50565b6000815190506200017d8162000152565b92915050565b6000602082840312156200019c576200019b62000119565b5b6000620001ac848285016200016c565b91505092915050565b6080516118b3620001d860003960008181610a8e0152610c5a01526118b36000f3fe6080604052600436106100e15760003560e01c8063b2bdfa7b1161007f578063d54ad2a111610059578063d54ad2a1146102cb578063e2d2e219146102f6578063ecd0c0c314610321578063fb796bb01461034c576100e8565b8063b2bdfa7b14610238578063b6b55f2514610263578063ce7c2ac21461028c576100e8565b80633a98ef39116100bb5780633a98ef39146101685780635cc33f74146101935780638ecc37fb146101d0578063997664d71461020d576100e8565b80631014edf5146100ed57806314b6ca961461011657806315f7e05e1461013f576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f91906112b1565b610377565b005b34801561012257600080fd5b5061013d600480360381019061013891906112f1565b610431565b005b34801561014b57600080fd5b5061016660048036038101906101619190611331565b6106f0565b005b34801561017457600080fd5b5061017d610754565b60405161018a919061136d565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b59190611331565b61075a565b6040516101c7919061136d565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f29190611331565b61082a565b604051610204919061136d565b60405180910390f35b34801561021957600080fd5b50610222610943565b60405161022f919061136d565b60405180910390f35b34801561024457600080fd5b5061024d610949565b60405161025a9190611397565b60405180910390f35b34801561026f57600080fd5b5061028a600480360381019061028591906113b2565b61096f565b005b34801561029857600080fd5b506102b360048036038101906102ae9190611331565b610a32565b6040516102c2939291906113df565b60405180910390f35b3480156102d757600080fd5b506102e0610a5c565b6040516102ed919061136d565b60405180910390f35b34801561030257600080fd5b5061030b610a62565b604051610318919061136d565b60405180910390f35b34801561032d57600080fd5b50610336610a68565b6040516103439190611397565b60405180910390f35b34801561035857600080fd5b50610361610a8c565b60405161036e9190611397565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d157600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc600085116103fe5782610400565b845b9081150290604051600060405180830381858888f1935050505015801561042b573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461048957600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104de576104dd82610ab0565b5b60008111801561053057506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105435761053e82610cfd565b6105a5565b60008114801561059557506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105a4576105a382610dac565b5b5b61060e81610600600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600554610fb390919063ffffffff16565b610ffd90919063ffffffff16565b60058190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506106a6600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461074857600080fd5b61075181610ab0565b50565b60055481565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d790611499565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540361087e576000905061093e565b60006108cb600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116109265760009250505061093e565b6109398183610fb390919063ffffffff16565b925050505b919050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c757600080fd5b6000811115610a2f576109e581600654610ffd90919063ffffffff16565b600681905550610a28610a17600554610a098460095461108d90919063ffffffff16565b61110790919063ffffffff16565b600854610ffd90919063ffffffff16565b6008819055505b50565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60075481565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540315610cfa576000610b068261082a565b90506000811115610cf857610b2681600754610ffd90919063ffffffff16565b600781905550610b8181600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610ffd90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c12600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610cb39291906114b9565b6020604051808303816000875af1158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf6919061151a565b505b505b50565b600280549050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026001600280549050610dc09190611576565b81548110610dd157610dd06115aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e4f57610e4e6115aa565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060026001600280549050610eef9190611576565b81548110610f0057610eff6115aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002805480610f7b57610f7a6115d9565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610ff583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611151565b905092915050565b600080828461100c9190611608565b905083811015611051576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104890611688565b60405180910390fd5b8091505092915050565b60006110866009546110786008548561108d90919063ffffffff16565b61110790919063ffffffff16565b9050919050565b600080830361109f5760009050611101565b600082846110ad91906116a8565b90508284826110bc9190611719565b146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f3906117bc565b60405180910390fd5b809150505b92915050565b600061114983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111b5565b905092915050565b6000838311158290611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190919061185b565b60405180910390fd5b50600083856111a89190611576565b9050809150509392505050565b600080831182906111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f3919061185b565b60405180910390fd5b506000838561120b9190611719565b9050809150509392505050565b600080fd5b6000819050919050565b6112308161121d565b811461123b57600080fd5b50565b60008135905061124d81611227565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061127e82611253565b9050919050565b61128e81611273565b811461129957600080fd5b50565b6000813590506112ab81611285565b92915050565b600080604083850312156112c8576112c7611218565b5b60006112d68582860161123e565b92505060206112e78582860161129c565b9150509250929050565b6000806040838503121561130857611307611218565b5b60006113168582860161129c565b92505060206113278582860161123e565b9150509250929050565b60006020828403121561134757611346611218565b5b60006113558482850161129c565b91505092915050565b6113678161121d565b82525050565b6000602082019050611382600083018461135e565b92915050565b61139181611273565b82525050565b60006020820190506113ac6000830184611388565b92915050565b6000602082840312156113c8576113c7611218565b5b60006113d68482850161123e565b91505092915050565b60006060820190506113f4600083018661135e565b611401602083018561135e565b61140e604083018461135e565b949350505050565b600082825260208201905092915050565b7f596f75277265206e6f742061205052494e544552207368617265686f6c64657260008201527f2100000000000000000000000000000000000000000000000000000000000000602082015250565b6000611483602183611416565b915061148e82611427565b604082019050919050565b600060208201905081810360008301526114b281611476565b9050919050565b60006040820190506114ce6000830185611388565b6114db602083018461135e565b9392505050565b60008115159050919050565b6114f7816114e2565b811461150257600080fd5b50565b600081519050611514816114ee565b92915050565b6000602082840312156115305761152f611218565b5b600061153e84828501611505565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115818261121d565b915061158c8361121d565b92508282039050818111156115a4576115a3611547565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006116138261121d565b915061161e8361121d565b925082820190508082111561163657611635611547565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611672601b83611416565b915061167d8261163c565b602082019050919050565b600060208201905081810360008301526116a181611665565b9050919050565b60006116b38261121d565b91506116be8361121d565b92508282026116cc8161121d565b915082820484148315176116e3576116e2611547565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006117248261121d565b915061172f8361121d565b92508261173f5761173e6116ea565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006117a6602183611416565b91506117b18261174a565b604082019050919050565b600060208201905081810360008301526117d581611799565b9050919050565b600081519050919050565b60005b838110156118055780820151818401526020810190506117ea565b60008484015250505050565b6000601f19601f8301169050919050565b600061182d826117dc565b6118378185611416565b93506118478185602086016117e7565b61185081611811565b840191505092915050565b600060208201905081810360008301526118758184611822565b90509291505056fea2646970667358221220747890091106889005972856508685228f60175f2cd0c0747f819f5520d61f7f64736f6c6343000811003300000000000000000000000009feb8ce1bc3f47ac3b0032b4f1816548d302b63
Deployed Bytecode
0x6080604052600436106102345760003560e01c8063736a83a11161012e578063bffb691d116100ab578063f2fde38b1161006f578063f2fde38b14610860578063f429389014610889578063f708a64f146108a0578063f887ea40146108c9578063fb796bb0146108f45761023b565b8063bffb691d1461079f578063c9567bf9146107ca578063d12a7688146107e1578063dd62ed3e1461080c578063f0fc6bca146108495761023b565b806395d89b41116100f257806395d89b41146106a4578063a8aa1b31146106cf578063a9059cbb146106fa578063b1a4e0dc14610737578063bf56b371146107745761023b565b8063736a83a1146105cf57806375f0a874146105fa578063764ca51214610625578063893d20e81461063c5780638ecc37fb146106675761023b565b8063313ce567116101bc5780635d098b38116101805780635d098b38146104ec578063658d4b7f1461051557806367ee5f091461053e57806369fe0e2d1461056957806370a08231146105925761023b565b8063313ce56714610407578063342aa8b5146104325780633e07ce5b1461045b578063571ac8b0146104725780635cc33f74146104af5761023b565b806323b635851161020357806323b63585146102fc57806323b872dd1461033957806329e04b4a146103765780632b112e491461039f5780632f54bf6e146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b57806315f7e05e146102a857806318160ddd146102d15761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561091f565b604051610262919061351d565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906135d8565b61095c565b60405161029f9190613633565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca919061364e565b610a4e565b005b3480156102dd57600080fd5b506102e6610b26565b6040516102f3919061368a565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e91906136a5565b610b30565b6040516103309190613633565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b91906136d2565b610bae565b60405161036d9190613633565b60405180910390f35b34801561038257600080fd5b5061039d600480360381019061039891906136a5565b610dae565b005b3480156103ab57600080fd5b506103b4610e67565b6040516103c1919061368a565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec919061364e565b610ee9565b6040516103fe9190613633565b60405180910390f35b34801561041357600080fd5b5061041c610f42565b6040516104299190613741565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613788565b610f4b565b005b34801561046757600080fd5b50610470610ff8565b005b34801561047e57600080fd5b506104996004803603810190610494919061364e565b61105d565b6040516104a69190613633565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d1919061364e565b611090565b6040516104e3919061368a565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061364e565b611135565b005b34801561052157600080fd5b5061053c60048036038101906105379190613788565b6111c1565b005b34801561054a57600080fd5b50610553611264565b604051610560919061368a565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b91906136a5565b6112fc565b005b34801561059e57600080fd5b506105b960048036038101906105b4919061364e565b611392565b6040516105c6919061368a565b60405180910390f35b3480156105db57600080fd5b506105e46113db565b6040516105f1919061368a565b60405180910390f35b34801561060657600080fd5b5061060f611473565b60405161061c91906137e9565b60405180910390f35b34801561063157600080fd5b5061063a611499565b005b34801561064857600080fd5b50610651611554565b60405161065e9190613813565b60405180910390f35b34801561067357600080fd5b5061068e6004803603810190610689919061364e565b61157d565b60405161069b919061368a565b60405180910390f35b3480156106b057600080fd5b506106b9611622565b6040516106c6919061351d565b60405180910390f35b3480156106db57600080fd5b506106e461165f565b6040516106f19190613813565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c91906135d8565b611685565b60405161072e9190613633565b60405180910390f35b34801561074357600080fd5b5061075e6004803603810190610759919061364e565b61169a565b60405161076b9190613633565b60405180910390f35b34801561078057600080fd5b506107896116f0565b604051610796919061368a565b60405180910390f35b3480156107ab57600080fd5b506107b46116f6565b6040516107c19190613633565b60405180910390f35b3480156107d657600080fd5b506107df611709565b005b3480156107ed57600080fd5b506107f6611775565b604051610803919061368a565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e919061382e565b61177b565b604051610840919061368a565b60405180910390f35b34801561085557600080fd5b5061085e611802565b005b34801561086c57600080fd5b506108876004803603810190610882919061389a565b611891565b005b34801561089557600080fd5b5061089e611953565b005b3480156108ac57600080fd5b506108c760048036038101906108c29190613788565b611a0c565b005b3480156108d557600080fd5b506108de611a62565b6040516108eb9190613926565b60405180910390f35b34801561090057600080fd5b50610909611a88565b6040516109169190613813565b60405180910390f35b60606040518060400160405280601781526020017f4d4f47205072696e74657220f09f9193f09f96a8efb88f000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3c919061368a565b60405180910390a36001905092915050565b610a5733610ee9565b610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d9061398d565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610af19190613813565b600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b3b33610ee9565b610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b719061398d565b60405180910390fd5b610ba730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d9a57610d19826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610da5848484611ce3565b90509392505050565b610db733610ee9565b610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded9061398d565b60405180910390fd5b610e0c606460045461272990919063ffffffff16565b811115610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e45906139f9565b60405180910390fd5b633b9aca0081610e5e9190613a48565b60148190555050565b6000610ee4610e97600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611392565b610ed6610ec5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611392565b60045461277390919063ffffffff16565b61277390919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610f5433610ee9565b610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a9061398d565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ff482826127bd565b5050565b61100133610ee9565b611040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110379061398d565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000611089827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61095c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016110ed9190613813565b602060405180830381865afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e9190613a9f565b9050919050565b61113e33610ee9565b61117d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111749061398d565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ca33610ee9565b611209576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112009061398d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f79190613a9f565b905090565b61130533610ee9565b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b9061398d565b60405180910390fd5b600e811115611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613b18565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146e9190613a9f565b905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114a233610ee9565b6114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d89061398d565b60405180910390fd5b60001515601560149054906101000a900460ff16151514611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90613b84565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016115da9190613813565b602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190613a9f565b9050919050565b60606040518060400160405280600481526020017f4d4f475000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611692338484611ce3565b905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601560149054906101000a900460ff1681565b61171233610ee9565b611751576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117489061398d565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60145481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161185d9190613813565b600060405180830381600087803b15801561187757600080fd5b505af115801561188b573d6000803e3d6000fd5b50505050565b61189a33610ee9565b6118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061398d565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516119489190613bc5565b60405180910390a150565b61195c33610ee9565b61199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119929061398d565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a08573d6000803e3d6000fd5b5050565b611a1533610ee9565b611a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4b9061398d565b60405180910390fd5b611a5e82826127bd565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a81565b6000611b37826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bcc82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c6c919061368a565b60405180910390a3600190509392505050565b6000838311158290611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe919061351d565b60405180910390fd5b5060008385611cd69190613be0565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d8e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611de357601260009054906101000a900460ff16611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd990613c60565b60405180910390fd5b5b601560149054906101000a900460ff1615611edc57600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e9c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290613ccc565b60405180910390fd5b5b601260019054906101000a900460ff1615611fe55760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f99575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fe457601354821115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d38565b60405180910390fd5b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120905750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120e65750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121875742600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061213657600080fd5b603c426121439190613d58565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60158054906101000a900460ff16156121ac576121a5848484611aac565b9050612722565b60006121b730611392565b905060006014548210159050600081801561221f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156122335750600061223130611392565b115b9050801561224457612243612a73565b5b6122cd856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7f9092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061231c8888612d50565b6123265785612331565b6123308887612ead565b5b905061238581600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156124705750600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612511929190613d8c565b600060405180830381600087803b15801561252b57600080fd5b505af192505050801561253c575060015b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141580156125e65750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126b457601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612687929190613d8c565b600060405180830381600087803b1580156126a157600080fd5b505af19250505080156126b2575060015b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612711919061368a565b60405180910390a360019450505050505b9392505050565b600061276b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ff1565b905092915050565b60006127b583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7f565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128475750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61285057600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561294257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b815260040161290b929190613df0565b600060405180830381600087803b15801561292557600080fd5b505af1158015612939573d6000803e3d6000fd5b50505050612a11565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016129de929190613d8c565b600060405180830381600087803b1580156129f857600080fd5b505af1158015612a0c573d6000803e3d6000fd5b505050505b5050565b6000808284612a249190613d58565b905083811015612a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6090613e65565b60405180910390fd5b8091505092915050565b60016015806101000a81548160ff0219169083151502179055506000612a9830611392565b9050612ab6612ab160028361272990919063ffffffff16565b613054565b612ad2612acd60028361272990919063ffffffff16565b6131fc565b60007f000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612b2d9190613813565b602060405180830381865afa158015612b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6e9190613a9f565b905060007f000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612bef929190613d8c565b6020604051808303816000875af1158015612c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c329190613e9a565b90508015612cc857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401612c95919061368a565b600060405180830381600087803b158015612caf57600080fd5b505af1158015612cc3573d6000803e3d6000fd5b505050505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612d30573d6000803e3d6000fd5b5050505060006015806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612df35750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612ea55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612ea45750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612ed9600d54612ecb600c548661341390919063ffffffff16565b61272990919063ffffffff16565b9050612f2d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fcd919061368a565b60405180910390a3612fe8818461277390919063ffffffff16565b91505092915050565b60008083118290613038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302f919061351d565b60405180910390fd5b50600083856130479190613ef6565b9050809150509392505050565b6000600267ffffffffffffffff81111561307157613070613f27565b5b60405190808252806020026020018201604052801561309f5781602001602082028036833780820191505090505b50905030816000815181106130b7576130b6613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061312857613127613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131c6959493929190614043565b600060405180830381600087803b1580156131e057600080fd5b505af11580156131f4573d6000803e3d6000fd5b505050505050565b6000600367ffffffffffffffff81111561321957613218613f27565b5b6040519080825280602002602001820160405280156132475781602001602082028036833780820191505090505b509050308160008151811061325f5761325e613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106132d0576132cf613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000aaee1a9723aadb7afa2810263653a34ba2c21c7a8160028151811061333f5761333e613f56565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b81526004016133dd959493929190614043565b600060405180830381600087803b1580156133f757600080fd5b505af115801561340b573d6000803e3d6000fd5b505050505050565b60008083036134255760009050613487565b600082846134339190613a48565b90508284826134429190613ef6565b14613482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134799061410f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134c75780820151818401526020810190506134ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006134ef8261348d565b6134f98185613498565b93506135098185602086016134a9565b613512816134d3565b840191505092915050565b6000602082019050818103600083015261353781846134e4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061356f82613544565b9050919050565b61357f81613564565b811461358a57600080fd5b50565b60008135905061359c81613576565b92915050565b6000819050919050565b6135b5816135a2565b81146135c057600080fd5b50565b6000813590506135d2816135ac565b92915050565b600080604083850312156135ef576135ee61353f565b5b60006135fd8582860161358d565b925050602061360e858286016135c3565b9150509250929050565b60008115159050919050565b61362d81613618565b82525050565b60006020820190506136486000830184613624565b92915050565b6000602082840312156136645761366361353f565b5b60006136728482850161358d565b91505092915050565b613684816135a2565b82525050565b600060208201905061369f600083018461367b565b92915050565b6000602082840312156136bb576136ba61353f565b5b60006136c9848285016135c3565b91505092915050565b6000806000606084860312156136eb576136ea61353f565b5b60006136f98682870161358d565b935050602061370a8682870161358d565b925050604061371b868287016135c3565b9150509250925092565b600060ff82169050919050565b61373b81613725565b82525050565b60006020820190506137566000830184613732565b92915050565b61376581613618565b811461377057600080fd5b50565b6000813590506137828161375c565b92915050565b6000806040838503121561379f5761379e61353f565b5b60006137ad8582860161358d565b92505060206137be85828601613773565b9150509250929050565b60006137d382613544565b9050919050565b6137e3816137c8565b82525050565b60006020820190506137fe60008301846137da565b92915050565b61380d81613564565b82525050565b60006020820190506138286000830184613804565b92915050565b600080604083850312156138455761384461353f565b5b60006138538582860161358d565b92505060206138648582860161358d565b9150509250929050565b613877816137c8565b811461388257600080fd5b50565b6000813590506138948161386e565b92915050565b6000602082840312156138b0576138af61353f565b5b60006138be84828501613885565b91505092915050565b6000819050919050565b60006138ec6138e76138e284613544565b6138c7565b613544565b9050919050565b60006138fe826138d1565b9050919050565b6000613910826138f3565b9050919050565b61392081613905565b82525050565b600060208201905061393b6000830184613917565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613977600683613498565b915061398282613941565b602082019050919050565b600060208201905081810360008301526139a68161396a565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006139e3600f83613498565b91506139ee826139ad565b602082019050919050565b60006020820190508181036000830152613a12816139d6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a53826135a2565b9150613a5e836135a2565b9250828202613a6c816135a2565b91508282048414831517613a8357613a82613a19565b5b5092915050565b600081519050613a99816135ac565b92915050565b600060208284031215613ab557613ab461353f565b5b6000613ac384828501613a8a565b91505092915050565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b6000613b02601483613498565b9150613b0d82613acc565b602082019050919050565b60006020820190508181036000830152613b3181613af5565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613b6e601783613498565b9150613b7982613b38565b602082019050919050565b60006020820190508181036000830152613b9d81613b61565b9050919050565b6000613baf826138f3565b9050919050565b613bbf81613ba4565b82525050565b6000602082019050613bda6000830184613bb6565b92915050565b6000613beb826135a2565b9150613bf6836135a2565b9250828203905081811115613c0e57613c0d613a19565b5b92915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613c4a601883613498565b9150613c5582613c14565b602082019050919050565b60006020820190508181036000830152613c7981613c3d565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b6000613cb6600483613498565b9150613cc182613c80565b602082019050919050565b60006020820190508181036000830152613ce581613ca9565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000613d22600c83613498565b9150613d2d82613cec565b602082019050919050565b60006020820190508181036000830152613d5181613d15565b9050919050565b6000613d63826135a2565b9150613d6e836135a2565b9250828201905080821115613d8657613d85613a19565b5b92915050565b6000604082019050613da16000830185613804565b613dae602083018461367b565b9392505050565b6000819050919050565b6000613dda613dd5613dd084613db5565b6138c7565b6135a2565b9050919050565b613dea81613dbf565b82525050565b6000604082019050613e056000830185613804565b613e126020830184613de1565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e4f601b83613498565b9150613e5a82613e19565b602082019050919050565b60006020820190508181036000830152613e7e81613e42565b9050919050565b600081519050613e948161375c565b92915050565b600060208284031215613eb057613eaf61353f565b5b6000613ebe84828501613e85565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f01826135a2565b9150613f0c836135a2565b925082613f1c57613f1b613ec7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fba81613564565b82525050565b6000613fcc8383613fb1565b60208301905092915050565b6000602082019050919050565b6000613ff082613f85565b613ffa8185613f90565b935061400583613fa1565b8060005b8381101561403657815161401d8882613fc0565b975061402883613fd8565b925050600181019050614009565b5085935050505092915050565b600060a082019050614058600083018861367b565b6140656020830187613de1565b81810360408301526140778186613fe5565b90506140866060830185613804565b614093608083018461367b565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140f9602183613498565b91506141048261409d565b604082019050919050565b60006020820190508181036000830152614128816140ec565b905091905056fea264697066735822122057ea90c5817a312036b9ce87fd69847556e8dbda56ab6081fac8f21953eeb25164736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000009feb8ce1bc3f47ac3b0032b4f1816548d302b63
-----Decoded View---------------
Arg [0] : _owner (address): 0x09feB8cE1bC3F47ac3B0032b4f1816548d302b63
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000009feb8ce1bc3f47ac3b0032b4f1816548d302b63
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.