Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000 DSync
Holders
49,061
Transfers
-
198 ( -27.21%)
Market
Price
$0.02 @ 0.000010 ETH (-8.56%)
Onchain Market Cap
-
Circulating Supply Market Cap
$19,635,372.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
DestraNetwork
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-03-11
*/
/**
Website: https://destra.network
Telegram: https://t.me/DestraNetwork
Twitter: https://x.com/destranetwork
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
library Address {
function isContract(address account) internal view returns (bool) {
return account.code.length > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
function functionCall(
address target,
bytes memory data
) internal returns (bytes memory) {
return
functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
"Address: low-level call with value failed"
);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
"Address: insufficient balance for call"
);
(bool success, bytes memory returndata) = target.call{value: value}(data);
return
verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function functionStaticCall(
address target,
bytes memory data
) internal view returns (bytes memory) {
return
functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return
verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function functionDelegateCall(
address target,
bytes memory data
) internal returns (bytes memory) {
return
functionDelegateCall(
target,
data,
"Address: low-level delegate call failed"
);
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return
verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(
bytes memory returndata,
string memory errorMessage
) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
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);
}
interface IDEXFactory {
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
contract DestraNetwork is IERC20, Ownable {
using Address for address;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "Destra Network";
string constant _symbol = "DSync";
uint8 constant _decimals = 18;
uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
uint256 _maxBuyTxAmount = (_totalSupply * 1) / 100;
uint256 _maxSellTxAmount = (_totalSupply * 1) / 100;
uint256 _maxWalletSize = (_totalSupply * 1) / 100;
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
mapping(uint256 => uint256) public swapBackCounter;
uint256 public swapBackRateLimit = 3;
mapping(address => bool) public isFeeExempt;
mapping(address => bool) public isTxLimitExempt;
mapping(address => bool) public isLiquidityCreator;
uint256 marketingBuyFee = 500;
uint256 marketingSellFee = 6000;
uint256 liquidityBuyFee = 0;
uint256 liquiditySellFee = 0;
uint256 totalBuyFee = marketingBuyFee + liquidityBuyFee;
uint256 totalSellFee = marketingSellFee + liquiditySellFee;
uint256 feeDenominator = 10000;
bool public transferTax = false;
address payable public liquidityFeeReceiver = payable(0xa75bFFD82FFE8A5064A5b6122448221aCEbCf950);
address payable public marketingFeeReceiver = payable(0xa75bFFD82FFE8A5064A5b6122448221aCEbCf950);
IDEXRouter public router;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
mapping(address => bool) liquidityPools;
address public pair;
mapping(address => uint256) public blacklist;
uint256 public blacklistCount;
uint256 public launchBlock;
uint256 public launchTimestamp;
bool isTradingEnabled = false;
bool public swapEnabled = false;
uint256 public swapThreshold = _totalSupply / 1000;
uint256 public swapAtMinimum = _totalSupply / 10000;
bool inSwap;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
mapping(address => bool) teamMembers;
modifier onlyTeam() {
require(
teamMembers[_msgSender()] || msg.sender == owner(),
"Caller is not a team member"
);
_;
}
event WalletBlacklisted(address, address, uint256);
constructor() {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(
router.WETH(),
address(this)
);
liquidityPools[pair] = true;
_allowances[owner()][routerAddress] = type(uint256).max;
_allowances[address(this)][routerAddress] = type(uint256).max;
isFeeExempt[owner()] = true;
isLiquidityCreator[owner()] = true;
isTxLimitExempt[address(this)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[routerAddress] = true;
isTxLimitExempt[DEAD] = true;
_balances[owner()] = _totalSupply;
emit Transfer(address(0), owner(), _totalSupply);
}
receive() external payable {}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function decimals() external pure returns (uint8) {
return _decimals;
}
function symbol() external pure returns (string memory) {
return _symbol;
}
function name() external pure returns (string memory) {
return _name;
}
function getOwner() external view returns (address) {
return owner();
}
function maxBuyTxTokens() external view returns (uint256) {
return _maxBuyTxAmount / (10 ** _decimals);
}
function maxSellTxTokens() external view returns (uint256) {
return _maxSellTxAmount / (10 ** _decimals);
}
function maxWalletTokens() external view returns (uint256) {
return _maxWalletSize / (10 ** _decimals);
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(
address holder,
address spender
) external view override returns (uint256) {
return _allowances[holder][spender];
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMaxAmount(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function setTeamMember(address _team, bool _enabled) external onlyOwner {
teamMembers[_team] = _enabled;
}
function airdrop(
address[] calldata addresses,
uint256[] calldata amounts
) external onlyOwner {
require(addresses.length > 0 && amounts.length == addresses.length);
address from = msg.sender;
for (uint i = 0; i < addresses.length; i++) {
if (!liquidityPools[addresses[i]] && !isLiquidityCreator[addresses[i]]) {
_basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
}
}
}
function clearStuckBalance(
uint256 amountPercentage,
address adr
) external onlyTeam {
uint256 amountETH = address(this).balance;
if (amountETH > 0) {
(bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
require(sent, "Failed to transfer funds");
}
}
function blacklistWallets(
address[] calldata _wallets,
bool _blacklist
) external onlyTeam {
for (uint i = 0; i < _wallets.length; i++) {
if (_blacklist) {
blacklistCount++;
emit WalletBlacklisted(tx.origin, _wallets[i], block.number);
} else {
if (blacklist[_wallets[i]] != 0) blacklistCount--;
}
blacklist[_wallets[i]] = _blacklist ? block.number : 0;
}
}
function transfer(
address recipient,
uint256 amount
) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
require(sender != address(0), "ERC20: transfer from 0x0");
require(recipient != address(0), "ERC20: transfer to 0x0");
require(amount > 0, "Amount must be > zero");
require(_balances[sender] >= amount, "Insufficient balance");
if (!launched() && liquidityPools[recipient]) {
require(isLiquidityCreator[sender], "Liquidity not added yet.");
launch();
}
if (!isTradingEnabled) {
require(
isLiquidityCreator[sender] || isLiquidityCreator[recipient],
"Trading is not launched yet."
);
}
checkTxLimit(sender, recipient, amount);
if (!liquidityPools[recipient] && recipient != DEAD) {
if (!isTxLimitExempt[recipient]) {
checkWalletLimit(recipient, amount);
}
}
if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}
_balances[sender] = _balances[sender] - amount;
uint256 amountReceived = amount;
if (shouldTakeFee(sender, recipient)) {
amountReceived = takeFee(recipient, amount);
if (shouldSwapBack(recipient) && amount > 0) swapBack(amount);
}
_balances[recipient] = _balances[recipient] + amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function launched() internal view returns (bool) {
return launchBlock != 0;
}
function launch() internal {
launchBlock = block.number;
launchTimestamp = block.timestamp;
}
function openTrading() external onlyTeam {
require(!isTradingEnabled, "Can't re-open trading");
isTradingEnabled = true;
swapEnabled = true;
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function checkWalletLimit(address recipient, uint256 amount) internal view {
uint256 walletLimit = _maxWalletSize;
require(
_balances[recipient] + amount <= walletLimit,
"Amount exceeds the max wallet size."
);
}
function checkTxLimit(
address sender,
address recipient,
uint256 amount
) internal view {
if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return;
require(
amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount),
"Amount exceeds the tx limit."
);
require(blacklist[sender] == 0, "Wallet blacklisted!");
}
function shouldTakeFee(
address sender,
address recipient
) public view returns (bool) {
if (!transferTax && !liquidityPools[recipient] && !liquidityPools[sender])
return false;
return !isFeeExempt[sender] && !isFeeExempt[recipient];
}
function getTotalFee(bool selling) public view returns (uint256) {
if (selling) return totalSellFee;
return totalBuyFee;
}
function takeFee(
address recipient,
uint256 amount
) internal returns (uint256) {
bool selling = liquidityPools[recipient];
uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
_balances[address(this)] += feeAmount;
return amount - feeAmount;
}
function shouldSwapBack(address recipient) internal view returns (bool) {
return
!liquidityPools[msg.sender] &&
!inSwap &&
swapEnabled &&
swapBackCounter[block.number] < swapBackRateLimit &&
liquidityPools[recipient] &&
_balances[address(this)] >= swapAtMinimum &&
totalBuyFee + totalSellFee > 0;
}
function swapBack(uint256 amount) internal swapping {
uint256 totalFee = totalBuyFee + totalSellFee;
uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
if (_balances[address(this)] < amountToSwap)
amountToSwap = _balances[address(this)];
uint256 totalLiquidityFee = liquidityBuyFee + liquiditySellFee;
uint256 amountToLiquify = ((amountToSwap * totalLiquidityFee) / 2) /
totalFee;
amountToSwap -= amountToLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance - balanceBefore;
uint256 totalETHFee = totalFee - (totalLiquidityFee / 2);
uint256 amountETHLiquidity = ((amountETH * totalLiquidityFee) / 2) /
totalETHFee;
uint256 amountETHMarketing = amountETH - amountETHLiquidity;
if (amountETHMarketing > 0) {
(bool sentMarketing, ) = marketingFeeReceiver.call{
value: amountETHMarketing
}("");
if (!sentMarketing) {
//Failed to transfer to marketing wallet
}
}
if (amountToLiquify > 0) {
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
liquidityFeeReceiver,
block.timestamp
);
}
swapBackCounter[block.number] = swapBackCounter[block.number] + 1;
emit FundsDistributed(
amountETHMarketing,
amountETHLiquidity,
amountToLiquify
);
}
function addLiquidityPool(address lp, bool isPool) external onlyOwner {
require(lp != pair, "Can't alter current liquidity pair");
liquidityPools[lp] = isPool;
}
function setSwapBackRateLimit(uint256 rate) external onlyOwner {
swapBackRateLimit = rate;
}
function setTxLimit(
uint256 buyNumerator,
uint256 sellNumerator,
uint256 divisor
) external onlyOwner {
require(
buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000
);
_maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
_maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
}
function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner {
require(numerator > 0 && divisor > 0 && divisor <= 10000);
_maxWalletSize = (_totalSupply * numerator) / divisor;
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function setFees(
uint256 _liquidityBuyFee,
uint256 _liquiditySellFee,
uint256 _marketingBuyFee,
uint256 _marketingSellFee,
uint256 _feeDenominator
) external onlyOwner {
require(
((_liquidityBuyFee + _liquiditySellFee) / 2) * 2 ==
(_liquidityBuyFee + _liquiditySellFee),
"Liquidity fee must be an even number for rounding compatibility."
);
liquidityBuyFee = _liquidityBuyFee;
liquiditySellFee = _liquiditySellFee;
marketingBuyFee = _marketingBuyFee;
marketingSellFee = _marketingSellFee;
totalBuyFee = _liquidityBuyFee + _marketingBuyFee;
totalSellFee = _liquiditySellFee + _marketingSellFee;
feeDenominator = _feeDenominator;
emit FeesSet(totalBuyFee, totalSellFee, feeDenominator);
}
function toggleTransferTax() external onlyOwner {
transferTax = !transferTax;
}
function setFeeReceivers(
address _liquidityFeeReceiver,
address _marketingFeeReceiver
) external onlyOwner {
liquidityFeeReceiver = payable(_liquidityFeeReceiver);
marketingFeeReceiver = payable(_marketingFeeReceiver);
}
function setSwapBackSettings(
bool _enabled,
uint256 _denominator,
uint256 _swapAtMinimum
) external onlyOwner {
require(_denominator > 0);
swapEnabled = _enabled;
swapThreshold = _totalSupply / _denominator;
swapAtMinimum = _swapAtMinimum * (10 ** _decimals);
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
}
event FundsDistributed(
uint256 marketingETH,
uint256 liquidityETH,
uint256 liquidityTokens
);
event FeesSet(
uint256 totalBuyFees,
uint256 totalSellFees,
uint256 denominator
);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalBuyFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSellFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"FeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"WalletBlacklisted","type":"event"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"spender","type":"address"}],"name":"approveMaxAmount","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":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_blacklist","type":"bool"}],"name":"blacklistWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isLiquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityBuyFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"_marketingBuyFee","type":"uint256"},{"internalType":"uint256","name":"_marketingSellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setSwapBackRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapAtMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"shouldTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"swapBackCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapBackRateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleTransferTax","outputs":[],"stateMutability":"nonpayable","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":"transferTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326012600a620005ff565b6200004290633b9aca0062000617565b6003556064600354600162000058919062000617565b62000064919062000631565b600455606460035460016200007a919062000617565b62000086919062000631565b600555606460035460016200009c919062000617565b620000a8919062000631565b6006556003600a556101f4600e55611770600f5560006010556000601155601054600e54620000d8919062000654565b601255601154600f54620000ed919062000654565b6013556127106014556015805474a75bffd82ffe8a5064a5b6122448221acebcf950006001600160a81b0319909116179055601680546001600160a01b031990811673a75bffd82ffe8a5064a5b6122448221acebcf9501790915560188054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055601f805461ffff1916905560035462000184906103e89062000631565b60205561271060035462000199919062000631565b602155348015620001a957600080fd5b50620001b5336200049a565b601854601780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023891906200066a565b6001600160a01b031663c9c65396601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c091906200066a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033391906200066a565b601a80546001600160a01b0319166001600160a01b039290921691821790556000908152601960205260408120805460ff1916600117905560001990600890620003856000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601880548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c865284832080548316821790558254841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000695565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000541578160001904821115620005255762000525620004ea565b808516156200053357918102915b93841c939080029062000505565b509250929050565b6000826200055a57506001620005f9565b816200056957506000620005f9565b81600181146200058257600281146200058d57620005ad565b6001915050620005f9565b60ff841115620005a157620005a1620004ea565b50506001821b620005f9565b5060208310610133831016604e8410600b8410161715620005d2575081810a620005f9565b620005de838362000500565b8060001904821115620005f557620005f5620004ea565b0290505b92915050565b60006200061060ff84168362000549565b9392505050565b8082028115828204841417620005f957620005f9620004ea565b6000826200064f57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005f957620005f9620004ea565b6000602082840312156200067d57600080fd5b81516001600160a01b03811681146200061057600080fd5b6127e380620006a56000396000f3fe6080604052600436106103035760003560e01c8063893d20e811610190578063c9567bf9116100dc578063e8b574f211610095578063f2fde38b1161006f578063f2fde38b14610951578063f84ba65d14610971578063f887ea4014610991578063f9f92be4146109b157600080fd5b8063e8b574f2146108e4578063e96fada214610911578063f1f3bca31461093157600080fd5b8063c9567bf91461081e578063d00efb2f14610833578063d088935814610849578063d58d850c14610869578063d912b2ce14610889578063dd62ed3e1461089e57600080fd5b8063a845bd8611610149578063abe57e7011610123578063abe57e70146107a4578063bafe446b146107c4578063bb2188b4146107d9578063bfa21d6a146107f957600080fd5b8063a845bd861461074e578063a8aa1b3114610764578063a9059cbb1461078457600080fd5b8063893d20e8146106605780638b42507f146106925780638da5cb5b146106c257806395d89b41146106e05780639fdc80051461070e578063a4b45c001461072e57600080fd5b8063492a937b1161024f578063658d4b7f116102085780636ddd1713116101e25780636ddd1713146105dc57806370a08231146105fb578063715018a6146106315780638124f7ac1461064657600080fd5b8063658d4b7f1461058657806365cf7c9b146105a657806367243482146105bc57600080fd5b8063492a937b146104c157806350713935146104e157806356a227f21461050157806360bba03d1461052157806360eef7411461054157806363a803e11461057157600080fd5b8063188d1644116102bc5780632b112e49116102965780632b112e4914610440578063313ce56714610455578063332402f8146104715780633f4218e01461049157600080fd5b8063188d1644146103f5578063234e94941461040b57806323b872dd1461042057600080fd5b80630445b6671461030f57806304a66b481461033857806306fdde031461035a578063095ea7b31461039a578063178a18ce146103ca57806318160ddd146103e057600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560205481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5061035861035336600461217b565b6109de565b005b34801561036657600080fd5b5060408051808201909152600e81526d446573747261204e6574776f726b60901b60208201525b60405161032f91906121b6565b3480156103a657600080fd5b506103ba6103b5366004612219565b610b0c565b604051901515815260200161032f565b3480156103d657600080fd5b50610325600a5481565b3480156103ec57600080fd5b50600354610325565b34801561040157600080fd5b50610325601c5481565b34801561041757600080fd5b50610325610b79565b34801561042c57600080fd5b506103ba61043b366004612245565b610b99565b34801561044c57600080fd5b50610325610c2e565b34801561046157600080fd5b506040516012815260200161032f565b34801561047d57600080fd5b506103ba61048c366004612286565b610c6f565b34801561049d57600080fd5b506103ba6104ac3660046122bf565b600b6020526000908152604090205460ff1681565b3480156104cd57600080fd5b506103586104dc3660046122f1565b610d16565b3480156104ed57600080fd5b506103586104fc366004612326565b610db2565b34801561050d57600080fd5b5061035861051c366004612352565b610e2b565b34801561052d57600080fd5b5061035861053c3660046122f1565b610f31565b34801561054d57600080fd5b506103ba61055c3660046122bf565b600d6020526000908152604090205460ff1681565b34801561057d57600080fd5b50610325610f64565b34801561059257600080fd5b506103586105a13660046122f1565b610f7f565b3480156105b257600080fd5b50610325601e5481565b3480156105c857600080fd5b506103586105d73660046123c3565b610fb2565b3480156105e857600080fd5b50601f546103ba90610100900460ff1681565b34801561060757600080fd5b506103256106163660046122bf565b6001600160a01b031660009081526007602052604090205490565b34801561063d57600080fd5b506103586110f7565b34801561065257600080fd5b506015546103ba9060ff1681565b34801561066c57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b34801561069e57600080fd5b506103ba6106ad3660046122bf565b600c6020526000908152604090205460ff1681565b3480156106ce57600080fd5b506000546001600160a01b031661067a565b3480156106ec57600080fd5b506040805180820190915260058152644453796e6360d81b602082015261038d565b34801561071a57600080fd5b506103ba6107293660046122bf565b61110b565b34801561073a57600080fd5b50610358610749366004612286565b611119565b34801561075a57600080fd5b5061032560215481565b34801561077057600080fd5b50601a5461067a906001600160a01b031681565b34801561079057600080fd5b506103ba61079f366004612219565b611159565b3480156107b057600080fd5b506103586107bf36600461242f565b611166565b3480156107d057600080fd5b506103256111b5565b3480156107e557600080fd5b506103586107f4366004612451565b6111d0565b34801561080557600080fd5b5060155461067a9061010090046001600160a01b031681565b34801561082a57600080fd5b50610358611377565b34801561083f57600080fd5b50610325601d5481565b34801561085557600080fd5b506103586108643660046124a5565b611417565b34801561087557600080fd5b506103586108843660046124d8565b61146e565b34801561089557600080fd5b5061035861147b565b3480156108aa57600080fd5b506103256108b9366004612286565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108f057600080fd5b506103256108ff3660046124d8565b60096020526000908152604090205481565b34801561091d57600080fd5b5060165461067a906001600160a01b031681565b34801561093d57600080fd5b5061032561094c3660046124f1565b611497565b34801561095d57600080fd5b5061035861096c3660046122bf565b6114af565b34801561097d57600080fd5b5061035861098c3660046122f1565b611528565b34801561099d57600080fd5b5060175461067a906001600160a01b031681565b3480156109bd57600080fd5b506103256109cc3660046122bf565b601b6020526000908152604090205481565b6109e661155b565b6109f08486612522565b60026109fc8688612522565b610a069190612535565b610a11906002612557565b14610a8b576040805162461bcd60e51b81526020600482015260248101919091527f4c697175696469747920666565206d75737420626520616e206576656e206e7560448201527f6d62657220666f7220726f756e64696e6720636f6d7061746962696c6974792e60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610aa98386612522565b601255610ab68285612522565b601381905560148290556012546040805191825260208201929092529081018290527f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459060600160405180910390a15050505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b679086815260200190565b60405180910390a35060015b92915050565b6000610b876012600a612652565b600554610b949190612535565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610c19576001600160a01b0384166000908152600860209081526040808320338452909152902054610bf4908390612661565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610c248484846115b5565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610c6291612522565b600354610b949190612661565b60155460009060ff16158015610c9e57506001600160a01b03821660009081526019602052604090205460ff16155b8015610cc357506001600160a01b03831660009081526019602052604090205460ff16155b15610cd057506000610b73565b6001600160a01b0383166000908152600b602052604090205460ff16158015610c275750506001600160a01b03166000908152600b602052604090205460ff1615919050565b610d1e61155b565b601a546001600160a01b0390811690831603610d875760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b6064820152608401610a82565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b610dba61155b565b600083118015610dca5750600082115b8015610dd65750600081115b8015610de457506127108111155b610ded57600080fd5b8083600354610dfc9190612557565b610e069190612535565b6004556003548190610e19908490612557565b610e239190612535565b600555505050565b3360009081526023602052604090205460ff1680610e5357506000546001600160a01b031633145b610e6f5760405162461bcd60e51b8152600401610a8290612674565b478015610f2c5760006001600160a01b0383166064610e8e8685612557565b610e989190612535565b604051600081818185875af1925050503d8060008114610ed4576040519150601f19603f3d011682016040523d82523d6000602084013e610ed9565b606091505b5050905080610f2a5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e647300000000000000006044820152606401610a82565b505b505050565b610f3961155b565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6000610f726012600a612652565b600654610b949190612535565b610f8761155b565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610fba61155b565b8215801590610fc857508083145b610fd157600080fd5b3360005b848110156110ef5760196000878784818110610ff357610ff36126ab565b905060200201602081019061100891906122bf565b6001600160a01b0316815260208101919091526040016000205460ff161580156110775750600d6000878784818110611043576110436126ab565b905060200201602081019061105891906122bf565b6001600160a01b0316815260208101919091526040016000205460ff16155b156110dd576110db82878784818110611092576110926126ab565b90506020020160208101906110a791906122bf565b6110b36012600a612652565b8787868181106110c5576110c56126ab565b905060200201356110d69190612557565b6119cf565b505b806110e7816126c1565b915050610fd5565b505050505050565b6110ff61155b565b6111096000611a89565b565b6000610b7382600019610b0c565b61112161155b565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610c273384846115b5565b61116e61155b565b60008211801561117e5750600081115b801561118c57506127108111155b61119557600080fd5b80826003546111a49190612557565b6111ae9190612535565b6006555050565b60006111c36012600a612652565b600454610b949190612535565b3360009081526023602052604090205460ff16806111f857506000546001600160a01b031633145b6112145760405162461bcd60e51b8152600401610a8290612674565b60005b82811015610f2a5781156112b257601c8054906000611235836126c1565b91905055507f80e51449b76c50e375a3b72e31ca76d6ed586f0a7ff8fa6f310da7dbbcc338633285858481811061126e5761126e6126ab565b905060200201602081019061128391906122bf565b604080516001600160a01b039384168152929091166020830152439082015260600160405180910390a1611312565b601b60008585848181106112c8576112c86126ab565b90506020020160208101906112dd91906122bf565b6001600160a01b031681526020810191909152604001600020541561131257601c805490600061130c836126da565b91905055505b8161131e576000611320565b435b601b6000868685818110611336576113366126ab565b905060200201602081019061134b91906122bf565b6001600160a01b031681526020810191909152604001600020558061136f816126c1565b915050611217565b3360009081526023602052604090205460ff168061139f57506000546001600160a01b031633145b6113bb5760405162461bcd60e51b8152600401610a8290612674565b601f5460ff16156114065760405162461bcd60e51b815260206004820152601560248201527443616e27742072652d6f70656e2074726164696e6760581b6044820152606401610a82565b601f805461ffff1916610101179055565b61141f61155b565b6000821161142c57600080fd5b601f805461ff0019166101008515150217905560035461144d908390612535565b60205561145c6012600a612652565b6114669082612557565b602155505050565b61147661155b565b600a55565b61148361155b565b6015805460ff19811660ff90911615179055565b600081156114a757505060135490565b505060125490565b6114b761155b565b6001600160a01b03811661151c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a82565b61152581611a89565b50565b61153061155b565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a82565b60006001600160a01b03841661160d5760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d2030783000000000000000006044820152606401610a82565b6001600160a01b03831661165c5760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b6044820152606401610a82565b600082116116a45760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610a82565b6001600160a01b0384166000908152600760205260409020548211156117035760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610a82565b601d5415801561172b57506001600160a01b03831660009081526019602052604090205460ff165b156117a5576001600160a01b0384166000908152600d602052604090205460ff166117985760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610a82565b6117a543601d5542601e55565b601f5460ff1661183a576001600160a01b0384166000908152600d602052604090205460ff16806117ee57506001600160a01b0383166000908152600d602052604090205460ff165b61183a5760405162461bcd60e51b815260206004820152601c60248201527f54726164696e67206973206e6f74206c61756e63686564207965742e000000006044820152606401610a82565b611845848484611ad9565b6001600160a01b03831660009081526019602052604090205460ff1615801561187c57506001546001600160a01b03848116911614155b156118ab576001600160a01b0383166000908152600c602052604090205460ff166118ab576118ab8383611bf9565b60225460ff16156118c8576118c18484846119cf565b9050610c27565b6001600160a01b0384166000908152600760205260409020546118ec908390612661565b6001600160a01b038516600090815260076020526040902055816119108585610c6f565b156119445761191f8484611c7c565b905061192a84611cfa565b80156119365750600083115b156119445761194483611dad565b6001600160a01b038416600090815260076020526040902054611968908290612522565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bc9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600760205260408120546119f3908390612661565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611a23908390612522565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a779086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff1680611b1857506001600160a01b0382166000908152600c602052604090205460ff165b15611b2257505050565b6001600160a01b03831660009081526019602052604090205460ff16611b4a57600554611b4e565b6004545b811115611b9d5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e74206578636565647320746865207478206c696d69742e000000006044820152606401610a82565b6001600160a01b0383166000908152601b602052604090205415610f2c5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420626c61636b6c69737465642160681b6044820152606401610a82565b6006546001600160a01b0383166000908152600760205260409020548190611c22908490612522565b1115610f2c5760405162461bcd60e51b815260206004820152602360248201527f416d6f756e74206578636565647320746865206d61782077616c6c65742073696044820152623d329760e91b6064820152608401610a82565b6001600160a01b03821660009081526019602052604081205460145460ff909116908290611ca983611497565b611cb39086612557565b611cbd9190612535565b30600090815260076020526040812080549293508392909190611ce1908490612522565b90915550611cf190508185612661565b95945050505050565b3360009081526019602052604081205460ff16158015611d1d575060225460ff16155b8015611d305750601f54610100900460ff165b8015611d4c5750600a5443600090815260096020526040902054105b8015611d7057506001600160a01b03821660009081526019602052604090205460ff165b8015611d8d57506021543060009081526007602052604090205410155b8015610b7357506000601354601254611da69190612522565b1192915050565b6022805460ff19166001179055601354601254600091611dcc91612522565b905060006020548310611de157602054611de3565b825b30600090815260076020526040902054909150811115611e0f5750306000908152600760205260409020545b6000601154601054611e219190612522565b90506000836002611e328486612557565b611e3c9190612535565b611e469190612535565b9050611e528184612661565b60408051600280825260608201835292955060009290916020830190803683370190505090503081600081518110611e8c57611e8c6126ab565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0991906126f1565b81600181518110611f1c57611f1c6126ab565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611f6690889060009087903090429060040161270e565b600060405180830381600087803b158015611f8057600080fd5b505af1158015611f94573d6000803e3d6000fd5b5050505060008147611fa69190612661565b90506000611fb5600287612535565b611fbf9089612661565b90506000816002611fd08986612557565b611fda9190612535565b611fe49190612535565b90506000611ff28285612661565b90508015612051576016546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612047576040519150601f19603f3d011682016040523d82523d6000602084013e61204c565b606091505b505050505b86156120f55760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af11580156120cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120f1919061277f565b5050505b43600090815260096020526040902054612110906001612522565b4360009081526009602090815260409182902092909255805183815291820184905281018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506022805460ff19169055505050505050505050565b600080600080600060a0868803121561219357600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156121e3578581018301518582016040015282016121c7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152557600080fd5b6000806040838503121561222c57600080fd5b823561223781612204565b946020939093013593505050565b60008060006060848603121561225a57600080fd5b833561226581612204565b9250602084013561227581612204565b929592945050506040919091013590565b6000806040838503121561229957600080fd5b82356122a481612204565b915060208301356122b481612204565b809150509250929050565b6000602082840312156122d157600080fd5b8135610c2781612204565b803580151581146122ec57600080fd5b919050565b6000806040838503121561230457600080fd5b823561230f81612204565b915061231d602084016122dc565b90509250929050565b60008060006060848603121561233b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561236557600080fd5b8235915060208301356122b481612204565b60008083601f84011261238957600080fd5b50813567ffffffffffffffff8111156123a157600080fd5b6020830191508360208260051b85010111156123bc57600080fd5b9250929050565b600080600080604085870312156123d957600080fd5b843567ffffffffffffffff808211156123f157600080fd5b6123fd88838901612377565b9096509450602087013591508082111561241657600080fd5b5061242387828801612377565b95989497509550505050565b6000806040838503121561244257600080fd5b50508035926020909101359150565b60008060006040848603121561246657600080fd5b833567ffffffffffffffff81111561247d57600080fd5b61248986828701612377565b909450925061249c9050602085016122dc565b90509250925092565b6000806000606084860312156124ba57600080fd5b6124c3846122dc565b95602085013595506040909401359392505050565b6000602082840312156124ea57600080fd5b5035919050565b60006020828403121561250357600080fd5b610c27826122dc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b7357610b7361250c565b60008261255257634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b7357610b7361250c565b600181815b808511156125a957816000190482111561258f5761258f61250c565b8085161561259c57918102915b93841c9390800290612573565b509250929050565b6000826125c057506001610b73565b816125cd57506000610b73565b81600181146125e357600281146125ed57612609565b6001915050610b73565b60ff8411156125fe576125fe61250c565b50506001821b610b73565b5060208310610133831016604e8410600b841016171561262c575081810a610b73565b612636838361256e565b806000190482111561264a5761264a61250c565b029392505050565b6000610c2760ff8416836125b1565b81810381811115610b7357610b7361250c565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016126d3576126d361250c565b5060010190565b6000816126e9576126e961250c565b506000190190565b60006020828403121561270357600080fd5b8151610c2781612204565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561275e5784516001600160a01b031683529383019391830191600101612739565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561279457600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122022b94021eab2175421fad102ac836f5e7d71d53e10ad6828e6dc296941b6d21364736f6c63430008110033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063893d20e811610190578063c9567bf9116100dc578063e8b574f211610095578063f2fde38b1161006f578063f2fde38b14610951578063f84ba65d14610971578063f887ea4014610991578063f9f92be4146109b157600080fd5b8063e8b574f2146108e4578063e96fada214610911578063f1f3bca31461093157600080fd5b8063c9567bf91461081e578063d00efb2f14610833578063d088935814610849578063d58d850c14610869578063d912b2ce14610889578063dd62ed3e1461089e57600080fd5b8063a845bd8611610149578063abe57e7011610123578063abe57e70146107a4578063bafe446b146107c4578063bb2188b4146107d9578063bfa21d6a146107f957600080fd5b8063a845bd861461074e578063a8aa1b3114610764578063a9059cbb1461078457600080fd5b8063893d20e8146106605780638b42507f146106925780638da5cb5b146106c257806395d89b41146106e05780639fdc80051461070e578063a4b45c001461072e57600080fd5b8063492a937b1161024f578063658d4b7f116102085780636ddd1713116101e25780636ddd1713146105dc57806370a08231146105fb578063715018a6146106315780638124f7ac1461064657600080fd5b8063658d4b7f1461058657806365cf7c9b146105a657806367243482146105bc57600080fd5b8063492a937b146104c157806350713935146104e157806356a227f21461050157806360bba03d1461052157806360eef7411461054157806363a803e11461057157600080fd5b8063188d1644116102bc5780632b112e49116102965780632b112e4914610440578063313ce56714610455578063332402f8146104715780633f4218e01461049157600080fd5b8063188d1644146103f5578063234e94941461040b57806323b872dd1461042057600080fd5b80630445b6671461030f57806304a66b481461033857806306fdde031461035a578063095ea7b31461039a578063178a18ce146103ca57806318160ddd146103e057600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032560205481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5061035861035336600461217b565b6109de565b005b34801561036657600080fd5b5060408051808201909152600e81526d446573747261204e6574776f726b60901b60208201525b60405161032f91906121b6565b3480156103a657600080fd5b506103ba6103b5366004612219565b610b0c565b604051901515815260200161032f565b3480156103d657600080fd5b50610325600a5481565b3480156103ec57600080fd5b50600354610325565b34801561040157600080fd5b50610325601c5481565b34801561041757600080fd5b50610325610b79565b34801561042c57600080fd5b506103ba61043b366004612245565b610b99565b34801561044c57600080fd5b50610325610c2e565b34801561046157600080fd5b506040516012815260200161032f565b34801561047d57600080fd5b506103ba61048c366004612286565b610c6f565b34801561049d57600080fd5b506103ba6104ac3660046122bf565b600b6020526000908152604090205460ff1681565b3480156104cd57600080fd5b506103586104dc3660046122f1565b610d16565b3480156104ed57600080fd5b506103586104fc366004612326565b610db2565b34801561050d57600080fd5b5061035861051c366004612352565b610e2b565b34801561052d57600080fd5b5061035861053c3660046122f1565b610f31565b34801561054d57600080fd5b506103ba61055c3660046122bf565b600d6020526000908152604090205460ff1681565b34801561057d57600080fd5b50610325610f64565b34801561059257600080fd5b506103586105a13660046122f1565b610f7f565b3480156105b257600080fd5b50610325601e5481565b3480156105c857600080fd5b506103586105d73660046123c3565b610fb2565b3480156105e857600080fd5b50601f546103ba90610100900460ff1681565b34801561060757600080fd5b506103256106163660046122bf565b6001600160a01b031660009081526007602052604090205490565b34801561063d57600080fd5b506103586110f7565b34801561065257600080fd5b506015546103ba9060ff1681565b34801561066c57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b34801561069e57600080fd5b506103ba6106ad3660046122bf565b600c6020526000908152604090205460ff1681565b3480156106ce57600080fd5b506000546001600160a01b031661067a565b3480156106ec57600080fd5b506040805180820190915260058152644453796e6360d81b602082015261038d565b34801561071a57600080fd5b506103ba6107293660046122bf565b61110b565b34801561073a57600080fd5b50610358610749366004612286565b611119565b34801561075a57600080fd5b5061032560215481565b34801561077057600080fd5b50601a5461067a906001600160a01b031681565b34801561079057600080fd5b506103ba61079f366004612219565b611159565b3480156107b057600080fd5b506103586107bf36600461242f565b611166565b3480156107d057600080fd5b506103256111b5565b3480156107e557600080fd5b506103586107f4366004612451565b6111d0565b34801561080557600080fd5b5060155461067a9061010090046001600160a01b031681565b34801561082a57600080fd5b50610358611377565b34801561083f57600080fd5b50610325601d5481565b34801561085557600080fd5b506103586108643660046124a5565b611417565b34801561087557600080fd5b506103586108843660046124d8565b61146e565b34801561089557600080fd5b5061035861147b565b3480156108aa57600080fd5b506103256108b9366004612286565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156108f057600080fd5b506103256108ff3660046124d8565b60096020526000908152604090205481565b34801561091d57600080fd5b5060165461067a906001600160a01b031681565b34801561093d57600080fd5b5061032561094c3660046124f1565b611497565b34801561095d57600080fd5b5061035861096c3660046122bf565b6114af565b34801561097d57600080fd5b5061035861098c3660046122f1565b611528565b34801561099d57600080fd5b5060175461067a906001600160a01b031681565b3480156109bd57600080fd5b506103256109cc3660046122bf565b601b6020526000908152604090205481565b6109e661155b565b6109f08486612522565b60026109fc8688612522565b610a069190612535565b610a11906002612557565b14610a8b576040805162461bcd60e51b81526020600482015260248101919091527f4c697175696469747920666565206d75737420626520616e206576656e206e7560448201527f6d62657220666f7220726f756e64696e6720636f6d7061746962696c6974792e60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610aa98386612522565b601255610ab68285612522565b601381905560148290556012546040805191825260208201929092529081018290527f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459060600160405180910390a15050505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b679086815260200190565b60405180910390a35060015b92915050565b6000610b876012600a612652565b600554610b949190612535565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610c19576001600160a01b0384166000908152600860209081526040808320338452909152902054610bf4908390612661565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610c248484846115b5565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610c6291612522565b600354610b949190612661565b60155460009060ff16158015610c9e57506001600160a01b03821660009081526019602052604090205460ff16155b8015610cc357506001600160a01b03831660009081526019602052604090205460ff16155b15610cd057506000610b73565b6001600160a01b0383166000908152600b602052604090205460ff16158015610c275750506001600160a01b03166000908152600b602052604090205460ff1615919050565b610d1e61155b565b601a546001600160a01b0390811690831603610d875760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b6064820152608401610a82565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b610dba61155b565b600083118015610dca5750600082115b8015610dd65750600081115b8015610de457506127108111155b610ded57600080fd5b8083600354610dfc9190612557565b610e069190612535565b6004556003548190610e19908490612557565b610e239190612535565b600555505050565b3360009081526023602052604090205460ff1680610e5357506000546001600160a01b031633145b610e6f5760405162461bcd60e51b8152600401610a8290612674565b478015610f2c5760006001600160a01b0383166064610e8e8685612557565b610e989190612535565b604051600081818185875af1925050503d8060008114610ed4576040519150601f19603f3d011682016040523d82523d6000602084013e610ed9565b606091505b5050905080610f2a5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e647300000000000000006044820152606401610a82565b505b505050565b610f3961155b565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6000610f726012600a612652565b600654610b949190612535565b610f8761155b565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610fba61155b565b8215801590610fc857508083145b610fd157600080fd5b3360005b848110156110ef5760196000878784818110610ff357610ff36126ab565b905060200201602081019061100891906122bf565b6001600160a01b0316815260208101919091526040016000205460ff161580156110775750600d6000878784818110611043576110436126ab565b905060200201602081019061105891906122bf565b6001600160a01b0316815260208101919091526040016000205460ff16155b156110dd576110db82878784818110611092576110926126ab565b90506020020160208101906110a791906122bf565b6110b36012600a612652565b8787868181106110c5576110c56126ab565b905060200201356110d69190612557565b6119cf565b505b806110e7816126c1565b915050610fd5565b505050505050565b6110ff61155b565b6111096000611a89565b565b6000610b7382600019610b0c565b61112161155b565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610c273384846115b5565b61116e61155b565b60008211801561117e5750600081115b801561118c57506127108111155b61119557600080fd5b80826003546111a49190612557565b6111ae9190612535565b6006555050565b60006111c36012600a612652565b600454610b949190612535565b3360009081526023602052604090205460ff16806111f857506000546001600160a01b031633145b6112145760405162461bcd60e51b8152600401610a8290612674565b60005b82811015610f2a5781156112b257601c8054906000611235836126c1565b91905055507f80e51449b76c50e375a3b72e31ca76d6ed586f0a7ff8fa6f310da7dbbcc338633285858481811061126e5761126e6126ab565b905060200201602081019061128391906122bf565b604080516001600160a01b039384168152929091166020830152439082015260600160405180910390a1611312565b601b60008585848181106112c8576112c86126ab565b90506020020160208101906112dd91906122bf565b6001600160a01b031681526020810191909152604001600020541561131257601c805490600061130c836126da565b91905055505b8161131e576000611320565b435b601b6000868685818110611336576113366126ab565b905060200201602081019061134b91906122bf565b6001600160a01b031681526020810191909152604001600020558061136f816126c1565b915050611217565b3360009081526023602052604090205460ff168061139f57506000546001600160a01b031633145b6113bb5760405162461bcd60e51b8152600401610a8290612674565b601f5460ff16156114065760405162461bcd60e51b815260206004820152601560248201527443616e27742072652d6f70656e2074726164696e6760581b6044820152606401610a82565b601f805461ffff1916610101179055565b61141f61155b565b6000821161142c57600080fd5b601f805461ff0019166101008515150217905560035461144d908390612535565b60205561145c6012600a612652565b6114669082612557565b602155505050565b61147661155b565b600a55565b61148361155b565b6015805460ff19811660ff90911615179055565b600081156114a757505060135490565b505060125490565b6114b761155b565b6001600160a01b03811661151c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a82565b61152581611a89565b50565b61153061155b565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a82565b60006001600160a01b03841661160d5760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d2030783000000000000000006044820152606401610a82565b6001600160a01b03831661165c5760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b6044820152606401610a82565b600082116116a45760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610a82565b6001600160a01b0384166000908152600760205260409020548211156117035760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610a82565b601d5415801561172b57506001600160a01b03831660009081526019602052604090205460ff165b156117a5576001600160a01b0384166000908152600d602052604090205460ff166117985760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610a82565b6117a543601d5542601e55565b601f5460ff1661183a576001600160a01b0384166000908152600d602052604090205460ff16806117ee57506001600160a01b0383166000908152600d602052604090205460ff165b61183a5760405162461bcd60e51b815260206004820152601c60248201527f54726164696e67206973206e6f74206c61756e63686564207965742e000000006044820152606401610a82565b611845848484611ad9565b6001600160a01b03831660009081526019602052604090205460ff1615801561187c57506001546001600160a01b03848116911614155b156118ab576001600160a01b0383166000908152600c602052604090205460ff166118ab576118ab8383611bf9565b60225460ff16156118c8576118c18484846119cf565b9050610c27565b6001600160a01b0384166000908152600760205260409020546118ec908390612661565b6001600160a01b038516600090815260076020526040902055816119108585610c6f565b156119445761191f8484611c7c565b905061192a84611cfa565b80156119365750600083115b156119445761194483611dad565b6001600160a01b038416600090815260076020526040902054611968908290612522565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119bc9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600760205260408120546119f3908390612661565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611a23908390612522565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a779086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff1680611b1857506001600160a01b0382166000908152600c602052604090205460ff165b15611b2257505050565b6001600160a01b03831660009081526019602052604090205460ff16611b4a57600554611b4e565b6004545b811115611b9d5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e74206578636565647320746865207478206c696d69742e000000006044820152606401610a82565b6001600160a01b0383166000908152601b602052604090205415610f2c5760405162461bcd60e51b815260206004820152601360248201527257616c6c657420626c61636b6c69737465642160681b6044820152606401610a82565b6006546001600160a01b0383166000908152600760205260409020548190611c22908490612522565b1115610f2c5760405162461bcd60e51b815260206004820152602360248201527f416d6f756e74206578636565647320746865206d61782077616c6c65742073696044820152623d329760e91b6064820152608401610a82565b6001600160a01b03821660009081526019602052604081205460145460ff909116908290611ca983611497565b611cb39086612557565b611cbd9190612535565b30600090815260076020526040812080549293508392909190611ce1908490612522565b90915550611cf190508185612661565b95945050505050565b3360009081526019602052604081205460ff16158015611d1d575060225460ff16155b8015611d305750601f54610100900460ff165b8015611d4c5750600a5443600090815260096020526040902054105b8015611d7057506001600160a01b03821660009081526019602052604090205460ff165b8015611d8d57506021543060009081526007602052604090205410155b8015610b7357506000601354601254611da69190612522565b1192915050565b6022805460ff19166001179055601354601254600091611dcc91612522565b905060006020548310611de157602054611de3565b825b30600090815260076020526040902054909150811115611e0f5750306000908152600760205260409020545b6000601154601054611e219190612522565b90506000836002611e328486612557565b611e3c9190612535565b611e469190612535565b9050611e528184612661565b60408051600280825260608201835292955060009290916020830190803683370190505090503081600081518110611e8c57611e8c6126ab565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ee5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0991906126f1565b81600181518110611f1c57611f1c6126ab565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac94790611f6690889060009087903090429060040161270e565b600060405180830381600087803b158015611f8057600080fd5b505af1158015611f94573d6000803e3d6000fd5b5050505060008147611fa69190612661565b90506000611fb5600287612535565b611fbf9089612661565b90506000816002611fd08986612557565b611fda9190612535565b611fe49190612535565b90506000611ff28285612661565b90508015612051576016546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612047576040519150601f19603f3d011682016040523d82523d6000602084013e61204c565b606091505b505050505b86156120f55760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af11580156120cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120f1919061277f565b5050505b43600090815260096020526040902054612110906001612522565b4360009081526009602090815260409182902092909255805183815291820184905281018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506022805460ff19169055505050505050505050565b600080600080600060a0868803121561219357600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156121e3578581018301518582016040015282016121c7565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152557600080fd5b6000806040838503121561222c57600080fd5b823561223781612204565b946020939093013593505050565b60008060006060848603121561225a57600080fd5b833561226581612204565b9250602084013561227581612204565b929592945050506040919091013590565b6000806040838503121561229957600080fd5b82356122a481612204565b915060208301356122b481612204565b809150509250929050565b6000602082840312156122d157600080fd5b8135610c2781612204565b803580151581146122ec57600080fd5b919050565b6000806040838503121561230457600080fd5b823561230f81612204565b915061231d602084016122dc565b90509250929050565b60008060006060848603121561233b57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561236557600080fd5b8235915060208301356122b481612204565b60008083601f84011261238957600080fd5b50813567ffffffffffffffff8111156123a157600080fd5b6020830191508360208260051b85010111156123bc57600080fd5b9250929050565b600080600080604085870312156123d957600080fd5b843567ffffffffffffffff808211156123f157600080fd5b6123fd88838901612377565b9096509450602087013591508082111561241657600080fd5b5061242387828801612377565b95989497509550505050565b6000806040838503121561244257600080fd5b50508035926020909101359150565b60008060006040848603121561246657600080fd5b833567ffffffffffffffff81111561247d57600080fd5b61248986828701612377565b909450925061249c9050602085016122dc565b90509250925092565b6000806000606084860312156124ba57600080fd5b6124c3846122dc565b95602085013595506040909401359392505050565b6000602082840312156124ea57600080fd5b5035919050565b60006020828403121561250357600080fd5b610c27826122dc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b7357610b7361250c565b60008261255257634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b7357610b7361250c565b600181815b808511156125a957816000190482111561258f5761258f61250c565b8085161561259c57918102915b93841c9390800290612573565b509250929050565b6000826125c057506001610b73565b816125cd57506000610b73565b81600181146125e357600281146125ed57612609565b6001915050610b73565b60ff8411156125fe576125fe61250c565b50506001821b610b73565b5060208310610133831016604e8410600b841016171561262c575081810a610b73565b612636838361256e565b806000190482111561264a5761264a61250c565b029392505050565b6000610c2760ff8416836125b1565b81810381811115610b7357610b7361250c565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016126d3576126d361250c565b5060010190565b6000816126e9576126e961250c565b506000190190565b60006020828403121561270357600080fd5b8151610c2781612204565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561275e5784516001600160a01b031683529383019391830191600101612739565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561279457600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122022b94021eab2175421fad102ac836f5e7d71d53e10ad6828e6dc296941b6d21364736f6c63430008110033
Deployed Bytecode Sourcemap
6957:14856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8804:50;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8804:50:0;;;;;;;;20004:791;;;;;;;;;;-1:-1:-1;20004:791:0;;;;;:::i;:::-;;:::i;:::-;;10258:79;;;;;;;;;;-1:-1:-1;10326:5:0;;;;;;;;;;;;-1:-1:-1;;;10326:5:0;;;;10258:79;;;;;;;:::i;11068:217::-;;;;;;;;;;-1:-1:-1;11068:217:0;;;;;:::i;:::-;;:::i;:::-;;;1829:14:1;;1822:22;1804:41;;1792:2;1777:18;11068:217:0;1664:187:1;7672:36:0;;;;;;;;;;;;;;;;9982:96;;;;;;;;;;-1:-1:-1;10060:12:0;;9982:96;;8630:29;;;;;;;;;;;;;;;;10547:115;;;;;;;;;;;;;:::i;12935:361::-;;;;;;;;;;-1:-1:-1;12935:361:0;;;;;:::i;:::-;;:::i;21456:132::-;;;;;;;;;;;;;:::i;10084:79::-;;;;;;;;;;-1:-1:-1;10084:79:0;;7272:2;2459:36:1;;2447:2;2432:18;10084:79:0;2317:184:1;16038:268:0;;;;;;;;;;-1:-1:-1;16038:268:0;;;;;:::i;:::-;;:::i;7715:43::-;;;;;;;;;;-1:-1:-1;7715:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18894:174;;;;;;;;;;-1:-1:-1;18894:174:0;;;;;:::i;:::-;;:::i;19180:359::-;;;;;;;;;;-1:-1:-1;19180:359:0;;;;;:::i;:::-;;:::i;11993:320::-;;;;;;;;;;-1:-1:-1;11993:320:0;;;;;:::i;:::-;;:::i;11419:114::-;;;;;;;;;;-1:-1:-1;11419:114:0;;;;;:::i;:::-;;:::i;7815:50::-;;;;;;;;;;-1:-1:-1;7815:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10668:113;;;;;;;;;;;;;:::i;19758:::-;;;;;;;;;;-1:-1:-1;19758:113:0;;;;;:::i;:::-;;:::i;8697:30::-;;;;;;;;;;;;;;;;11539:448;;;;;;;;;;-1:-1:-1;11539:448:0;;;;;:::i;:::-;;:::i;8768:31::-;;;;;;;;;;-1:-1:-1;8768:31:0;;;;;;;;;;;10787:113;;;;;;;;;;-1:-1:-1;10787:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;10876:18:0;10853:7;10876:18;;;:9;:18;;;;;;;10787:113;6473:97;;;;;;;;;;;;;:::i;8167:31::-;;;;;;;;;;-1:-1:-1;8167:31:0;;;;;;;;10343:79;;;;;;;;;;-1:-1:-1;10386:7:0;6323:6;-1:-1:-1;;;;;6323:6:0;10343:79;;;-1:-1:-1;;;;;5591:32:1;;;5573:51;;5561:2;5546:18;10343:79:0;5427:203:1;7763:47:0;;;;;;;;;;-1:-1:-1;7763:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6254:81;;;;;;;;;;-1:-1:-1;6300:7:0;6323:6;-1:-1:-1;;;;;6323:6:0;6254:81;;10169:83;;;;;;;;;;-1:-1:-1;10239:7:0;;;;;;;;;;;;-1:-1:-1;;;10239:7:0;;;;10169:83;;11291:122;;;;;;;;;;-1:-1:-1;11291:122:0;;;;;:::i;:::-;;:::i;20894:247::-;;;;;;;;;;-1:-1:-1;20894:247:0;;;;;:::i;:::-;;:::i;8859:51::-;;;;;;;;;;;;;;;;8555:19;;;;;;;;;;-1:-1:-1;8555:19:0;;;;-1:-1:-1;;;;;8555:19:0;;;12764:165;;;;;;;;;;-1:-1:-1;12764:165:0;;;;;:::i;:::-;;:::i;19545:207::-;;;;;;;;;;-1:-1:-1;19545:207:0;;;;;:::i;:::-;;:::i;10428:113::-;;;;;;;;;;;;;:::i;12319:439::-;;;;;;;;;;-1:-1:-1;12319:439:0;;;;;:::i;:::-;;:::i;8205:97::-;;;;;;;;;;-1:-1:-1;8205:97:0;;;;;;;-1:-1:-1;;;;;8205:97:0;;;14918:160;;;;;;;;;;;;;:::i;8666:26::-;;;;;;;;;;;;;;;;21147:303;;;;;;;;;;-1:-1:-1;21147:303:0;;;;;:::i;:::-;;:::i;19074:100::-;;;;;;;;;;-1:-1:-1;19074:100:0;;;;;:::i;:::-;;:::i;20801:87::-;;;;;;;;;;;;;:::i;10906:156::-;;;;;;;;;;-1:-1:-1;10906:156:0;;;;;:::i;:::-;-1:-1:-1;;;;;11028:19:0;;;11005:7;11028:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10906:156;7617:50;;;;;;;;;;-1:-1:-1;7617:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;8307:97;;;;;;;;;;-1:-1:-1;8307:97:0;;;;-1:-1:-1;;;;;8307:97:0;;;16312:135;;;;;;;;;;-1:-1:-1;16312:135:0;;;;;:::i;:::-;;:::i;6576:191::-;;;;;;;;;;-1:-1:-1;6576:191:0;;;;;:::i;:::-;;:::i;19877:121::-;;;;;;;;;;-1:-1:-1;19877:121:0;;;;;:::i;:::-;;:::i;8411:24::-;;;;;;;;;;-1:-1:-1;8411:24:0;;;;-1:-1:-1;;;;;8411:24:0;;;8581:44;;;;;;;;;;-1:-1:-1;8581:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;20004:791;6221:13;:11;:13::i;:::-;20286:36:::1;20305:17:::0;20286:16;:36:::1;:::i;:::-;20266:1;20226:36;20245:17:::0;20226:16;:36:::1;:::i;:::-;20225:42;;;;:::i;:::-;20224:48;::::0;20271:1:::1;20224:48;:::i;:::-;:99;20208:197;;;::::0;;-1:-1:-1;;;20208:197:0;;8398:2:1;20208:197:0::1;::::0;::::1;8380:21:1::0;8417:18;;;8410:30;;;;8476:34;8456:18;;;8449:62;8547:34;8527:18;;;8520:62;8599:19;;20208:197:0::1;;;;;;;;;20412:15;:34:::0;;;20453:16:::1;:36:::0;;;20496:15:::1;:34:::0;;;20537:16:::1;:36:::0;;;20594:35:::1;20514:16:::0;20430;20594:35:::1;:::i;:::-;20580:11;:49:::0;20651:37:::1;20671:17:::0;20651;:37:::1;:::i;:::-;20636:12;:52:::0;;;20695:14:::1;:32:::0;;;20747:11:::1;::::0;20739:50:::1;::::0;;8831:25:1;;;8887:2;8872:18;;8865:34;;;;8915:18;;;8908:34;;;20739:50:0::1;::::0;8819:2:1;8804:18;20739:50:0::1;;;;;;;20004:791:::0;;;;;:::o;11068:217::-;11183:10;11158:4;11171:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11171:32:0;;;;;;;;;;:41;;;11224:37;11158:4;;11171:32;;11224:37;;;;11206:6;160:25:1;;148:2;133:18;;14:177;11224:37:0;;;;;;;;-1:-1:-1;11275:4:0;11068:217;;;;;:::o;10547:115::-;10597:7;10640:15;7272:2;10640;:15;:::i;:::-;10620:16;;:36;;;;:::i;:::-;10613:43;;10547:115;:::o;12935:361::-;-1:-1:-1;;;;;13072:19:0;;13055:4;13072:19;;;:11;:19;;;;;;;;13092:10;13072:31;;;;;;;;-1:-1:-1;;13072:52:0;13068:167;;-1:-1:-1;;;;;13178:19:0;;;;;;:11;:19;;;;;;;;13198:10;13178:31;;;;;;;;:49;;13221:6;;13178:49;:::i;:::-;-1:-1:-1;;;;;13135:19:0;;;;;;:11;:19;;;;;;;;13155:10;13135:31;;;;;;;:92;13068:167;13250:40;13264:6;13272:9;13283:6;13250:13;:40::i;:::-;13243:47;;12935:361;;;;;;:::o;21456:132::-;21576:4;;-1:-1:-1;;;;;21576:4:0;;;21509:7;10876:18;;;:9;:18;;;;;;;21558:4;;;;;10876:18;;;;;21509:7;;21548:33;;;:::i;:::-;21532:12;;:50;;;;:::i;16038:268::-;16150:11;;16132:4;;16150:11;;16149:12;:42;;;;-1:-1:-1;;;;;;16166:25:0;;;;;;:14;:25;;;;;;;;16165:26;16149:42;:69;;;;-1:-1:-1;;;;;;16196:22:0;;;;;;:14;:22;;;;;;;;16195:23;16149:69;16145:94;;;-1:-1:-1;16234:5:0;16227:12;;16145:94;-1:-1:-1;;;;;16254:19:0;;;;;;:11;:19;;;;;;;;16253:20;:47;;;;-1:-1:-1;;;;;;;16278:22:0;;;;;:11;:22;;;;;;;;16277:23;;16246:54;-1:-1:-1;16038:268:0:o;18894:174::-;6221:13;:11;:13::i;:::-;18985:4:::1;::::0;-1:-1:-1;;;;;18985:4:0;;::::1;18979:10:::0;;::::1;::::0;18971:57:::1;;;::::0;-1:-1:-1;;;18971:57:0;;10671:2:1;18971:57:0::1;::::0;::::1;10653:21:1::0;10710:2;10690:18;;;10683:30;10749:34;10729:18;;;10722:62;-1:-1:-1;;;10800:18:1;;;10793:32;10842:19;;18971:57:0::1;10469:398:1::0;18971:57:0::1;-1:-1:-1::0;;;;;19035:18:0;;;::::1;;::::0;;;:14:::1;:18;::::0;;;;:27;;-1:-1:-1;;19035:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18894:174::o;19180:359::-;6221:13;:11;:13::i;:::-;19339:1:::1;19324:12;:16;:37;;;;;19360:1;19344:13;:17;19324:37;:52;;;;;19375:1;19365:7;:11;19324:52;:72;;;;;19391:5;19380:7;:16;;19324:72;19308:95;;;::::0;::::1;;19460:7;19444:12;19429;;:27;;;;:::i;:::-;19428:39;;;;:::i;:::-;19410:15;:57:::0;19494:12:::1;::::0;19526:7;;19494:28:::1;::::0;19509:13;;19494:28:::1;:::i;:::-;19493:40;;;;:::i;:::-;19474:16;:59:::0;-1:-1:-1;;;19180:359:0:o;11993:320::-;4409:10;9100:25;;;;:11;:25;;;;;;;;;:50;;-1:-1:-1;6300:7:0;6323:6;-1:-1:-1;;;;;6323:6:0;9129:10;:21;9100:50;9084:111;;;;-1:-1:-1;;;9084:111:0;;;;;;;:::i;:::-;12119:21:::1;12153:13:::0;;12149:159:::1;;12178:9;-1:-1:-1::0;;;;;12193:8:0;::::1;12242:3;12210:28;12222:16:::0;12210:9;:28:::1;:::i;:::-;12209:36;;;;:::i;:::-;12193:57;::::0;::::1;::::0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12177:73;;;12267:4;12259:41;;;::::0;-1:-1:-1;;;12259:41:0;;11640:2:1;12259:41:0::1;::::0;::::1;11622:21:1::0;11679:2;11659:18;;;11652:30;11718:26;11698:18;;;11691:54;11762:18;;12259:41:0::1;11438:348:1::0;12259:41:0::1;12168:140;12149:159;12092:221;11993:320:::0;;:::o;11419:114::-;6221:13;:11;:13::i;:::-;-1:-1:-1;;;;;11498:18:0;;;::::1;;::::0;;;:11:::1;:18;::::0;;;;:29;;-1:-1:-1;;11498:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11419:114::o;10668:113::-;10718:7;10759:15;7272:2;10759;:15;:::i;:::-;10741:14;;:34;;;;:::i;19758:113::-;6221:13;:11;:13::i;:::-;-1:-1:-1;;;;;19837:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19837:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19758:113::o;11539:448::-;6221:13;:11;:13::i;:::-;11663:20;;;;;:58:::1;;-1:-1:-1::0;11687:34:0;;::::1;11663:58;11655:67;;;::::0;::::1;;11744:10;11729:12;11763:219;11780:20:::0;;::::1;11763:219;;;11821:14;:28;11836:9;;11846:1;11836:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11821:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11821:28:0;;::::1;;11820:29;:66:::0;::::1;;;;11854:18;:32;11873:9;;11883:1;11873:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11854:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11854:32:0;;::::1;;11853:33;11820:66;11816:159;;;11899:66;11914:4;11920:9;;11930:1;11920:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11948:15;7272:2;11948;:15;:::i;:::-;11934:7;;11942:1;11934:10;;;;;;;:::i;:::-;;;;;;;:30;;;;:::i;:::-;11899:14;:66::i;:::-;;11816:159;11802:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11763:219;;;;11648:339;11539:448:::0;;;;:::o;6473:97::-;6221:13;:11;:13::i;:::-;6534:30:::1;6561:1;6534:18;:30::i;:::-;6473:97::o:0;11291:122::-;11352:4;11372:35;11380:7;-1:-1:-1;;11372:7:0;:35::i;20894:247::-;6221:13;:11;:13::i;:::-;21022:20:::1;:53:::0;;-1:-1:-1;;;;;;21022:53:0::1;;-1:-1:-1::0;;;;;21022:53:0;;::::1;;;::::0;;21082:20:::1;:53:::0;;-1:-1:-1;;;;;;21082:53:0::1;::::0;;;::::1;;::::0;;20894:247::o;12764:165::-;12859:4;12879:44;12893:10;12905:9;12916:6;12879:13;:44::i;19545:207::-;6221:13;:11;:13::i;:::-;19649:1:::1;19637:9;:13;:28;;;;;19664:1;19654:7;:11;19637:28;:48;;;;;19680:5;19669:7;:16;;19637:48;19629:57;;;::::0;::::1;;19739:7;19726:9;19711:12;;:24;;;;:::i;:::-;19710:36;;;;:::i;:::-;19693:14;:53:::0;-1:-1:-1;;19545:207:0:o;10428:113::-;10477:7;10519:15;7272:2;10519;:15;:::i;:::-;10500;;:35;;;;:::i;12319:439::-;4409:10;9100:25;;;;:11;:25;;;;;;;;;:50;;-1:-1:-1;6300:7:0;6323:6;-1:-1:-1;;;;;6323:6:0;9129:10;:21;9100:50;9084:111;;;;-1:-1:-1;;;9084:111:0;;;;;;;:::i;:::-;12436:6:::1;12431:322;12448:19:::0;;::::1;12431:322;;;12487:10;12483:200;;;12510:14;:16:::0;;;:14:::1;:16;::::0;::::1;:::i;:::-;;;;;;12542:55;12560:9;12571:8;;12580:1;12571:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;12542:55;::::0;;-1:-1:-1;;;;;12321:15:1;;;12303:34;;12373:15;;;;12368:2;12353:18;;12346:43;12584:12:0::1;12405:18:1::0;;;12398:34;12253:2;12238:18;12542:55:0::1;;;;;;;12483:200;;;12628:9;:22;12638:8;;12647:1;12638:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12628:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12628:22:0;;:27;12624:49:::1;;12657:14;:16:::0;;;:14:::1;:16;::::0;::::1;:::i;:::-;;;;;;12624:49;12716:10;:29;;12744:1;12716:29;;;12729:12;12716:29;12691:9;:22;12701:8;;12710:1;12701:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12691:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12691:22:0;:54;12469:3;::::1;::::0;::::1;:::i;:::-;;;;12431:322;;14918:160:::0;4409:10;9100:25;;;;:11;:25;;;;;;;;;:50;;-1:-1:-1;6300:7:0;6323:6;-1:-1:-1;;;;;6323:6:0;9129:10;:21;9100:50;9084:111;;;;-1:-1:-1;;;9084:111:0;;;;;;;:::i;:::-;14975:16:::1;::::0;::::1;;14974:17;14966:51;;;::::0;-1:-1:-1;;;14966:51:0;;12786:2:1;14966:51:0::1;::::0;::::1;12768:21:1::0;12825:2;12805:18;;;12798:30;-1:-1:-1;;;12844:18:1;;;12837:51;12905:18;;14966:51:0::1;12584:345:1::0;14966:51:0::1;15024:16;:23:::0;;-1:-1:-1;;15054:18:0;;;;;14918:160::o;21147:303::-;6221:13;:11;:13::i;:::-;21306:1:::1;21291:12;:16;21283:25;;;::::0;::::1;;21315:11;:22:::0;;-1:-1:-1;;21315:22:0::1;;::::0;::::1;;;;::::0;;21360:12:::1;::::0;:27:::1;::::0;21375:12;;21360:27:::1;:::i;:::-;21344:13;:43:::0;21428:15:::1;7272:2;21428;:15;:::i;:::-;21410:34;::::0;:14;:34:::1;:::i;:::-;21394:13;:50:::0;-1:-1:-1;;;21147:303:0:o;19074:100::-;6221:13;:11;:13::i;:::-;19144:17:::1;:24:::0;19074:100::o;20801:87::-;6221:13;:11;:13::i;:::-;20871:11:::1;::::0;;-1:-1:-1;;20856:26:0;::::1;20871:11;::::0;;::::1;20870:12;20856:26;::::0;;20801:87::o;16312:135::-;16368:7;16388;16384:32;;;-1:-1:-1;;16404:12:0;;;16312:135::o;16384:32::-;-1:-1:-1;;16430:11:0;;;16312:135::o;6576:191::-;6221:13;:11;:13::i;:::-;-1:-1:-1;;;;;6661:22:0;::::1;6653:73;;;::::0;-1:-1:-1;;;6653:73:0;;13136:2:1;6653:73:0::1;::::0;::::1;13118:21:1::0;13175:2;13155:18;;;13148:30;13214:34;13194:18;;;13187:62;-1:-1:-1;;;13265:18:1;;;13258:36;13311:19;;6653:73:0::1;12934:402:1::0;6653:73:0::1;6733:28;6752:8;6733:18;:28::i;:::-;6576:191:::0;:::o;19877:121::-;6221:13;:11;:13::i;:::-;-1:-1:-1;;;;;19960:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19960:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19877:121::o;6341:126::-;6300:7;6323:6;-1:-1:-1;;;;;6323:6:0;4409:10;6401:23;6393:68;;;;-1:-1:-1;;;6393:68:0;;13543:2:1;6393:68:0;;;13525:21:1;;;13562:18;;;13555:30;13621:34;13601:18;;;13594:62;13673:18;;6393:68:0;13341:356:1;13302:1407:0;13414:4;-1:-1:-1;;;;;13435:20:0;;13427:57;;;;-1:-1:-1;;;13427:57:0;;13904:2:1;13427:57:0;;;13886:21:1;13943:2;13923:18;;;13916:30;13982:26;13962:18;;;13955:54;14026:18;;13427:57:0;13702:348:1;13427:57:0;-1:-1:-1;;;;;13499:23:0;;13491:58;;;;-1:-1:-1;;;13491:58:0;;14257:2:1;13491:58:0;;;14239:21:1;14296:2;14276:18;;;14269:30;-1:-1:-1;;;14315:18:1;;;14308:52;14377:18;;13491:58:0;14055:346:1;13491:58:0;13573:1;13564:6;:10;13556:44;;;;-1:-1:-1;;;13556:44:0;;14608:2:1;13556:44:0;;;14590:21:1;14647:2;14627:18;;;14620:30;-1:-1:-1;;;14666:18:1;;;14659:51;14727:18;;13556:44:0;14406:345:1;13556:44:0;-1:-1:-1;;;;;13615:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;13615:27:0;13607:60;;;;-1:-1:-1;;;13607:60:0;;14958:2:1;13607:60:0;;;14940:21:1;14997:2;14977:18;;;14970:30;-1:-1:-1;;;15016:18:1;;;15009:50;15076:18;;13607:60:0;14756:344:1;13607:60:0;14778:11;;:16;;;13678:40;;-1:-1:-1;;;;;;13693:25:0;;;;;;:14;:25;;;;;;;;13678:40;13674:143;;;-1:-1:-1;;;;;13737:26:0;;;;;;:18;:26;;;;;;;;13729:63;;;;-1:-1:-1;;;13729:63:0;;15307:2:1;13729:63:0;;;15289:21:1;15346:2;15326:18;;;15319:30;15385:26;15365:18;;;15358:54;15429:18;;13729:63:0;15105:348:1;13729:63:0;13801:8;14854:12;14840:11;:26;14891:15;14873;:33;14806:106;13801:8;13828:16;;;;13823:167;;-1:-1:-1;;;;;13873:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;13903:29:0;;;;;;:18;:29;;;;;;;;13873:59;13855:127;;;;-1:-1:-1;;;13855:127:0;;15660:2:1;13855:127:0;;;15642:21:1;15699:2;15679:18;;;15672:30;15738;15718:18;;;15711:58;15786:18;;13855:127:0;15458:352:1;13855:127:0;13998:39;14011:6;14019:9;14030:6;13998:12;:39::i;:::-;-1:-1:-1;;;;;14051:25:0;;;;;;:14;:25;;;;;;;;14050:26;:47;;;;-1:-1:-1;14093:4:0;;-1:-1:-1;;;;;14080:17:0;;;14093:4;;14080:17;;14050:47;14046:158;;;-1:-1:-1;;;;;14113:26:0;;;;;;:15;:26;;;;;;;;14108:89;;14152:35;14169:9;14180:6;14152:16;:35::i;:::-;14216:6;;;;14212:77;;;14240:41;14255:6;14263:9;14274:6;14240:14;:41::i;:::-;14233:48;;;;14212:77;-1:-1:-1;;;;;14317:17:0;;;;;;:9;:17;;;;;;:26;;14337:6;;14317:26;:::i;:::-;-1:-1:-1;;;;;14297:17:0;;;;;;:9;:17;;;;;:46;14377:6;14396:32;14307:6;14418:9;14396:13;:32::i;:::-;14392:168;;;14456:26;14464:9;14475:6;14456:7;:26::i;:::-;14439:43;;14495:25;14510:9;14495:14;:25::i;:::-;:39;;;;;14533:1;14524:6;:10;14495:39;14491:61;;;14536:16;14545:6;14536:8;:16::i;:::-;-1:-1:-1;;;;;14591:20:0;;;;;;:9;:20;;;;;;:37;;14614:14;;14591:37;:::i;:::-;-1:-1:-1;;;;;14568:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14642:43;;;;;;;;;;14670:14;160:25:1;;148:2;133:18;;14:177;14642:43:0;;;;;;;;-1:-1:-1;14699:4:0;;13302:1407;-1:-1:-1;;;;13302:1407:0:o;15084:302::-;-1:-1:-1;;;;;15230:17:0;;15197:4;15230:17;;;:9;:17;;;;;;:26;;15250:6;;15230:26;:::i;:::-;-1:-1:-1;;;;;15210:17:0;;;;;;;:9;:17;;;;;;:46;;;;15286:20;;;;;;;:29;;15309:6;;15286:29;:::i;:::-;-1:-1:-1;;;;;15263:20:0;;;;;;;:9;:20;;;;;;;:52;;;;15327:35;;;;;;;;;;15355:6;160:25:1;;148:2;133:18;;14:177;15327:35:0;;;;;;;;-1:-1:-1;15376:4:0;15084:302;;;;;:::o;6773:177::-;6843:16;6862:6;;-1:-1:-1;;;;;6875:17:0;;;-1:-1:-1;;;;;;6875:17:0;;;;;;6904:40;;6862:6;;;;;;;6904:40;;6843:16;6904:40;6836:114;6773:177;:::o;15642:390::-;-1:-1:-1;;;;;15760:23:0;;;;;;:15;:23;;;;;;;;;:53;;-1:-1:-1;;;;;;15787:26:0;;;;;;:15;:26;;;;;;;;15760:53;15756:66;;;15642:390;;;:::o;15756:66::-;-1:-1:-1;;;;;15857:22:0;;;;;;:14;:22;;;;;;;;:59;;15900:16;;15857:59;;;15882:15;;15857:59;15846:6;:71;;15830:133;;;;-1:-1:-1;;;15830:133:0;;16017:2:1;15830:133:0;;;15999:21:1;16056:2;16036:18;;;16029:30;16095;16075:18;;;16068:58;16143:18;;15830:133:0;15815:352:1;15830:133:0;-1:-1:-1;;;;;15980:17:0;;;;;;:9;:17;;;;;;:22;15972:54;;;;-1:-1:-1;;;15972:54:0;;16374:2:1;15972:54:0;;;16356:21:1;16413:2;16393:18;;;16386:30;-1:-1:-1;;;16432:18:1;;;16425:49;16491:18;;15972:54:0;16172:343:1;15392:244:0;15496:14;;-1:-1:-1;;;;;15533:20:0;;15474:19;15533:20;;;:9;:20;;;;;;15496:14;;15533:29;;15556:6;;15533:29;:::i;:::-;:44;;15517:113;;;;-1:-1:-1;;;15517:113:0;;16722:2:1;15517:113:0;;;16704:21:1;16761:2;16741:18;;;16734:30;16800:34;16780:18;;;16773:62;-1:-1:-1;;;16851:18:1;;;16844:33;16894:19;;15517:113:0;16520:399:1;16453:302:0;-1:-1:-1;;;;;16569:25:0;;16538:7;16569:25;;;:14;:25;;;;;;16655:14;;16569:25;;;;;16538:7;;16631:20;16569:25;16631:11;:20::i;:::-;16622:29;;:6;:29;:::i;:::-;16621:48;;;;:::i;:::-;16696:4;16678:24;;;;:9;:24;;;;;:37;;16601:68;;-1:-1:-1;16601:68:0;;16678:24;;;:37;;16601:68;;16678:37;:::i;:::-;;;;-1:-1:-1;16731:18:0;;-1:-1:-1;16740:9:0;16731:6;:18;:::i;:::-;16724:25;16453:302;-1:-1:-1;;;;;16453:302:0:o;16761:355::-;16870:10;16827:4;16855:26;;;:14;:26;;;;;;;;16854:27;:45;;;;-1:-1:-1;16893:6:0;;;;16892:7;16854:45;:67;;;;-1:-1:-1;16910:11:0;;;;;;;16854:67;:127;;;;-1:-1:-1;16964:17:0;;16948:12;16932:29;;;;:15;:29;;;;;;:49;16854:127;:163;;;;-1:-1:-1;;;;;;16992:25:0;;;;;;:14;:25;;;;;;;;16854:163;:215;;;;-1:-1:-1;17056:13:0;;17046:4;17028:24;;;;:9;:24;;;;;;:41;;16854:215;:256;;;;;17109:1;17094:12;;17080:11;;:26;;;;:::i;:::-;:30;16840:270;16761:355;-1:-1:-1;;16761:355:0:o;17122:1766::-;8960:6;:13;;-1:-1:-1;;8960:13:0;8969:4;8960:13;;;17214:12:::1;::::0;17200:11:::1;::::0;8960:6;;17200:26:::1;::::0;::::1;:::i;:::-;17181:45;;17233:20;17265:13;;17256:6;:22;:47;;17290:13;;17256:47;;;17281:6;17256:47;17332:4;17314:24;::::0;;;:9:::1;:24;::::0;;;;;17233:70;;-1:-1:-1;17314:39:0;-1:-1:-1;17310:91:0::1;;;-1:-1:-1::0;17395:4:0::1;17377:24;::::0;;;:9:::1;:24;::::0;;;;;17310:91:::1;17410:25;17456:16;;17438:15;;:34;;;;:::i;:::-;17410:62:::0;-1:-1:-1;17479:23:0::1;17555:8:::0;17543:1:::1;17507:32;17410:62:::0;17507:12;:32:::1;:::i;:::-;17506:38;;;;:::i;:::-;17505:58;;;;:::i;:::-;17479:84:::0;-1:-1:-1;17570:31:0::1;17479:84:::0;17570:31;::::1;:::i;:::-;17634:16;::::0;;17648:1:::1;17634:16:::0;;;;;::::1;::::0;;17570:31;;-1:-1:-1;17610:21:0::1;::::0;17634:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17634:16:0::1;17610:40;;17675:4;17657;17662:1;17657:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17657:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17697:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;17697:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;17657:7;;17697:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17687:4;17692:1;17687:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17687:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17773:6:::1;::::0;:154:::1;::::0;-1:-1:-1;;;17773:154:0;;17743:21:::1;::::0;17773:6;;;::::1;::::0;:57:::1;::::0;:154:::1;::::0;17839:12;;17719:21:::1;::::0;17870:4;;17891::::1;::::0;17905:15:::1;::::0;17773:154:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17936:17;17980:13;17956:21;:37;;;;:::i;:::-;17936:57:::0;-1:-1:-1;18000:19:0::1;18034:21;18054:1;18034:17:::0;:21:::1;:::i;:::-;18022:34;::::0;:8;:34:::1;:::i;:::-;18000:56:::0;-1:-1:-1;18065:26:0::1;18000:56:::0;18129:1:::1;18096:29;18108:17:::0;18096:9;:29:::1;:::i;:::-;18095:35;;;;:::i;:::-;18094:58;;;;:::i;:::-;18065:87:::0;-1:-1:-1;18159:26:0::1;18188:30;18065:87:::0;18188:9;:30:::1;:::i;:::-;18159:59:::0;-1:-1:-1;18231:22:0;;18227:232:::1;;18289:20;::::0;:74:::1;::::0;18265:18:::1;::::0;-1:-1:-1;;;;;18289:20:0::1;::::0;18332:18;;18265;18289:74;18265:18;18289:74;18332:18;18289:20;:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;18227:232:0::1;18471:19:::0;;18467:231:::1;;18501:6;::::0;18635:20:::1;::::0;18501:189:::1;::::0;-1:-1:-1;;;18501:189:0;;18569:4:::1;18501:189;::::0;::::1;18646:34:1::0;18696:18;;;18689:34;;;-1:-1:-1;18739:18:1;;;18732:34;;;18782:18;;;18775:34;-1:-1:-1;;;;;18501:6:0::1;18635:20:::0;;::::1;::::0;::::1;18825:19:1::0;;;18818:44;18666:15:0::1;18878:19:1::0;;;18871:35;18501:6:0;::::1;::::0;:22:::1;::::0;18531:18;;18580:19:1;;18501:189:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18467:231;18752:12;18736:29;::::0;;;:15:::1;:29;::::0;;;;;:33:::1;::::0;18768:1:::1;18736:33;:::i;:::-;18720:12;18704:29;::::0;;;:15:::1;:29;::::0;;;;;;;;:65;;;;18781:101;;8831:25:1;;;8872:18;;;8865:34;;;8915:18;;8908:34;;;18781:101:0::1;::::0;8819:2:1;8804:18;18781:101:0::1;;;;;;;-1:-1:-1::0;;8988:6:0;:14;;-1:-1:-1;;8988:14:0;;;-1:-1:-1;;;;;;;;;17122:1766:0:o;196:454:1:-;291:6;299;307;315;323;376:3;364:9;355:7;351:23;347:33;344:53;;;393:1;390;383:12;344:53;-1:-1:-1;;416:23:1;;;486:2;471:18;;458:32;;-1:-1:-1;537:2:1;522:18;;509:32;;588:2;573:18;;560:32;;-1:-1:-1;639:3:1;624:19;611:33;;-1:-1:-1;196:454:1;-1:-1:-1;196:454:1:o;655:548::-;767:4;796:2;825;814:9;807:21;857:6;851:13;900:6;895:2;884:9;880:18;873:34;925:1;935:140;949:6;946:1;943:13;935:140;;;1044:14;;;1040:23;;1034:30;1010:17;;;1029:2;1006:26;999:66;964:10;;935:140;;;939:3;1124:1;1119:2;1110:6;1099:9;1095:22;1091:31;1084:42;1194:2;1187;1183:7;1178:2;1170:6;1166:15;1162:29;1151:9;1147:45;1143:54;1135:62;;;;655:548;;;;:::o;1208:131::-;-1:-1:-1;;;;;1283:31:1;;1273:42;;1263:70;;1329:1;1326;1319:12;1344:315;1412:6;1420;1473:2;1461:9;1452:7;1448:23;1444:32;1441:52;;;1489:1;1486;1479:12;1441:52;1528:9;1515:23;1547:31;1572:5;1547:31;:::i;:::-;1597:5;1649:2;1634:18;;;;1621:32;;-1:-1:-1;;;1344:315:1:o;1856:456::-;1933:6;1941;1949;2002:2;1990:9;1981:7;1977:23;1973:32;1970:52;;;2018:1;2015;2008:12;1970:52;2057:9;2044:23;2076:31;2101:5;2076:31;:::i;:::-;2126:5;-1:-1:-1;2183:2:1;2168:18;;2155:32;2196:33;2155:32;2196:33;:::i;:::-;1856:456;;2248:7;;-1:-1:-1;;;2302:2:1;2287:18;;;;2274:32;;1856:456::o;2506:388::-;2574:6;2582;2635:2;2623:9;2614:7;2610:23;2606:32;2603:52;;;2651:1;2648;2641:12;2603:52;2690:9;2677:23;2709:31;2734:5;2709:31;:::i;:::-;2759:5;-1:-1:-1;2816:2:1;2801:18;;2788:32;2829:33;2788:32;2829:33;:::i;:::-;2881:7;2871:17;;;2506:388;;;;;:::o;2899:247::-;2958:6;3011:2;2999:9;2990:7;2986:23;2982:32;2979:52;;;3027:1;3024;3017:12;2979:52;3066:9;3053:23;3085:31;3110:5;3085:31;:::i;3151:160::-;3216:20;;3272:13;;3265:21;3255:32;;3245:60;;3301:1;3298;3291:12;3245:60;3151:160;;;:::o;3316:315::-;3381:6;3389;3442:2;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3497:9;3484:23;3516:31;3541:5;3516:31;:::i;:::-;3566:5;-1:-1:-1;3590:35:1;3621:2;3606:18;;3590:35;:::i;:::-;3580:45;;3316:315;;;;;:::o;3636:316::-;3713:6;3721;3729;3782:2;3770:9;3761:7;3757:23;3753:32;3750:52;;;3798:1;3795;3788:12;3750:52;-1:-1:-1;;3821:23:1;;;3891:2;3876:18;;3863:32;;-1:-1:-1;3942:2:1;3927:18;;;3914:32;;3636:316;-1:-1:-1;3636:316:1:o;3957:315::-;4025:6;4033;4086:2;4074:9;4065:7;4061:23;4057:32;4054:52;;;4102:1;4099;4092:12;4054:52;4138:9;4125:23;4115:33;;4198:2;4187:9;4183:18;4170:32;4211:31;4236:5;4211:31;:::i;4277:367::-;4340:8;4350:6;4404:3;4397:4;4389:6;4385:17;4381:27;4371:55;;4422:1;4419;4412:12;4371:55;-1:-1:-1;4445:20:1;;4488:18;4477:30;;4474:50;;;4520:1;4517;4510:12;4474:50;4557:4;4549:6;4545:17;4533:29;;4617:3;4610:4;4600:6;4597:1;4593:14;4585:6;4581:27;4577:38;4574:47;4571:67;;;4634:1;4631;4624:12;4571:67;4277:367;;;;;:::o;4649:773::-;4771:6;4779;4787;4795;4848:2;4836:9;4827:7;4823:23;4819:32;4816:52;;;4864:1;4861;4854:12;4816:52;4904:9;4891:23;4933:18;4974:2;4966:6;4963:14;4960:34;;;4990:1;4987;4980:12;4960:34;5029:70;5091:7;5082:6;5071:9;5067:22;5029:70;:::i;:::-;5118:8;;-1:-1:-1;5003:96:1;-1:-1:-1;5206:2:1;5191:18;;5178:32;;-1:-1:-1;5222:16:1;;;5219:36;;;5251:1;5248;5241:12;5219:36;;5290:72;5354:7;5343:8;5332:9;5328:24;5290:72;:::i;:::-;4649:773;;;;-1:-1:-1;5381:8:1;-1:-1:-1;;;;4649:773:1:o;5635:248::-;5703:6;5711;5764:2;5752:9;5743:7;5739:23;5735:32;5732:52;;;5780:1;5777;5770:12;5732:52;-1:-1:-1;;5803:23:1;;;5873:2;5858:18;;;5845:32;;-1:-1:-1;5635:248:1:o;5888:505::-;5980:6;5988;5996;6049:2;6037:9;6028:7;6024:23;6020:32;6017:52;;;6065:1;6062;6055:12;6017:52;6105:9;6092:23;6138:18;6130:6;6127:30;6124:50;;;6170:1;6167;6160:12;6124:50;6209:70;6271:7;6262:6;6251:9;6247:22;6209:70;:::i;:::-;6298:8;;-1:-1:-1;6183:96:1;-1:-1:-1;6352:35:1;;-1:-1:-1;6383:2:1;6368:18;;6352:35;:::i;:::-;6342:45;;5888:505;;;;;:::o;6622:316::-;6696:6;6704;6712;6765:2;6753:9;6744:7;6740:23;6736:32;6733:52;;;6781:1;6778;6771:12;6733:52;6804:26;6820:9;6804:26;:::i;:::-;6794:36;6877:2;6862:18;;6849:32;;-1:-1:-1;6928:2:1;6913:18;;;6900:32;;6622:316;-1:-1:-1;;;6622:316:1:o;6943:180::-;7002:6;7055:2;7043:9;7034:7;7030:23;7026:32;7023:52;;;7071:1;7068;7061:12;7023:52;-1:-1:-1;7094:23:1;;6943:180;-1:-1:-1;6943:180:1:o;7128:::-;7184:6;7237:2;7225:9;7216:7;7212:23;7208:32;7205:52;;;7253:1;7250;7243:12;7205:52;7276:26;7292:9;7276:26;:::i;7539:127::-;7600:10;7595:3;7591:20;7588:1;7581:31;7631:4;7628:1;7621:15;7655:4;7652:1;7645:15;7671:125;7736:9;;;7757:10;;;7754:36;;;7770:18;;:::i;7801:217::-;7841:1;7867;7857:132;;7911:10;7906:3;7902:20;7899:1;7892:31;7946:4;7943:1;7936:15;7974:4;7971:1;7964:15;7857:132;-1:-1:-1;8003:9:1;;7801:217::o;8023:168::-;8096:9;;;8127;;8144:15;;;8138:22;;8124:37;8114:71;;8165:18;;:::i;8953:422::-;9042:1;9085:5;9042:1;9099:270;9120:7;9110:8;9107:21;9099:270;;;9179:4;9175:1;9171:6;9167:17;9161:4;9158:27;9155:53;;;9188:18;;:::i;:::-;9238:7;9228:8;9224:22;9221:55;;;9258:16;;;;9221:55;9337:22;;;;9297:15;;;;9099:270;;;9103:3;8953:422;;;;;:::o;9380:806::-;9429:5;9459:8;9449:80;;-1:-1:-1;9500:1:1;9514:5;;9449:80;9548:4;9538:76;;-1:-1:-1;9585:1:1;9599:5;;9538:76;9630:4;9648:1;9643:59;;;;9716:1;9711:130;;;;9623:218;;9643:59;9673:1;9664:10;;9687:5;;;9711:130;9748:3;9738:8;9735:17;9732:43;;;9755:18;;:::i;:::-;-1:-1:-1;;9811:1:1;9797:16;;9826:5;;9623:218;;9925:2;9915:8;9912:16;9906:3;9900:4;9897:13;9893:36;9887:2;9877:8;9874:16;9869:2;9863:4;9860:12;9856:35;9853:77;9850:159;;;-1:-1:-1;9962:19:1;;;9994:5;;9850:159;10041:34;10066:8;10060:4;10041:34;:::i;:::-;10111:6;10107:1;10103:6;10099:19;10090:7;10087:32;10084:58;;;10122:18;;:::i;:::-;10160:20;;9380:806;-1:-1:-1;;;9380:806:1:o;10191:140::-;10249:5;10278:47;10319:4;10309:8;10305:19;10299:4;10278:47;:::i;10336:128::-;10403:9;;;10424:11;;;10421:37;;;10438:18;;:::i;10872:351::-;11074:2;11056:21;;;11113:2;11093:18;;;11086:30;11152:29;11147:2;11132:18;;11125:57;11214:2;11199:18;;10872:351::o;11791:127::-;11852:10;11847:3;11843:20;11840:1;11833:31;11883:4;11880:1;11873:15;11907:4;11904:1;11897:15;11923:135;11962:3;11983:17;;;11980:43;;12003:18;;:::i;:::-;-1:-1:-1;12050:1:1;12039:13;;11923:135::o;12443:136::-;12482:3;12510:5;12500:39;;12519:18;;:::i;:::-;-1:-1:-1;;;12555:18:1;;12443:136::o;17056:251::-;17126:6;17179:2;17167:9;17158:7;17154:23;17150:32;17147:52;;;17195:1;17192;17185:12;17147:52;17227:9;17221:16;17246:31;17271:5;17246:31;:::i;17312:980::-;17574:4;17622:3;17611:9;17607:19;17653:6;17642:9;17635:25;17679:2;17717:6;17712:2;17701:9;17697:18;17690:34;17760:3;17755:2;17744:9;17740:18;17733:31;17784:6;17819;17813:13;17850:6;17842;17835:22;17888:3;17877:9;17873:19;17866:26;;17927:2;17919:6;17915:15;17901:29;;17948:1;17958:195;17972:6;17969:1;17966:13;17958:195;;;18037:13;;-1:-1:-1;;;;;18033:39:1;18021:52;;18128:15;;;;18093:12;;;;18069:1;17987:9;17958:195;;;-1:-1:-1;;;;;;;18209:32:1;;;;18204:2;18189:18;;18182:60;-1:-1:-1;;;18273:3:1;18258:19;18251:35;18170:3;17312:980;-1:-1:-1;;;17312:980:1:o;18917:306::-;19005:6;19013;19021;19074:2;19062:9;19053:7;19049:23;19045:32;19042:52;;;19090:1;19087;19080:12;19042:52;19119:9;19113:16;19103:26;;19169:2;19158:9;19154:18;19148:25;19138:35;;19213:2;19202:9;19198:18;19192:25;19182:35;;18917:306;;;;;:::o
Swarm Source
ipfs://22b94021eab2175421fad102ac836f5e7d71d53e10ad6828e6dc296941b6d213
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.
Add Token to MetaMask (Web3)