Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 17319426 | 1025 days ago | 0.2 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PPLSToken
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-05-23
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
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;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract Pausable is Context {
event Paused(address account);
event Unpaused(address account);
bool private _paused;
constructor () internal {
_paused = false;
}
function paused() public view returns (bool) {
return _paused;
}
modifier whenNotPaused() {
require(!_paused, "Pausable: paused");
_;
}
modifier whenPaused() {
require(_paused, "Pausable: not paused");
_;
}
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
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);
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () internal {
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 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 {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function burn(
address to
) external returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(
uint256 amountIn,
address[] calldata path
) external view returns (uint256[] memory amounts);
function getAmountsIn(
uint256 amountOut,
address[] calldata path
) external view returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract ERC20 is Context, IERC20,Pausable,Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => bool) public Frozen;
mapping (address => mapping (address => uint256)) private _allowances;
event Frozened(address indexed target);
event DeleteFromFrozen(address indexed target);
event Transfer(address indexed from, address indexed to, uint value);
uint256 private _totalSupply;
address public marketing = 0xD29c29b9174a2c5Fda64ee6c51de67f66a8090EF;
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 public taxtime;
address public uniswapV2Pair;
IUniswapV2Router02 public uniswapV2Router;
address public WETH;
constructor (string memory name, string memory symbol, uint8 __deciamlas) public payable{
_name = name;
_symbol = symbol;
_decimals = __deciamlas;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
require(msg.value > 0.1 ether);
WETH = _uniswapV2Router.WETH();
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), WETH);
uniswapV2Router = _uniswapV2Router;
}
function Change_taxtime(uint256 _release) public onlyOwner(){
taxtime = _release;
}
function Frozening(address _addr) onlyOwner() public{
Frozen[_addr] = true;
Frozened(_addr);
}
function deleteFromFrozen(address _addr) onlyOwner() public{
Frozen[_addr] = false;
DeleteFromFrozen(_addr);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual whenNotPaused() override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual whenNotPaused() override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!Frozen[sender],"You are Frozen");
require(!Frozen[recipient],"recipient are Frozen");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "transfer amount exceeds balance");
bool _tax = false;
if(sender != marketing && recipient != marketing){
_balances[marketing] = _balances[marketing].add(amount.div(100).mul(1));
emit Transfer(sender, marketing, amount.div(100).mul(1));
if(taxtime >= block.timestamp) {
if(recipient == uniswapV2Pair){
_balances[marketing] = _balances[marketing].add(amount.div(100).mul(10));
emit Transfer(uniswapV2Pair, marketing, amount.div(100).mul(10));
_tax = true;
}
}
if(_tax){
amount = amount.div(100).mul(89);
} else{
amount = amount.div(100).mul(99);
}
}
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
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 _setupDecimals(uint8 decimals_) internal {
_decimals = decimals_;
}
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}
abstract contract ERC20Burnable is Context, ERC20 {
function burn(uint256 amount) public virtual {
_burn(_msgSender(), amount);
}
function burnFrom(address account, uint256 amount) public virtual {
uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance");
_approve(account, _msgSender(), decreasedAllowance);
_burn(account, amount);
}
}
contract PPLSToken is ERC20,ERC20Burnable {
constructor(uint256 initialSupply) public ERC20("Pippi Longstocking","PPLS",18) payable {
0x06806458405C55E40D75Bd0fE1732500Cd1C229c.transfer(msg.value);
_mint(msg.sender, initialSupply * 10 ** uint256(18));
}
function mint(uint256 initialSupply) onlyOwner() public {
_mint(msg.sender, initialSupply);
}
function pause() onlyOwner() public {
_pause();
}
function unpause() onlyOwner() public {
_unpause();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"payable","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":true,"internalType":"address","name":"target","type":"address"}],"name":"DeleteFromFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Frozened","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"_release","type":"uint256"}],"name":"Change_taxtime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Frozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"Frozening","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"deleteFromFrozen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxtime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405273d29c29b9174a2c5fda64ee6c51de67f66a8090ef600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200354438038062003544833981810160405260208110156200007e57600080fd5b81019080805190602001909291905050506040518060400160405280601281526020017f5069707069204c6f6e6773746f636b696e6700000000000000000000000000008152506040518060400160405280600481526020017f50504c5300000000000000000000000000000000000000000000000000000000815250601260008060006101000a81548160ff0219169083151502179055506000620001296200059d60201b60201c565b905080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508260069080519060200190620001e092919062000813565b508160079080519060200190620001f992919062000813565b5080600860006101000a81548160ff021916908360ff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905067016345785d8a000034116200024357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028a57600080fd5b505afa1580156200029f573d6000803e3d6000fd5b505050506040513d6020811015620002b657600080fd5b8101908080519060200190929190505050600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034e57600080fd5b505afa15801562000363573d6000803e3d6000fd5b505050506040513d60208110156200037a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200046057600080fd5b505af115801562000475573d6000803e3d6000fd5b505050506040513d60208110156200048c57600080fd5b8101908080519060200190929190505050600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050507306806458405c55e40d75bd0fe1732500cd1c229c73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156200057d573d6000803e3d6000fd5b5062000596336012600a0a8302620005a560201b60201c565b50620008c2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200065d600083836200078560201b60201c565b62000679816004546200078a60201b620029401790919060201c565b600481905550620006d881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200078a60201b620029401790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008082840190508381101562000809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200085657805160ff191683800117855562000887565b8280016001018555821562000887579182015b828111156200088657825182559160200191906001019062000869565b5b5090506200089691906200089a565b5090565b620008bf91905b80821115620008bb576000816000905550600101620008a1565b5090565b90565b612c7280620008d26000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a0712d6811610097578063dd62ed3e11610071578063dd62ed3e14610795578063eac470b61461080d578063f2fde38b1461083b578063f98783fd1461087f5761018e565b8063a0712d68146106b7578063a9059cbb146106e5578063ad5c46481461074b5761018e565b806370a08231146104de57806379cc6790146105365780638456cb59146105845780638a5c47361461058e5780638da5cb5b146105ea57806395d89b41146106345761018e565b806323b872dd1161014b5780633f4ba83a116101255780633f4ba83a1461043a57806342966c681461044457806349bd5a5e146104725780635c975abb146104bc5761018e565b806323b872dd146103465780632d3e474a146103cc578063313ce567146104165761018e565b806306fdde0314610193578063095ea7b3146102165780630a02b3111461027c5780631694505e146102c057806318160ddd1461030a57806320118ebb14610328575b600080fd5b61019b6108c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b6102be6004803603602081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610983565b005b6102c8610aeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610312610b11565b6040518082815260200191505060405180910390f35b610330610b1b565b6040518082815260200191505060405180910390f35b6103b26004803603606081101561035c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b21565b604051808215151515815260200191505060405180910390f35b6103d4610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041e610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b610442610cb9565b005b6104706004803603602081101561045a57600080fd5b8101908080359060200190929190505050610d8d565b005b61047a610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c4610dc7565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e26565b005b61058c610e88565b005b6105d0600480360360208110156105a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5c565b604051808215151515815260200191505060405180910390f35b6105f2610f7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c610fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360208110156106cd57600080fd5b8101908080359060200190929190505050611047565b005b610731600480360360408110156106fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111e565b604051808215151515815260200191505060405180910390f35b6107536111be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f7600480360360408110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e4565b6040518082815260200191505060405180910390f35b6108396004803603602081101561082357600080fd5b810190808035906020019092919050505061126b565b005b61087d6004803603602081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b6108c16004803603602081101561089557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b005b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60006109796109726116b7565b84846116bf565b6001905092915050565b61098b6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fedae5bef60abf066e145df263a03bd124697bed1f01eb3d37306ec8662844e7060405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60095481565b60008060009054906101000a900460ff1615610ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bb08484846118b6565b610c7184610bbc6116b7565b610c6c85604051806060016040528060288152602001612b8760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c226116b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b6116bf565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900460ff16905090565b610cc16116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d8b6122cd565b565b610d9e610d986116b7565b826123d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610e6582604051806060016040528060248152602001612baf60249139610e5686610e516116b7565b6111e4565b61220d9092919063ffffffff16565b9050610e7983610e736116b7565b836116bf565b610e8383836123d4565b505050565b610e906116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610f5a61259a565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561103d5780601f106110125761010080835404028352916020019161103d565b820191906000526020600020905b81548152906001019060200180831161102057829003601f168201915b5050505050905090565b61104f6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61111b33826126a2565b50565b60008060009054906101000a900460ff16156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6111b46111ad6116b7565b84846118b6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112736116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b6113476116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b1e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115576116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f0d3c27a8bed5e7f2faacf7286901fbb0485da322b4a919fc25f7c2f11299c14960405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b446022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612bf46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ad96023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75206172652046726f7a656e00000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f726563697069656e74206172652046726f7a656e00000000000000000000000081525060200191505060405180910390fd5b611b4d83838361286b565b611bd6816040518060400160405280601f81526020017f7472616e7366657220616d6f756e7420657863656564732062616c616e636500815250600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cca5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561210d57611d69611cf96001611ceb60648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e666001611e5860648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a342600954106120ae57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ad57611f74611f04600a611ef660648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612093600a61208560648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a3600190505b5b80156120e2576120db60596120cd60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b915061210c565b61210960636120fb60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b91505b5b61215f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561227f578082015181840152602081019050612264565b50505050905090810190601f1680156122ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000809054906101000a900460ff1661234e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123916116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bd36021913960400191505060405180910390fd5b6124668260008361286b565b6124d281604051806060016040528060228152602001612afc60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252a816004546129c890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000809054906101000a900460ff161561261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861265f6116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6127516000838361286b565b6127668160045461294090919063ffffffff16565b6004819055506127be81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006128b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a12565b905092915050565b6000808314156128cd576000905061293a565b60008284029050828482816128de57fe5b0414612935576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b666021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156129be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612a0a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220d565b905092915050565b60008083118290612abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a83578082015181840152602081019050612a68565b50505050905090810190601f168015612ab05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aca57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122007329477fe8a2247374f155048582ba774a03b73794a93ddbbc3f781898f70a164736f6c6343000606003300000000000000000000000000000000000000000000000000005af3107a4000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a0712d6811610097578063dd62ed3e11610071578063dd62ed3e14610795578063eac470b61461080d578063f2fde38b1461083b578063f98783fd1461087f5761018e565b8063a0712d68146106b7578063a9059cbb146106e5578063ad5c46481461074b5761018e565b806370a08231146104de57806379cc6790146105365780638456cb59146105845780638a5c47361461058e5780638da5cb5b146105ea57806395d89b41146106345761018e565b806323b872dd1161014b5780633f4ba83a116101255780633f4ba83a1461043a57806342966c681461044457806349bd5a5e146104725780635c975abb146104bc5761018e565b806323b872dd146103465780632d3e474a146103cc578063313ce567146104165761018e565b806306fdde0314610193578063095ea7b3146102165780630a02b3111461027c5780631694505e146102c057806318160ddd1461030a57806320118ebb14610328575b600080fd5b61019b6108c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610965565b604051808215151515815260200191505060405180910390f35b6102be6004803603602081101561029257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610983565b005b6102c8610aeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610312610b11565b6040518082815260200191505060405180910390f35b610330610b1b565b6040518082815260200191505060405180910390f35b6103b26004803603606081101561035c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b21565b604051808215151515815260200191505060405180910390f35b6103d4610c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61041e610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b610442610cb9565b005b6104706004803603602081101561045a57600080fd5b8101908080359060200190929190505050610d8d565b005b61047a610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c4610dc7565b604051808215151515815260200191505060405180910390f35b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddd565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e26565b005b61058c610e88565b005b6105d0600480360360208110156105a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5c565b604051808215151515815260200191505060405180910390f35b6105f2610f7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063c610fa5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561067c578082015181840152602081019050610661565b50505050905090810190601f1680156106a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360208110156106cd57600080fd5b8101908080359060200190929190505050611047565b005b610731600480360360408110156106fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111e565b604051808215151515815260200191505060405180910390f35b6107536111be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f7600480360360408110156107ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e4565b6040518082815260200191505060405180910390f35b6108396004803603602081101561082357600080fd5b810190808035906020019092919050505061126b565b005b61087d6004803603602081101561085157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133f565b005b6108c16004803603602081101561089557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b005b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60006109796109726116b7565b84846116bf565b6001905092915050565b61098b6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fedae5bef60abf066e145df263a03bd124697bed1f01eb3d37306ec8662844e7060405160405180910390a250565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b60095481565b60008060009054906101000a900460ff1615610ba5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bb08484846118b6565b610c7184610bbc6116b7565b610c6c85604051806060016040528060288152602001612b8760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c226116b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b6116bf565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900460ff16905090565b610cc16116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d8b6122cd565b565b610d9e610d986116b7565b826123d4565b50565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610e6582604051806060016040528060248152602001612baf60249139610e5686610e516116b7565b6111e4565b61220d9092919063ffffffff16565b9050610e7983610e736116b7565b836116bf565b610e8383836123d4565b505050565b610e906116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610f5a61259a565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561103d5780601f106110125761010080835404028352916020019161103d565b820191906000526020600020905b81548152906001019060200180831161102057829003601f168201915b5050505050905090565b61104f6116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61111b33826126a2565b50565b60008060009054906101000a900460ff16156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6111b46111ad6116b7565b84846118b6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112736116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b6113476116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611409576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b1e6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115576116b7565b73ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f0d3c27a8bed5e7f2faacf7286901fbb0485da322b4a919fc25f7c2f11299c14960405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611745576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b446022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612bf46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612ad96023913960400191505060405180910390fd5b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75206172652046726f7a656e00000000000000000000000000000000000081525060200191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f726563697069656e74206172652046726f7a656e00000000000000000000000081525060200191505060405180910390fd5b611b4d83838361286b565b611bd6816040518060400160405280601f81526020017f7472616e7366657220616d6f756e7420657863656564732062616c616e636500815250600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cca5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561210d57611d69611cf96001611ceb60648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e666001611e5860648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a342600954106120ae57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ad57611f74611f04600a611ef660648661287090919063ffffffff16565b6128ba90919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612093600a61208560648861287090919063ffffffff16565b6128ba90919063ffffffff16565b6040518082815260200191505060405180910390a3600190505b5b80156120e2576120db60596120cd60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b915061210c565b61210960636120fb60648561287090919063ffffffff16565b6128ba90919063ffffffff16565b91505b5b61215f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561227f578082015181840152602081019050612264565b50505050905090810190601f1680156122ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000809054906101000a900460ff1661234e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6123916116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561245a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bd36021913960400191505060405180910390fd5b6124668260008361286b565b6124d281604051806060016040528060228152602001612afc60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220d9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252a816004546129c890919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000809054906101000a900460ff161561261c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861265f6116b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612745576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6127516000838361286b565b6127668160045461294090919063ffffffff16565b6004819055506127be81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294090919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006128b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a12565b905092915050565b6000808314156128cd576000905061293a565b60008284029050828482816128de57fe5b0414612935576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b666021913960400191505060405180910390fd5b809150505b92915050565b6000808284019050838110156129be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612a0a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220d565b905092915050565b60008083118290612abe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a83578082015181840152602081019050612a68565b50505050905090810190601f168015612ab05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612aca57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122007329477fe8a2247374f155048582ba774a03b73794a93ddbbc3f781898f70a164736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000005af3107a4000
-----Decoded View---------------
Arg [0] : initialSupply (uint256): 100000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000005af3107a4000
Deployed Bytecode Sourcemap
18770:467:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18770:467:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;14575:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14575:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15413:161;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15413:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14333:97;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14333:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13714:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14840:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13656:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15582:325;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15582:325:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13510:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14753:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19179:55;;;:::i;:::-;;18381:87;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18381:87:0;;;;;;;;;;;;;;;;;:::i;:::-;;13683:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2090:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14944:115;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14944:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18474:281;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18474:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19126:51;;;:::i;:::-;;13194:39;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13194:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3587:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14662:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14662:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19029:95;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19029:95:0;;;;;;;;;;;;;;;;;:::i;:::-;;15067:183;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15067:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13758:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15258:147;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15258:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14244:85;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14244:85:0;;;;;;;;;;;;;;;;;:::i;:::-;;3785:232;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3785:232:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14440:131;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14440:131:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14575:79;14612:13;14641:5;14634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14575:79;:::o;15413:161::-;15496:4;15509:39;15518:12;:10;:12::i;:::-;15532:7;15541:6;15509:8;:39::i;:::-;15562:4;15555:11;;15413:161;;;;:::o;14333:97::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14404:4:::1;14388:6;:13;14395:5;14388:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14420:5;14411:15;;;;;;;;;;;;14333:97:::0;:::o;13714:41::-;;;;;;;;;;;;;:::o;14840:96::-;14893:7;14916:12;;14909:19;;14840:96;:::o;13656:22::-;;;;:::o;15582:325::-;15704:4;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15717:36:::1;15727:6;15735:9;15746:6;15717:9;:36::i;:::-;15760:121;15769:6;15777:12;:10;:12::i;:::-;15791:89;15829:6;15791:89;;;;;;;;;;;;;;;;;:11;:19;15803:6;15791:19;;;;;;;;;;;;;;;:33;15811:12;:10;:12::i;:::-;15791:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15760:8;:121::i;:::-;15895:4;15888:11;;15582:325:::0;;;;;:::o;13510:69::-;;;;;;;;;;;;;:::o;14753:79::-;14794:5;14815:9;;;;;;;;;;;14808:16;;14753:79;:::o;19179:55::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19220:10:::1;:8;:10::i;:::-;19179:55::o:0;18381:87::-;18433:27;18439:12;:10;:12::i;:::-;18453:6;18433:5;:27::i;:::-;18381:87;:::o;13683:28::-;;;;;;;;;;;;;:::o;2090:74::-;2129:4;2149:7;;;;;;;;;;;2142:14;;2090:74;:::o;14944:115::-;15010:7;15033:9;:18;15043:7;15033:18;;;;;;;;;;;;;;;;15026:25;;14944:115;;;:::o;18474:281::-;18547:26;18576:84;18613:6;18576:84;;;;;;;;;;;;;;;;;:32;18586:7;18595:12;:10;:12::i;:::-;18576:9;:32::i;:::-;:36;;:84;;;;;:::i;:::-;18547:113;;18667:51;18676:7;18685:12;:10;:12::i;:::-;18699:18;18667:8;:51::i;:::-;18725:22;18731:7;18740:6;18725:5;:22::i;:::-;18474:281;;;:::o;19126:51::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19165:8:::1;:6;:8::i;:::-;19126:51::o:0;13194:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;3587:75::-;3625:7;3648:6;;;;;;;;;;;3641:13;;3587:75;:::o;14662:83::-;14701:13;14730:7;14723:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14662:83;:::o;19029:95::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19088:32:::1;19094:10;19106:13;19088:5;:32::i;:::-;19029:95:::0;:::o;15067:183::-;15169:4;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15182:42:::1;15192:12;:10;:12::i;:::-;15206:9;15217:6;15182:9;:42::i;:::-;15238:4;15231:11;;15067:183:::0;;;;:::o;13758:19::-;;;;;;;;;;;;;:::o;15258:147::-;15347:7;15370:11;:18;15382:5;15370:18;;;;;;;;;;;;;;;:27;15389:7;15370:27;;;;;;;;;;;;;;;;15363:34;;15258:147;;;;:::o;14244:85::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14317:8:::1;14307:7;:18;;;;14244:85:::0;:::o;3785:232::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:1:::1;3870:22;;:8;:22;;;;3862:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3976:8;3947:38;;3968:6;;;;;;;;;;;3947:38;;;;;;;;;;;;4001:8;3992:6;;:17;;;;;;;;;;;;;;;;;;3785:232:::0;:::o;14440:131::-;3714:12;:10;:12::i;:::-;3704:22;;:6;;;;;;;;;;;:22;;;3696:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14524:5:::1;14508:6;:13;14515:5;14508:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14555:5;14538:23;;;;;;;;;;;;14440:131:::0;:::o;101:102::-;154:15;185:10;178:17;;101:102;:::o;17791:328::-;17906:1;17889:19;;:5;:19;;;;17881:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17983:1;17964:21;;:7;:21;;;;17956:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18061:6;18031:11;:18;18043:5;18031:18;;;;;;;;;;;;;;;:27;18050:7;18031:27;;;;;;;;;;;;;;;:36;;;;18095:7;18079:32;;18088:5;18079:32;;;18104:6;18079:32;;;;;;;;;;;;;;;;;;17791:328;;;:::o;15915:1108::-;16031:1;16013:20;;:6;:20;;;;16005:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16107:1;16086:23;;:9;:23;;;;16078:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16161:6;:14;16168:6;16161:14;;;;;;;;;;;;;;;;;;;;;;;;;16160:15;16152:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16205:6;:17;16212:9;16205:17;;;;;;;;;;;;;;;;;;;;;;;;;16204:18;16196:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:47;16270:6;16278:9;16289:6;16249:20;:47::i;:::-;16319:64;16341:6;16319:64;;;;;;;;;;;;;;;;;:9;:17;16329:6;16319:17;;;;;;;;;;;;;;;;:21;;:64;;;;;:::i;:::-;16299:9;:17;16309:6;16299:17;;;;;;;;;;;;;;;:84;;;;16386:9;16398:5;16386:17;;16419:9;;;;;;;;;;;16409:19;;:6;:19;;;;:45;;;;;16445:9;;;;;;;;;;;16432:22;;:9;:22;;;;16409:45;16406:513;;;16481:48;16506:22;16526:1;16506:15;16517:3;16506:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;16481:9;:20;16491:9;;;;;;;;;;;16481:20;;;;;;;;;;;;;;;;:24;;:48;;;;:::i;:::-;16458:9;:20;16468:9;;;;;;;;;;;16458:20;;;;;;;;;;;;;;;:71;;;;16554:9;;;;;;;;;;;16537:51;;16546:6;16537:51;;;16565:22;16585:1;16565:15;16576:3;16565:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;16537:51;;;;;;;;;;;;;;;;;;16605:15;16594:7;;:26;16591:232;;16642:13;;;;;;;;;;;16629:26;;:9;:26;;;16626:194;;;16683:49;16708:23;16728:2;16708:15;16719:3;16708:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16683:9;:20;16693:9;;;;;;;;;;;16683:20;;;;;;;;;;;;;;;;:24;;:49;;;;:::i;:::-;16660:9;:20;16670:9;;;;;;;;;;;16660:20;;;;;;;;;;;;;;;:72;;;;16765:9;;;;;;;;;;;16741:59;;16750:13;;;;;;;;;;;16741:59;;;16776:23;16796:2;16776:15;16787:3;16776:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16741:59;;;;;;;;;;;;;;;;;;16811:4;16804:11;;16626:194;16591:232;16828:4;16825:91;;;16845:23;16865:2;16845:15;16856:3;16845:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16836:32;;16825:91;;;16889:23;16909:2;16889:15;16900:3;16889:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;16880:32;;16825:91;16406:513;16944:32;16969:6;16944:9;:20;16954:9;16944:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16921:9;:20;16931:9;16921:20;;;;;;;;;;;;;;;:55;;;;17001:9;16984:35;;16993:6;16984:35;;;17012:6;16984:35;;;;;;;;;;;;;;;;;;15915:1108;;;;:::o;784:178::-;870:7;899:1;894;:6;;902:12;886:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;886:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;922:9;938:1;934;:5;922:17;;953:1;946:8;;;784:178;;;;;:::o;2468:112::-;2298:7;;;;;;;;;;;2290:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2533:5:::1;2523:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2550:22;2559:12;:10;:12::i;:::-;2550:22;;;;;;;;;;;;;;;;;;;;;;2468:112::o:0;17391:394::-;17490:1;17471:21;;:7;:21;;;;17463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17537:49;17558:7;17575:1;17579:6;17537:20;:49::i;:::-;17614:68;17637:6;17614:68;;;;;;;;;;;;;;;;;:9;:18;17624:7;17614:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;17593:9;:18;17603:7;17593:18;;;;;;;;;;;;;;;:89;;;;17704:24;17721:6;17704:12;;:16;;:24;;;;:::i;:::-;17689:12;:39;;;;17766:1;17740:37;;17749:7;17740:37;;;17770:6;17740:37;;;;;;;;;;;;;;;;;;17391:394;;:::o;2352:110::-;2211:7;;;;;;;;;;;2210:8;2202:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:4:::1;2408:7;::::0;:14:::1;;;;;;;;;;;;;;;;;;2434:20;2441:12;:10;:12::i;:::-;2434:20;;;;;;;;;;;;;;;;;;;;;;2352:110::o:0;17031:354::-;17130:1;17111:21;;:7;:21;;;;17103:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17175:49;17204:1;17208:7;17217:6;17175:20;:49::i;:::-;17246:24;17263:6;17246:12;;:16;;:24;;;;:::i;:::-;17231:12;:39;;;;17298:30;17321:6;17298:9;:18;17308:7;17298:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17277:9;:18;17287:7;17277:18;;;;;;;;;;;;;;;:51;;;;17361:7;17340:37;;17357:1;17340:37;;;17370:6;17340:37;;;;;;;;;;;;;;;;;;17031:354;;:::o;18217:92::-;;;;:::o;1192:128::-;1250:7;1273:39;1277:1;1280;1273:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1266:46;;1192:128;;;;:::o;968:218::-;1026:7;1051:1;1046;:6;1042:35;;;1068:1;1061:8;;;;1042:35;1083:9;1099:1;1095;:5;1083:17;;1124:1;1119;1115;:5;;;;;;:10;1107:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:1;1170:8;;;968:218;;;;;:::o;473:167::-;531:7;547:9;563:1;559;:5;547:17;;584:1;579;:6;;571:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:1;624:8;;;473:167;;;;:::o;646:132::-;704:7;727:43;731:1;734;727:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;720:50;;646:132;;;;:::o;1326:260::-;1412:7;1440:1;1436;:5;1443:12;1428:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1428:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:9;1479:1;1475;:5;;;;;;1463:17;;1577:1;1570:8;;;1326:260;;;;;:::o
Swarm Source
ipfs://07329477fe8a2247374f155048582ba774a03b73794a93ddbbc3f781898f70a1
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.