Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
6,900,000,000,000 TBD
Holders
7
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
TBDFINANCE
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-03-27
*/
/**
*Submitted for verification at Etherscan.io on 2023-03-14
*/
// 🚀TBD🚀
//TBD is a Frictionless Yield Redistribution Token on the ETHEREUM Chain. Simply hold the token to Gain Automatic Restribution Rewards
//🔥Introducing the birth of REWARDS WITH $WBTC!! 🔥
//Rewards are all AUTO Distribution
//TELEGRAM :https://t.me/TBDFINANCE
// TWITTER : https://twitter.com/TBDFINANCEWORLD
// WEBSITE : BLACKDOLLAR.FINANCE
//SPDX-License-Identifier: Unlicensed
pragma solidity ^0.7.4;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) { return 0; }
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
interface IBEP20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
function getOwner() external view returns (address);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address _owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
interface IDividendDistributor {
function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
function setShare(address shareholder, uint256 amount) external;
function deposit() external payable;
function process(uint256 gas) external;
}
contract DividendDistributor is IDividendDistributor {
using SafeMath for uint256;
address _token;
struct Share {
uint256 amount;
uint256 totalExcluded;
uint256 totalRealised;
}
IDEXRouter router;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
IBEP20 RewardToken = IBEP20(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599);
address[] shareholders;
mapping (address => uint256) shareholderIndexes;
mapping (address => uint256) shareholderClaims;
mapping (address => Share) public shares;
uint256 public totalShares;
uint256 public totalDividends;
uint256 public totalDistributed;
uint256 public dividendsPerShare;
uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;
uint256 public minPeriod = 30 minutes ;
uint256 public minDistribution = 1 / 100000 * (10 ** 18);
uint256 currentIndex;
bool initialized;
modifier initialization() {
require(!initialized);
_;
initialized = true;
}
modifier onlyToken() {
require(msg.sender == _token); _;
}
constructor (address _router) {
router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(routerAddress);
_token = msg.sender;
}
function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
minPeriod = newMinPeriod;
minDistribution = newMinDistribution;
}
function setShare(address shareholder, uint256 amount) external override onlyToken {
if(shares[shareholder].amount > 0){
distributeDividend(shareholder);
}
if(amount > 0 && shares[shareholder].amount == 0){
addShareholder(shareholder);
}else if(amount == 0 && shares[shareholder].amount > 0){
removeShareholder(shareholder);
}
totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
shares[shareholder].amount = amount;
shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
}
function deposit() external payable override onlyToken {
uint256 balanceBefore = RewardToken.balanceOf(address(this));
address[] memory path = new address[](2);
path[0] = router.WETH();
path[1] = address(RewardToken);
router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
0,
path,
address(this),
block.timestamp
);
uint256 amount = RewardToken.balanceOf(address(this)).sub(balanceBefore);
totalDividends = totalDividends.add(amount);
dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
}
function process(uint256 gas) external override onlyToken {
uint256 shareholderCount = shareholders.length;
if(shareholderCount == 0) { return; }
uint256 iterations = 0;
uint256 gasUsed = 0;
uint256 gasLeft = gasleft();
while(gasUsed < gas && iterations < shareholderCount) {
if(currentIndex >= shareholderCount){ currentIndex = 0; }
if(shouldDistribute(shareholders[currentIndex])){
distributeDividend(shareholders[currentIndex]);
}
gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
gasLeft = gasleft();
currentIndex++;
iterations++;
}
}
function shouldDistribute(address shareholder) internal view returns (bool) {
return shareholderClaims[shareholder] + minPeriod < block.timestamp
&& getUnpaidEarnings(shareholder) > minDistribution;
}
function distributeDividend(address shareholder) internal {
if(shares[shareholder].amount == 0){ return; }
uint256 amount = getUnpaidEarnings(shareholder);
if(amount > 0){
totalDistributed = totalDistributed.add(amount);
RewardToken.transfer(shareholder, amount);
shareholderClaims[shareholder] = block.timestamp;
shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
}
}
function claimDividend() external {
require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
distributeDividend(msg.sender);
}
function getUnpaidEarnings(address shareholder) public view returns (uint256) {
if(shares[shareholder].amount == 0){ return 0; }
uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }
return shareholderTotalDividends.sub(shareholderTotalExcluded);
}
function getCumulativeDividends(uint256 share) internal view returns (uint256) {
return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
}
function addShareholder(address shareholder) internal {
shareholderIndexes[shareholder] = shareholders.length;
shareholders.push(shareholder);
}
function removeShareholder(address shareholder) internal {
shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
shareholders.pop();
}
}
abstract contract Auth {
address internal owner;
mapping (address => bool) internal authorizations;
constructor(address _owner) {
owner = _owner;
authorizations[_owner] = true;
}
/**
* Function modifier to require caller to be contract owner
*/
modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER"); _;
}
/**
* Function modifier to require caller to be authorized
*/
modifier authorized() {
require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
}
/**
* Authorize address. Owner only
*/
function authorize(address adr) public onlyOwner {
authorizations[adr] = true;
}
/**
* Remove address' authorization. Owner only
*/
function unauthorize(address adr) public onlyOwner {
authorizations[adr] = false;
}
/**
* Check if address is owner
*/
function isOwner(address account) public view returns (bool) {
return account == owner;
}
/**
* Return address' authorization status
*/
function isAuthorized(address adr) public view returns (bool) {
return authorizations[adr];
}
/**
* Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
*/
function transferOwnership(address payable adr) public onlyOwner {
owner = adr;
authorizations[adr] = true;
emit OwnershipTransferred(adr);
}
event OwnershipTransferred(address owner);
}
contract TBDFINANCE is IBEP20, Auth {
using SafeMath for uint256;
string constant _name = "BLACK DOLLAR FINANCE";
string constant _symbol = "TBD";
uint8 constant _decimals = 9;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address RewardToken = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
uint256 _totalSupply = 69 * 10**11 * (10 ** _decimals);
uint256 public _maxTxAmount = 2 * 10**10 * (10 ** _decimals);
uint256 public _walletMax = 2 * 10**10 * (10 ** _decimals);
bool public restrictWhales = true;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isDividendExempt;
uint256 public liquidityFee = 3;
uint256 public marketingFee = 4;
uint256 public rewardsFee = 9;
uint256 public extraFeeOnSell = 0;
uint256 public totalFee = 0;
uint256 public totalFeeIfSelling = 0;
address public autoLiquidityReceiver;
address public marketingWallet;
address public devWallet;
IDEXRouter public router;
address public pair;
uint256 public launchedAt;
bool public tradingOpen = false;
DividendDistributor public dividendDistributor;
uint256 distributorGas = 300000;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
uint256 public swapThreshold = 1 * 10**9 * (10 ** _decimals);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () Auth(msg.sender) {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
_allowances[address(this)][address(router)] = uint256(-1);
dividendDistributor = new DividendDistributor(address(router));
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
isTxLimitExempt[msg.sender] = true;
isTxLimitExempt[pair] = true;
isDividendExempt[pair] = true;
isDividendExempt[msg.sender] = true;
isDividendExempt[address(this)] = true;
isDividendExempt[DEAD] = true;
isDividendExempt[ZERO] = true;
// NICE!
autoLiquidityReceiver = 0xc4a5bc1624eaA7a6a273305260D26AC9D841c4c4;
marketingWallet = 0x5757428Beb4ba84fcb7Dae2cE6828cb4579FE0b0;
devWallet = 0xbB3f1A08964229e43F1aB2aB0B0B6a88C26F954b;
totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function name() external pure override returns (string memory) { return _name; }
function symbol() external pure override returns (string memory) { return _symbol; }
function decimals() external pure override returns (uint8) { return _decimals; }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function getOwner() external view override returns (address) { return owner; }
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
}
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, uint256(-1));
}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function launch() internal {
launchedAt = block.number;
}
function changeTxLimit(uint256 newLimit) external authorized {
_maxTxAmount = newLimit;
}
function changeWalletLimit(uint256 newLimit) external authorized {
_walletMax = newLimit;
}
function changeRestrictWhales(bool newValue) external authorized {
restrictWhales = newValue;
}
function changeIsFeeExempt(address holder, bool exempt) external authorized {
isFeeExempt[holder] = exempt;
}
function changeIsTxLimitExempt(address holder, bool exempt) external authorized {
isTxLimitExempt[holder] = exempt;
}
function changeIsDividendExempt(address holder, bool exempt) external authorized {
require(holder != address(this) && holder != pair);
isDividendExempt[holder] = exempt;
if(exempt){
dividendDistributor.setShare(holder, 0);
}else{
dividendDistributor.setShare(holder, _balances[holder]);
}
}
function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newExtraSellFee) external authorized {
liquidityFee = newLiqFee;
rewardsFee = newRewardFee;
marketingFee = newMarketingFee;
extraFeeOnSell = newExtraSellFee;
totalFee = liquidityFee.add(marketingFee).add(rewardsFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
}
function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newDevWallet) external authorized {
autoLiquidityReceiver = newLiquidityReceiver;
marketingWallet = newMarketingWallet;
devWallet = newDevWallet;
}
function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized {
swapAndLiquifyEnabled = enableSwapBack;
swapThreshold = newSwapBackLimit;
swapAndLiquifyByLimitOnly = swapByLimitOnly;
}
function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
}
function changeDistributorSettings(uint256 gas) external authorized {
require(gas < 300000);
distributorGas = gas;
}
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] != uint256(-1)){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
if(!authorizations[sender] && !authorizations[recipient]){
require(tradingOpen, "Trading not open yet");
}
require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
if(!launched() && recipient == pair) {
require(_balances[sender] > 0);
launch();
}
//Exchange tokens
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
if(!isTxLimitExempt[recipient] && restrictWhales)
{
require(_balances[recipient].add(amount) <= _walletMax);
}
uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(finalAmount);
// Dividend tracker
if(!isDividendExempt[sender]) {
try dividendDistributor.setShare(sender, _balances[sender]) {} catch {}
}
if(!isDividendExempt[recipient]) {
try dividendDistributor.setShare(recipient, _balances[recipient]) {} catch {}
}
try dividendDistributor.process(distributorGas) {} catch {}
emit Transfer(sender, recipient, finalAmount);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
uint256 feeAmount = amount.mul(feeApplicable).div(100);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
function tradingStatus(bool newStatus) public onlyOwner {
tradingOpen = newStatus;
}
function swapBack() internal lockTheSwap {
uint256 tokensToLiquify = _balances[address(this)];
uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountBNB = address(this).balance;
uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
uint256 amountBNBReflection = amountBNB.mul(rewardsFee).div(totalBNBFee);
uint256 amountBNBMarketing = amountBNB.sub(amountBNBLiquidity).sub(amountBNBReflection);
try dividendDistributor.deposit{value: amountBNBReflection}() {} catch {}
uint256 marketingShare = amountBNBMarketing.mul(3).div(4);
uint256 devShare = amountBNBMarketing.sub(marketingShare);
(bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
(bool tmpSuccess1,) = payable(devWallet).call{value: devShare, gas: 30000}("");
// only to supress warning msg
tmpSuccess = false;
tmpSuccess1 = false;
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountBNBLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
}
}
event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newExtraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"isOwner","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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732260fac5e5542a773aa44fbcfedf7c193bc2c599600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a650646880c880002600655600960ff16600a0a6404a817c80002600755600960ff16600a0a6404a817c800026008556001600960006101000a81548160ff0219169083151502179055506003600f55600460105560096011556000601255600060135560006014556000601b60006101000a81548160ff021916908315150217905550620493e0601c556001601d60016101000a81548160ff0219169083151502179055506000601d60026101000a81548160ff021916908315150217905550600960ff16600a0a633b9aca0002601e553480156200021957600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037f57600080fd5b505afa15801562000394573d6000803e3d6000fd5b505050506040513d6020811015620003ab57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044057600080fd5b505afa15801562000455573d6000803e3d6000fd5b505050506040513d60208110156200046c57600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004e857600080fd5b505af1158015620004fd573d6000803e3d6000fd5b505050506040513d60208110156200051457600080fd5b8101908080519060200190929190505050601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006599062000d16565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801562000696573d6000803e3d6000fd5b50601b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073c4a5bc1624eaa7a6a273305260d26ac9d841c4c4601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735757428beb4ba84fcb7dae2ce6828cb4579fe0b0601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb3f1a08964229e43f1ab2ab0b0b6a88c26f954b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000baf60115462000b9b601054600f5462000c8d60201b620028a61790919060201c565b62000c8d60201b620028a61790919060201c565b60138190555062000bd360125460135462000c8d60201b620028a61790919060201c565b601481905550600654600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000d24565b60008082840190508381101562000d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b611ad88062004eb283390190565b61417e8062000d346000396000f3fe6080604052600436106103035760003560e01c80637db1342c11610190578063bf56b371116100dc578063e66b1d1e11610095578063f887ea401161006f578063f887ea4014611128578063fabe628314611169578063fe9fbb80146111c6578063ffb54a991461122d5761030a565b8063e66b1d1e14611049578063f0b37c0414611086578063f2fde38b146110d75761030a565b8063bf56b37114610ec5578063ca33e64c14610ef0578063ca987b0e14610f31578063d920334e14610f5c578063da00097d14610f97578063dd62ed3e14610fc45761030a565b806398118cb411610149578063a9059cbb11610123578063a9059cbb14610d7d578063a9f7864b14610dee578063b6a5d7de14610e33578063bad3ea6a14610e845761030a565b806398118cb414610cb4578063a3a2e89e14610cdf578063a8aa1b3114610d3c5761030a565b80637db1342c14610ad5578063807c2d9c14610b10578063893d20e814610b3b5780638b42507f14610b7c5780638ea5220f14610be357806395d89b4114610c245761030a565b80633f4218e01161024f578063650c42261161020857806370a08231116101e257806370a08231146109a757806375f0a87414610a0c578063773fcb5c14610a4d5780637d1db4a514610aaa5761030a565b8063650c4226146108f857806369cf17d4146109515780636b67c4df1461097c5761030a565b80633f4218e01461072e5780634355855a1461079557806344de2e4c146107fc578063479f66d8146108295780634a74bb0214610864578063571ac8b0146108915761030a565b806323b872dd116102bc5780632f54bf6e116102965780632f54bf6e146105b5578063313ce5671461061c578063315dca291461064a57806334c70889146106db5761030a565b806323b872dd146104ce5780632b112e491461055f5780632bb14e1d1461058a5761030a565b80630445b6671461030f57806306fdde031461033a578063095ea7b3146103ca5780630d2959801461043b57806318160ddd146104785780631df4ccfc146104a35761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b5061032461125a565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f611260565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038f578082015181840152602081019050610374565b50505050905090810190601f1680156103bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d657600080fd5b50610423600480360360408110156103ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129d565b60405180821515815260200191505060405180910390f35b34801561044757600080fd5b506104766004803603602081101561045e57600080fd5b8101908080351515906020019092919050505061138f565b005b34801561048457600080fd5b5061048d611427565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104b8611431565b6040518082815260200191505060405180910390f35b3480156104da57600080fd5b50610547600480360360608110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611437565b60405180821515815260200191505060405180910390f35b34801561056b57600080fd5b50610574611637565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f6116b9565b6040518082815260200191505060405180910390f35b3480156105c157600080fd5b50610604600480360360208110156105d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116bf565b60405180821515815260200191505060405180910390f35b34801561062857600080fd5b50610631611718565b604051808260ff16815260200191505060405180910390f35b34801561065657600080fd5b506106d96004803603606081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611721565b005b3480156106e757600080fd5b5061072c600480360360608110156106fe57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611864565b005b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061191f565b60405180821515815260200191505060405180910390f35b3480156107a157600080fd5b506107e4600480360360208110156107b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193f565b60405180821515815260200191505060405180910390f35b34801561080857600080fd5b5061081161195f565b60405180821515815260200191505060405180910390f35b34801561083557600080fd5b506108626004803603602081101561084c57600080fd5b8101908080359060200190929190505050611972565b005b34801561087057600080fd5b50610879611a06565b60405180821515815260200191505060405180910390f35b34801561089d57600080fd5b506108e0600480360360208110156108b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b60405180821515815260200191505060405180910390f35b34801561090457600080fd5b5061094f6004803603608081101561091b57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611a4c565b005b34801561095d57600080fd5b50610966611b37565b6040518082815260200191505060405180910390f35b34801561098857600080fd5b50610991611b3d565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b506109f6600480360360208110156109ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b43565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611b8c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5957600080fd5b50610aa860048036036040811015610a7057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb2565b005b348015610ab657600080fd5b50610abf611ebd565b6040518082815260200191505060405180910390f35b348015610ae157600080fd5b50610b0e60048036036020811015610af857600080fd5b8101908080359060200190929190505050611ec3565b005b348015610b1c57600080fd5b50610b25611f48565b6040518082815260200191505060405180910390f35b348015610b4757600080fd5b50610b50611f4e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b8857600080fd5b50610bcb60048036036020811015610b9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f77565b60405180821515815260200191505060405180910390f35b348015610bef57600080fd5b50610bf8611f97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3057600080fd5b50610c39611fbd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c79578082015181840152602081019050610c5e565b50505050905090810190601f168015610ca65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cc057600080fd5b50610cc9611ffa565b6040518082815260200191505060405180910390f35b348015610ceb57600080fd5b50610d3a60048036036040811015610d0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612000565b005b348015610d4857600080fd5b50610d516120d6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8957600080fd5b50610dd660048036036040811015610da057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120fc565b60405180821515815260200191505060405180910390f35b348015610dfa57600080fd5b50610e3160048036036040811015610e1157600080fd5b810190808035906020019092919080359060200190929190505050612111565b005b348015610e3f57600080fd5b50610e8260048036036020811015610e5657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612225565b005b348015610e9057600080fd5b50610e996122fa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ed157600080fd5b50610eda612320565b6040518082815260200191505060405180910390f35b348015610efc57600080fd5b50610f05612326565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f3d57600080fd5b50610f4661234c565b6040518082815260200191505060405180910390f35b348015610f6857600080fd5b50610f9560048036036020811015610f7f57600080fd5b8101908080359060200190929190505050612352565b005b348015610fa357600080fd5b50610fac6123d7565b60405180821515815260200191505060405180910390f35b348015610fd057600080fd5b5061103360048036036040811015610fe757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ea565b6040518082815260200191505060405180910390f35b34801561105557600080fd5b506110846004803603602081101561106c57600080fd5b81019080803515159060200190929190505050612471565b005b34801561109257600080fd5b506110d5600480360360208110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612509565b005b3480156110e357600080fd5b50611126600480360360208110156110fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125df565b005b34801561113457600080fd5b5061113d612741565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561117557600080fd5b506111c46004803603604081101561118c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612767565b005b3480156111d257600080fd5b50611215600480360360208110156111e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061283d565b60405180821515815260200191505060405180910390f35b34801561123957600080fd5b50611242612893565b60405180821515815260200191505060405180910390f35b601e5481565b60606040518060400160405280601481526020017f424c41434b20444f4c4c41522046494e414e4345000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611398336116bf565b61140a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600654905090565b60135481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611623576115a2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61162e8484846129ee565b90509392505050565b60006116b4611667600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b43565b6116a6611695600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b43565b60065461341690919063ffffffff16565b61341690919063ffffffff16565b905090565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b61172a3361283d565b61179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61186d3361283d565b6118df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601d60016101000a81548160ff02191690831515021790555081601e8190555080601d60026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b61197b3361283d565b6119ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620493e081106119fc57600080fd5b80601c8190555050565b601d60019054906101000a900460ff1681565b6000611a45827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61129d565b9050919050565b611a553361283d565b611ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83600f81905550826011819055508160108190555080601281905550611b0e601154611b00601054600f546128a690919063ffffffff16565b6128a690919063ffffffff16565b601381905550611b2b6012546013546128a690919063ffffffff16565b60148190555050505050565b60125481565b60105481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bbb3361283d565b611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611cb75750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611cc057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611dce57601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611db157600080fd5b505af1158015611dc5573d6000803e3d6000fd5b50505050611eb9565b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505050505b5050565b60075481565b611ecc3361283d565b611f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f5442440000000000000000000000000000000000000000000000000000000000815250905090565b600f5481565b6120093361283d565b61207b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121093384846129ee565b905092915050565b61211a3361283d565b61218c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561220957600080fd5b505af115801561221d573d6000803e3d6000fd5b505050505050565b61222e336116bf565b6122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b61235b3361283d565b6123cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b601d60029054906101000a900460ff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61247a3361283d565b6124ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612512336116bf565b612584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6125e8336116bf565b61265a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6127703361283d565b6127e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b60009054906101000a900460ff1681565b600080828401905083811015612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a0578082015181840152602081019050612985565b50505050905090810190601f1680156129cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601d60009054906101000a900460ff1615612a1757612a10848484613460565b905061340f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612abb5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b4357601b60009054906101000a900460ff16612b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b60075482111580612b9d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c7a5750601d60009054906101000a900460ff16155b8015612c925750601d60019054906101000a900460ff165b8015612cdf5750601e54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612ced57612cec613633565b5b612cf5613dd3565b158015612d4f5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612da9576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612da057600080fd5b612da8613de0565b5b612e32826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612edb5750600960009054906101000a900460ff165b15612f4157600854612f3583600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b1115612f4057600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fe75750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ff15782612ffd565b612ffc858585613de9565b5b905061305181600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131d357601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156131b757600080fd5b505af19250505080156131c8575060015b6131d1576131d2565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661331257601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156132f657600080fd5b505af1925050508015613307575060015b61331057613311565b5b5b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601c546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561338957600080fd5b505af192505050801561339a575060015b6133a3576133a4565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061345883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061292e565b905092915050565b60006134eb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061358082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601d60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006136d060026136c26013546136b4600f5487613f9190919063ffffffff16565b61401790919063ffffffff16565b61401790919063ffffffff16565b905060006136e7828461341690919063ffffffff16565b90506000600267ffffffffffffffff8111801561370357600080fd5b506040519080825280602002602001820160405280156137325781602001602082028036833780820191505090505b509050308160008151811061374357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156137e557600080fd5b505afa1580156137f9573d6000803e3d6000fd5b505050506040513d602081101561380f57600080fd5b81019080805190602001909291905050508160018151811061382d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561392b578082015181840152602081019050613910565b505050509050019650505050505050600060405180830381600087803b15801561395457600080fd5b505af1158015613968573d6000803e3d6000fd5b505050506000479050600061399d61398c6002600f5461401790919063ffffffff16565b60135461341690919063ffffffff16565b905060006139db60026139cd846139bf600f5488613f9190919063ffffffff16565b61401790919063ffffffff16565b61401790919063ffffffff16565b90506000613a06836139f860115487613f9190919063ffffffff16565b61401790919063ffffffff16565b90506000613a2f82613a21858861341690919063ffffffff16565b61341690919063ffffffff16565b9050601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015613a9b57600080fd5b505af193505050508015613aad575060015b613ab657613ab7565b5b6000613ae06004613ad2600385613f9190919063ffffffff16565b61401790919063ffffffff16565b90506000613af7828461341690919063ffffffff16565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114613b80576040519150601f19603f3d011682016040523d82523d6000602084013e613b85565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114613c10576040519150601f19603f3d011682016040523d82523d6000602084013e613c15565b606091505b50509050600091506000905060008c1115613da957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71988308f600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613d1657600080fd5b505af1158015613d2a573d6000803e3d6000fd5b50505050506040513d6060811015613d4157600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506878d604051808381526020018281526020019250505060405180910390a15b505050505050505050505050506000601d60006101000a81548160ff021916908315150217905550565b600080601a541415905090565b43601a81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613e4957601354613e4d565b6014545b90506000613e776064613e698487613f9190919063ffffffff16565b61401790919063ffffffff16565b9050613ecb81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613f86818561341690919063ffffffff16565b925050509392505050565b600080831415613fa45760009050614011565b6000828402905082848281613fb557fe5b041461400c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806141286021913960400191505060405180910390fd5b809150505b92915050565b600061405983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614061565b905092915050565b6000808311829061410d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156140d25780820151818401526020810190506140b7565b50505050905090810190601f1680156140ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161411957fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220efa1dc1ced537b13f2704566154ca889773f3fd1290a768bd8b2985a4238865064736f6c634300070600336080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732260fac5e5542a773aa44fbcfedf7c193bc2c599600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610708600d556509184e72a000600e553480156100dd57600080fd5b50604051611ad8380380611ad88339818101604052602081101561010057600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016e57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610170565b805b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506118d8806102006000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610d63565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b50610350610d69565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610d6f565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b8101908080359060200190929190505050610df5565b005b3480156103c457600080fd5b506103cd610f6f565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610f75565b5b6000811180156104e857506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f68261123b565b61055d565b60008114801561054d57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b826112ea565b5b5b6105c6816105b8600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546114c390919063ffffffff16565b61150d90919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b881836114c390919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d602081101561097557600080fd5b810190808051906020019092919050505090506000600267ffffffffffffffff811180156109a257600080fd5b506040519080825280602002602001820160405280156109d15781602001602082028036833780820191505090505b509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3c57600080fd5b505afa158015610a50573d6000803e3d6000fd5b505050506040513d6020811015610a6657600080fd5b810190808051906020019092919050505081600081518110610a8457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610aee57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610be6578082015181840152602081019050610bcb565b50505050905001955050505050506000604051808303818588803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b50505050506000610cfe83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610cb557600080fd5b505afa158015610cc9573d6000803e3d6000fd5b505050506040513d6020811015610cdf57600080fd5b81019080805190602001909291905050506114c390919063ffffffff16565b9050610d158160095461150d90919063ffffffff16565b600981905550610d58610d47600854610d3984600c546115c790919063ffffffff16565b61164d90919063ffffffff16565b600b5461150d90919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610d7833611697565b610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000081525060200191505060405180910390fd5b610df333610f75565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4d57600080fd5b600060048054905090506000811415610e665750610f6c565b60008060005a90505b8482108015610e7d57508383105b15610f675783600f5410610e94576000600f819055505b610ed66004600f5481548110610ea657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611697565b15610f1e57610f1d6004600f5481548110610eed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f75565b5b610f43610f345a836114c390919063ffffffff16565b8361150d90919063ffffffff16565b91505a9050600f600081548092919060010191905055508280600101935050610e6f565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610fc557611238565b6000610fd0826106a8565b9050600081111561123657610ff081600a5461150d90919063ffffffff16565b600a81905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561108957600080fd5b505af115801561109d573d6000803e3d6000fd5b505050506040513d60208110156110b357600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061115e81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461150d90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506111ef600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611595565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6004600160048054905003815481106112ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061137657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061141757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061148b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061150583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116fb565b905092915050565b60008082840190508381101561158b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006115c0600c546115b2600b54856115c790919063ffffffff16565b61164d90919063ffffffff16565b9050919050565b6000808314156115da5760009050611647565b60008284029050828482816115eb57fe5b0414611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806118826021913960400191505060405180910390fd5b809150505b92915050565b600061168f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117bb565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156116f45750600e546116f2836106a8565b115b9050919050565b60008383111582906117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176d578082015181840152602081019050611752565b50505050905090810190601f16801561179a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611867576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182c578082015181840152602081019050611811565b50505050905090810190601f1680156118595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161187357fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220170e2234732c7bd83b9fed248d907e67f947ffbb626d07dbcc37225b88f0f09864736f6c63430007060033
Deployed Bytecode
0x6080604052600436106103035760003560e01c80637db1342c11610190578063bf56b371116100dc578063e66b1d1e11610095578063f887ea401161006f578063f887ea4014611128578063fabe628314611169578063fe9fbb80146111c6578063ffb54a991461122d5761030a565b8063e66b1d1e14611049578063f0b37c0414611086578063f2fde38b146110d75761030a565b8063bf56b37114610ec5578063ca33e64c14610ef0578063ca987b0e14610f31578063d920334e14610f5c578063da00097d14610f97578063dd62ed3e14610fc45761030a565b806398118cb411610149578063a9059cbb11610123578063a9059cbb14610d7d578063a9f7864b14610dee578063b6a5d7de14610e33578063bad3ea6a14610e845761030a565b806398118cb414610cb4578063a3a2e89e14610cdf578063a8aa1b3114610d3c5761030a565b80637db1342c14610ad5578063807c2d9c14610b10578063893d20e814610b3b5780638b42507f14610b7c5780638ea5220f14610be357806395d89b4114610c245761030a565b80633f4218e01161024f578063650c42261161020857806370a08231116101e257806370a08231146109a757806375f0a87414610a0c578063773fcb5c14610a4d5780637d1db4a514610aaa5761030a565b8063650c4226146108f857806369cf17d4146109515780636b67c4df1461097c5761030a565b80633f4218e01461072e5780634355855a1461079557806344de2e4c146107fc578063479f66d8146108295780634a74bb0214610864578063571ac8b0146108915761030a565b806323b872dd116102bc5780632f54bf6e116102965780632f54bf6e146105b5578063313ce5671461061c578063315dca291461064a57806334c70889146106db5761030a565b806323b872dd146104ce5780632b112e491461055f5780632bb14e1d1461058a5761030a565b80630445b6671461030f57806306fdde031461033a578063095ea7b3146103ca5780630d2959801461043b57806318160ddd146104785780631df4ccfc146104a35761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b5061032461125a565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f611260565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038f578082015181840152602081019050610374565b50505050905090810190601f1680156103bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d657600080fd5b50610423600480360360408110156103ed57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129d565b60405180821515815260200191505060405180910390f35b34801561044757600080fd5b506104766004803603602081101561045e57600080fd5b8101908080351515906020019092919050505061138f565b005b34801561048457600080fd5b5061048d611427565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104b8611431565b6040518082815260200191505060405180910390f35b3480156104da57600080fd5b50610547600480360360608110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611437565b60405180821515815260200191505060405180910390f35b34801561056b57600080fd5b50610574611637565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f6116b9565b6040518082815260200191505060405180910390f35b3480156105c157600080fd5b50610604600480360360208110156105d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116bf565b60405180821515815260200191505060405180910390f35b34801561062857600080fd5b50610631611718565b604051808260ff16815260200191505060405180910390f35b34801561065657600080fd5b506106d96004803603606081101561066d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611721565b005b3480156106e757600080fd5b5061072c600480360360608110156106fe57600080fd5b8101908080351515906020019092919080359060200190929190803515159060200190929190505050611864565b005b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061191f565b60405180821515815260200191505060405180910390f35b3480156107a157600080fd5b506107e4600480360360208110156107b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193f565b60405180821515815260200191505060405180910390f35b34801561080857600080fd5b5061081161195f565b60405180821515815260200191505060405180910390f35b34801561083557600080fd5b506108626004803603602081101561084c57600080fd5b8101908080359060200190929190505050611972565b005b34801561087057600080fd5b50610879611a06565b60405180821515815260200191505060405180910390f35b34801561089d57600080fd5b506108e0600480360360208110156108b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a19565b60405180821515815260200191505060405180910390f35b34801561090457600080fd5b5061094f6004803603608081101561091b57600080fd5b8101908080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611a4c565b005b34801561095d57600080fd5b50610966611b37565b6040518082815260200191505060405180910390f35b34801561098857600080fd5b50610991611b3d565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b506109f6600480360360208110156109ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b43565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611b8c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5957600080fd5b50610aa860048036036040811015610a7057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb2565b005b348015610ab657600080fd5b50610abf611ebd565b6040518082815260200191505060405180910390f35b348015610ae157600080fd5b50610b0e60048036036020811015610af857600080fd5b8101908080359060200190929190505050611ec3565b005b348015610b1c57600080fd5b50610b25611f48565b6040518082815260200191505060405180910390f35b348015610b4757600080fd5b50610b50611f4e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b8857600080fd5b50610bcb60048036036020811015610b9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f77565b60405180821515815260200191505060405180910390f35b348015610bef57600080fd5b50610bf8611f97565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3057600080fd5b50610c39611fbd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c79578082015181840152602081019050610c5e565b50505050905090810190601f168015610ca65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cc057600080fd5b50610cc9611ffa565b6040518082815260200191505060405180910390f35b348015610ceb57600080fd5b50610d3a60048036036040811015610d0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612000565b005b348015610d4857600080fd5b50610d516120d6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8957600080fd5b50610dd660048036036040811015610da057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120fc565b60405180821515815260200191505060405180910390f35b348015610dfa57600080fd5b50610e3160048036036040811015610e1157600080fd5b810190808035906020019092919080359060200190929190505050612111565b005b348015610e3f57600080fd5b50610e8260048036036020811015610e5657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612225565b005b348015610e9057600080fd5b50610e996122fa565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ed157600080fd5b50610eda612320565b6040518082815260200191505060405180910390f35b348015610efc57600080fd5b50610f05612326565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f3d57600080fd5b50610f4661234c565b6040518082815260200191505060405180910390f35b348015610f6857600080fd5b50610f9560048036036020811015610f7f57600080fd5b8101908080359060200190929190505050612352565b005b348015610fa357600080fd5b50610fac6123d7565b60405180821515815260200191505060405180910390f35b348015610fd057600080fd5b5061103360048036036040811015610fe757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ea565b6040518082815260200191505060405180910390f35b34801561105557600080fd5b506110846004803603602081101561106c57600080fd5b81019080803515159060200190929190505050612471565b005b34801561109257600080fd5b506110d5600480360360208110156110a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612509565b005b3480156110e357600080fd5b50611126600480360360208110156110fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125df565b005b34801561113457600080fd5b5061113d612741565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561117557600080fd5b506111c46004803603604081101561118c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612767565b005b3480156111d257600080fd5b50611215600480360360208110156111e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061283d565b60405180821515815260200191505060405180910390f35b34801561123957600080fd5b50611242612893565b60405180821515815260200191505060405180910390f35b601e5481565b60606040518060400160405280601481526020017f424c41434b20444f4c4c41522046494e414e4345000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611398336116bf565b61140a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600654905090565b60135481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611623576115a2826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61162e8484846129ee565b90509392505050565b60006116b4611667600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b43565b6116a6611695600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b43565b60065461341690919063ffffffff16565b61341690919063ffffffff16565b905090565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b61172a3361283d565b61179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61186d3361283d565b6118df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601d60016101000a81548160ff02191690831515021790555081601e8190555080601d60026101000a81548160ff021916908315150217905550505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b600960009054906101000a900460ff1681565b61197b3361283d565b6119ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620493e081106119fc57600080fd5b80601c8190555050565b601d60019054906101000a900460ff1681565b6000611a45827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61129d565b9050919050565b611a553361283d565b611ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b83600f81905550826011819055508160108190555080601281905550611b0e601154611b00601054600f546128a690919063ffffffff16565b6128a690919063ffffffff16565b601381905550611b2b6012546013546128a690919063ffffffff16565b60148190555050505050565b60125481565b60105481565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bbb3361283d565b611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611cb75750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611cc057600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611dce57601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611db157600080fd5b505af1158015611dc5573d6000803e3d6000fd5b50505050611eb9565b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ea057600080fd5b505af1158015611eb4573d6000803e3d6000fd5b505050505b5050565b60075481565b611ecc3361283d565b611f3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f5442440000000000000000000000000000000000000000000000000000000000815250905090565b600f5481565b6120093361283d565b61207b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006121093384846129ee565b905092915050565b61211a3361283d565b61218c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561220957600080fd5b505af115801561221d573d6000803e3d6000fd5b505050505050565b61222e336116bf565b6122a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b61235b3361283d565b6123cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b601d60029054906101000a900460ff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61247a3361283d565b6124ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548160ff02191690831515021790555050565b612512336116bf565b612584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6125e8336116bf565b61265a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6127703361283d565b6127e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b60009054906101000a900460ff1681565b600080828401905083811015612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906129db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a0578082015181840152602081019050612985565b50505050905090810190601f1680156129cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601d60009054906101000a900460ff1615612a1757612a10848484613460565b905061340f565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612abb5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b4357601b60009054906101000a900460ff16612b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b60075482111580612b9d5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c7a5750601d60009054906101000a900460ff16155b8015612c925750601d60019054906101000a900460ff165b8015612cdf5750601e54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612ced57612cec613633565b5b612cf5613dd3565b158015612d4f5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612da9576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612da057600080fd5b612da8613de0565b5b612e32826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612edb5750600960009054906101000a900460ff165b15612f4157600854612f3583600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b1115612f4057600080fd5b5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612fe75750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612ff15782612ffd565b612ffc858585613de9565b5b905061305181600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166131d357601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156131b757600080fd5b505af19250505080156131c8575060015b6131d1576131d2565b5b5b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661331257601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156132f657600080fd5b505af1925050508015613307575060015b61331057613311565b5b5b601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479601c546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561338957600080fd5b505af192505050801561339a575060015b6133a3576133a4565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061345883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061292e565b905092915050565b60006134eb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061358082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6001601d60006101000a81548160ff0219169083151502179055506000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006136d060026136c26013546136b4600f5487613f9190919063ffffffff16565b61401790919063ffffffff16565b61401790919063ffffffff16565b905060006136e7828461341690919063ffffffff16565b90506000600267ffffffffffffffff8111801561370357600080fd5b506040519080825280602002602001820160405280156137325781602001602082028036833780820191505090505b509050308160008151811061374357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156137e557600080fd5b505afa1580156137f9573d6000803e3d6000fd5b505050506040513d602081101561380f57600080fd5b81019080805190602001909291905050508160018151811061382d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561392b578082015181840152602081019050613910565b505050509050019650505050505050600060405180830381600087803b15801561395457600080fd5b505af1158015613968573d6000803e3d6000fd5b505050506000479050600061399d61398c6002600f5461401790919063ffffffff16565b60135461341690919063ffffffff16565b905060006139db60026139cd846139bf600f5488613f9190919063ffffffff16565b61401790919063ffffffff16565b61401790919063ffffffff16565b90506000613a06836139f860115487613f9190919063ffffffff16565b61401790919063ffffffff16565b90506000613a2f82613a21858861341690919063ffffffff16565b61341690919063ffffffff16565b9050601b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015613a9b57600080fd5b505af193505050508015613aad575060015b613ab657613ab7565b5b6000613ae06004613ad2600385613f9190919063ffffffff16565b61401790919063ffffffff16565b90506000613af7828461341690919063ffffffff16565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114613b80576040519150601f19603f3d011682016040523d82523d6000602084013e613b85565b606091505b505090506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d8060008114613c10576040519150601f19603f3d011682016040523d82523d6000602084013e613c15565b606091505b50509050600091506000905060008c1115613da957601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71988308f600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613d1657600080fd5b505af1158015613d2a573d6000803e3d6000fd5b50505050506040513d6060811015613d4157600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506878d604051808381526020018281526020019250505060405180910390a15b505050505050505050505050506000601d60006101000a81548160ff021916908315150217905550565b600080601a541415905090565b43601a81905550565b6000808373ffffffffffffffffffffffffffffffffffffffff16601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613e4957601354613e4d565b6014545b90506000613e776064613e698487613f9190919063ffffffff16565b61401790919063ffffffff16565b9050613ecb81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a690919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613f86818561341690919063ffffffff16565b925050509392505050565b600080831415613fa45760009050614011565b6000828402905082848281613fb557fe5b041461400c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806141286021913960400191505060405180910390fd5b809150505b92915050565b600061405983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614061565b905092915050565b6000808311829061410d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156140d25780820151818401526020810190506140b7565b50505050905090810190601f1680156140ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161411957fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220efa1dc1ced537b13f2704566154ca889773f3fd1290a768bd8b2985a4238865064736f6c63430007060033
Deployed Bytecode Sourcemap
11704:11947:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13409:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14843:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15687:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21556:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15105:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12864:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18738:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15285:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12786:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11074:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15019:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17650:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17931:276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12546:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12652:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12389:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18423:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13308:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15911:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17211:431;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12822:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12748:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15435:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12986:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16827:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12251:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16323:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12318:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15199:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12597:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13023:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14929:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12710:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16557:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13087:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18574:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18215:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10747:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13187:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13115:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12943:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12898;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16212:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13355:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15546:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16437:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10917:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11474:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13056:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16688:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11248:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13147:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13409:60;;;;:::o;14843:80::-;14891:13;14915:5;;;;;;;;;;;;;;;;;14908:12;;14843:80;:::o;15687:216::-;15762:4;15814:6;15779:11;:23;15791:10;15779:23;;;;;;;;;;;;;;;:32;15803:7;15779:32;;;;;;;;;;;;;;;:41;;;;15857:7;15836:37;;15845:10;15836:37;;;15866:6;15836:37;;;;;;;;;;;;;;;;;;15891:4;15884:11;;15687:216;;;;:::o;21556:98::-;10463:19;10471:10;10463:7;:19::i;:::-;10455:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21637:9:::1;21623:11;;:23;;;;;;;;;;;;;;;;;;21556:98:::0;:::o;15105:88::-;15160:7;15178:12;;15171:19;;15105:88;:::o;12864:27::-;;;;:::o;18738:372::-;18838:4;18911:2;18868:11;:19;18880:6;18868:19;;;;;;;;;;;;;;;:31;18888:10;18868:31;;;;;;;;;;;;;;;;:46;18865:180;;18964:69;19000:6;18964:69;;;;;;;;;;;;;;;;;:11;:19;18976:6;18964:19;;;;;;;;;;;;;;;:31;18984:10;18964:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;18930:11;:19;18942:6;18930:19;;;;;;;;;;;;;;;:31;18950:10;18930:31;;;;;;;;;;;;;;;:103;;;;18865:180;19062:40;19076:6;19084:9;19095:6;19062:13;:40::i;:::-;19055:47;;18738:372;;;;;:::o;15285:142::-;15338:7;15365:54;15403:15;15413:4;;;;;;;;;;;15403:9;:15::i;:::-;15365:33;15382:15;15392:4;;;;;;;;;;;15382:9;:15::i;:::-;15365:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15358:61;;15285:142;:::o;12786:29::-;;;;:::o;11074:103::-;11129:4;11164:5;;;;;;;;;;;11153:16;;:7;:16;;;11146:23;;11074:103;;;:::o;15019:80::-;15071:5;11906:1;15080:16;;15019:80;:::o;17650:273::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17813:20:::1;17789:21;;:44;;;;;;;;;;;;;;;;;;17862:18;17844:15;;:36;;;;;;;;;;;;;;;;;;17903:12;17891:9;;:24;;;;;;;;;;;;;;;;;;17650:273:::0;;;:::o;17931:276::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18088:14:::1;18063:21;;:39;;;;;;;;;;;;;;;;;;18129:16;18113:13;:32;;;;18184:15;18156:25;;:43;;;;;;;;;;;;;;;;;;17931:276:::0;;;:::o;12546:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12652:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12389:33::-;;;;;;;;;;;;;:::o;18423:139::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18516:6:::1;18510:3;:12;18502:21;;;::::0;::::1;;18551:3;18534:14;:20;;;;18423:139:::0;:::o;13308:40::-;;;;;;;;;;;;;:::o;15911:116::-;15966:4;15990:29;15998:7;16015:2;15990:7;:29::i;:::-;15983:36;;15911:116;;;:::o;17211:431::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17368:9:::1;17353:12;:24;;;;17401:12;17388:10;:25;;;;17439:15;17424:12;:30;;;;17482:15;17465:14;:32;;;;17529:46;17564:10;;17529:30;17546:12;;17529;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;17518:8;:57;;;;17606:28;17619:14;;17606:8;;:12;;:28;;;;:::i;:::-;17586:17;:48;;;;17211:431:::0;;;;:::o;12822:33::-;;;;:::o;12748:31::-;;;;:::o;15435:105::-;15501:7;15519:9;:18;15529:7;15519:18;;;;;;;;;;;;;;;;15512:25;;15435:105;;;:::o;12986:30::-;;;;;;;;;;;;;:::o;16827:376::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16945:4:::1;16927:23;;:6;:23;;;;:41;;;;;16964:4;;;;;;;;;;;16954:14;;:6;:14;;;;16927:41;16919:50;;;::::0;::::1;;17007:6;16980:16;:24;16997:6;16980:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17037:6;17034:162;;;17059:19;;;;;;;;;;;:28;;;17088:6;17096:1;17059:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17034:162;;;17129:19;;;;;;;;;;;:28;;;17158:6;17166:9;:17;17176:6;17166:17;;;;;;;;;;;;;;;;17129:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17034:162;16827:376:::0;;:::o;12251:60::-;;;;:::o;16323:106::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16413:8:::1;16399:10;:22;;;;16323:106:::0;:::o;12318:58::-;;;;:::o;15199:78::-;15251:7;15269:5;;;;;;;;;;;15262:12;;15199:78;:::o;12597:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13023:24::-;;;;;;;;;;;;;:::o;14929:84::-;14979:13;15003:7;;;;;;;;;;;;;;;;;14996:14;;14929:84;:::o;12710:31::-;;;;:::o;16557:123::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16666:6:::1;16644:11;:19;16656:6;16644:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16557:123:::0;;:::o;13087:19::-;;;;;;;;;;;;;:::o;18574:156::-;18654:4;18678:44;18692:10;18704:9;18715:6;18678:13;:44::i;:::-;18671:51;;18574:156;;;;:::o;18215:200::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18331:19:::1;;;;;;;;;;;:43;;;18375:11;18388:18;18331:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18215:200:::0;;:::o;10747:94::-;10463:19;10471:10;10463:7;:19::i;:::-;10455:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10829:4:::1;10807:14:::0;:19:::1;10822:3;10807:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10747:94:::0;:::o;13187:46::-;;;;;;;;;;;;;:::o;13115:25::-;;;;:::o;12943:36::-;;;;;;;;;;;;;:::o;12898:::-;;;;:::o;16212:103::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16299:8:::1;16284:12;:23;;;;16212:103:::0;:::o;13355:45::-;;;;;;;;;;;;;:::o;15546:133::-;15630:7;15648:11;:19;15660:6;15648:19;;;;;;;;;;;;;;;:28;15668:7;15648:28;;;;;;;;;;;;;;;;15641:35;;15546:133;;;;:::o;16437:108::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16529:8:::1;16512:14;;:25;;;;;;;;;;;;;;;;;;16437:108:::0;:::o;10917:97::-;10463:19;10471:10;10463:7;:19::i;:::-;10455:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11001:5:::1;10979:14;:19;10994:3;10979:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10917:97:::0;:::o;11474:173::-;10463:19;10471:10;10463:7;:19::i;:::-;10455:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11558:3:::1;11550:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;11594:4;11572:14:::0;:19:::1;11587:3;11572:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11614:25;11635:3;11614:25;;;;;;;;;;;;;;;;;;;;11474:173:::0;:::o;13056:24::-;;;;;;;;;;;;;:::o;16688:131::-;10632:24;10645:10;10632:12;:24::i;:::-;10624:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16805:6:::1;16779:15;:23;16795:6;16779:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16688:131:::0;;:::o;11248:107::-;11304:4;11328:14;:19;11343:3;11328:19;;;;;;;;;;;;;;;;;;;;;;;;;11321:26;;11248:107;;;:::o;13147:31::-;;;;;;;;;;;;;:::o;539:179::-;597:7;617:9;633:1;629;:5;617:17;;658:1;653;:6;;645:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;709:1;702:8;;;539:179;;;;:::o;870:190::-;956:7;989:1;984;:6;;992:12;976:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:9;1032:1;1028;:5;1016:17;;1051:1;1044:8;;;870:190;;;;;:::o;19118:1641::-;19210:4;19240:16;;;;;;;;;;;19237:73;;;19266:41;19281:6;19289:9;19300:6;19266:14;:41::i;:::-;19259:48;;;;19237:73;19326:14;:22;19341:6;19326:22;;;;;;;;;;;;;;;;;;;;;;;;;19325:23;:53;;;;;19353:14;:25;19368:9;19353:25;;;;;;;;;;;;;;;;;;;;;;;;;19352:26;19325:53;19322:128;;;19402:11;;;;;;;;;;;19394:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19322:128;19480:12;;19470:6;:22;;:49;;;;19496:15;:23;19512:6;19496:23;;;;;;;;;;;;;;;;;;;;;;;;;19470:49;19462:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19571:4;;;;;;;;;;;19557:18;;:10;:18;;;;:39;;;;;19580:16;;;;;;;;;;;19579:17;19557:39;:64;;;;;19600:21;;;;;;;;;;;19557:64;:109;;;;;19653:13;;19625:9;:24;19643:4;19625:24;;;;;;;;;;;;;;;;:41;;19557:109;19554:128;;;19669:10;:8;:10::i;:::-;19554:128;19698:10;:8;:10::i;:::-;19697:11;:32;;;;;19725:4;;;;;;;;;;;19712:17;;:9;:17;;;19697:32;19694:117;;;19774:1;19754:9;:17;19764:6;19754:17;;;;;;;;;;;;;;;;:21;19746:30;;;;;;19791:8;:6;:8::i;:::-;19694:117;19870:53;19892:6;19870:53;;;;;;;;;;;;;;;;;:9;:17;19880:6;19870:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19850:9;:17;19860:6;19850:17;;;;;;;;;;;;;;;:73;;;;19948:15;:26;19964:9;19948:26;;;;;;;;;;;;;;;;;;;;;;;;;19947:27;:45;;;;;19978:14;;;;;;;;;;;19947:45;19944:141;;;20062:10;;20026:32;20051:6;20026:9;:20;20036:9;20026:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;20018:55;;;;;;19944:141;20097:19;20120:11;:19;20132:6;20120:19;;;;;;;;;;;;;;;;;;;;;;;;;20119:20;:47;;;;;20144:11;:22;20156:9;20144:22;;;;;;;;;;;;;;;;;;;;;;;;;20143:23;20119:47;:93;;20206:6;20119:93;;;20169:34;20177:6;20185:9;20196:6;20169:7;:34::i;:::-;20119:93;20097:115;;20246:37;20271:11;20246:9;:20;20256:9;20246:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;20223:9;:20;20233:9;20223:20;;;;;;;;;;;;;;;:60;;;;20329:16;:24;20346:6;20329:24;;;;;;;;;;;;;;;;;;;;;;;;;20325:127;;20374:19;;;;;;;;;;;:28;;;20403:6;20411:9;:17;20421:6;20411:17;;;;;;;;;;;;;;;;20374:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20370:71;;;;;;20325:127;20468:16;:27;20485:9;20468:27;;;;;;;;;;;;;;;;;;;;;;;;;20464:137;;20516:19;;;;;;;;;;;:28;;;20545:9;20556;:20;20566:9;20556:20;;;;;;;;;;;;;;;;20516:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20512:77;;;;;;20464:137;20617:19;;;;;;;;;;;:27;;;20645:14;;20617:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20613:59;;;;;;20706:9;20689:40;;20698:6;20689:40;;;20717:11;20689:40;;;;;;;;;;;;;;;;;;20747:4;20740:11;;;19118:1641;;;;;;:::o;726:136::-;784:7;811:43;815:1;818;811:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;804:50;;726:136;;;;:::o;20771:330::-;20864:4;20901:53;20923:6;20901:53;;;;;;;;;;;;;;;;;:9;:17;20911:6;20901:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20881:9;:17;20891:6;20881:17;;;;;;;;;;;;;;;:73;;;;20988:32;21013:6;20988:9;:20;20998:9;20988:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20965:9;:20;20975:9;20965:20;;;;;;;;;;;;;;;:55;;;;21053:9;21036:35;;21045:6;21036:35;;;21064:6;21036:35;;;;;;;;;;;;;;;;;;21089:4;21082:11;;20771:330;;;;;:::o;21662:1920::-;13533:4;13514:16;;:23;;;;;;;;;;;;;;;;;;21724::::1;21750:9;:24;21768:4;21750:24;;;;;;;;;;;;;;;;21724:50;;21785:23;21811:54;21863:1;21811:47;21849:8;;21811:33;21831:12;;21811:15;:19;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;21785:80;;21876:20;21899:36;21919:15;21899;:19;;:36;;;;:::i;:::-;21876:59;;21948:21;21986:1;21972:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21948:40;;22017:4;21999;22004:1;21999:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;22043:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;22033:4;22038:1;22033:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;22069:6;;;;;;;;;;;:57;;;22141:12;22168:1;22184:4;22211;22231:15;22069:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22270:17;22290:21;22270:41;;22324:19;22346:33;22359:19;22376:1;22359:12;;:16;;:19;;;;:::i;:::-;22346:8;;:12;;:33;;;;:::i;:::-;22324:55;;22400:26;22429:51;22478:1;22429:44;22461:11;22429:27;22443:12;;22429:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;22400:80;;22491:27;22521:42;22551:11;22521:25;22535:10;;22521:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;22491:72;;22574:26;22603:58;22641:19;22603:33;22617:18;22603:9;:13;;:33;;;;:::i;:::-;:37;;:58;;;;:::i;:::-;22574:87;;22678:19;;;;;;;;;;;:27;;;22713:19;22678:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22674:73;;;;;;22767:22;22792:32;22822:1;22792:25;22815:1;22792:18;:22;;:25;;;;:::i;:::-;:29;;:32;;;;:::i;:::-;22767:57;;22835:16;22854:38;22877:14;22854:18;:22;;:38;;;;:::i;:::-;22835:57;;22914:15;22942;;;;;;;;;;;22934:29;;22971:14;22992:5;22934:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22913:89;;;23014:16;23043:9;;;;;;;;;;;23035:23;;23066:8;23081:5;23035:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23013:78;;;23165:5;23152:18;;23195:5;23181:19;;23234:1;23216:15;:19;23213:362;;;23251:6;;;;;;;;;;;:22;;;23281:18;23327:4;23351:15;23385:1;23405::::0;23425:21:::1;;;;;;;;;;;23465:15;23251:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23515:48;23527:18;23547:15;23515:48;;;;;;;;;;;;;;;;;;;;;;;;23213:362;13548:1;;;;;;;;;;;;;13579:5:::0;13560:16;;:24;;;;;;;;;;;;;;;;;;21662:1920::o;16035:90::-;16078:4;16116:1;16102:10;;:15;;16095:22;;16035:90;:::o;16133:71::-;16184:12;16171:10;:25;;;;16133:71::o;21109:439::-;21195:7;21225:21;21257:9;21249:17;;:4;;;;;;;;;;;:17;;;:48;;21289:8;;21249:48;;;21269:17;;21249:48;21225:72;;21308:17;21328:34;21358:3;21328:25;21339:13;21328:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21308:54;;21402:39;21431:9;21402;:24;21420:4;21402:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;21375:9;:24;21393:4;21375:24;;;;;;;;;;;;;;;:66;;;;21482:4;21457:42;;21466:6;21457:42;;;21489:9;21457:42;;;;;;;;;;;;;;;;;;21519:21;21530:9;21519:6;:10;;:21;;;;:::i;:::-;21512:28;;;;21109:439;;;;;:::o;1068:224::-;1126:7;1155:1;1150;:6;1146:25;;;1167:1;1160:8;;;;1146:25;1181:9;1197:1;1193;:5;1181:17;;1226:1;1221;1217;:5;;;;;;:10;1209:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1283:1;1276:8;;;1068:224;;;;;:::o;1300:132::-;1358:7;1385:39;1389:1;1392;1385:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1378:46;;1300:132;;;;:::o;1440:189::-;1526:7;1558:1;1554;:5;1561:12;1546:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:9;1601:1;1597;:5;;;;;;1585:17;;1620:1;1613:8;;;1440:189;;;;;:::o
Swarm Source
ipfs://170e2234732c7bd83b9fed248d907e67f947ffbb626d07dbcc37225b88f0f098
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)