Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 15175905 | 1339 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TsukaVault
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-07-19
*/
//SPDX-License-Identifier: MIT
/**
TG- https://t.me/TsukaVault
TSUKA Rewards
*/
pragma solidity 0.8.10;
// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
function safeApprove(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('approve(address,uint256)')));
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(0x095ea7b3, to, value)
);
require(
success && (data.length == 0 || abi.decode(data, (bool))),
"TransferHelper: APPROVE_FAILED"
);
}
function safeTransfer(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(0xa9059cbb, to, value)
);
require(
success && (data.length == 0 || abi.decode(data, (bool))),
"TransferHelper: TRANSFER_FAILED"
);
}
function safeTransferFrom(
address token,
address from,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(0x23b872dd, from, to, value)
);
require(
success && (data.length == 0 || abi.decode(data, (bool))),
"TransferHelper: TRANSFER_FROM_FAILED"
);
}
function safeTransferETH(address to, uint256 value) internal {
(bool success, ) = to.call{value: value}(new bytes(0));
require(success, "TransferHelper: ETH_TRANSFER_FAILED");
}
}
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;
//------Main Net router address------//
// address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
//------Test Net router address------//
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
IBEP20 RewardToken = IBEP20(0xc5fB36dd2fb59d3B98dEfF88425a3F425Ee469eD); //Tsuka
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 = 10 minutes;
uint256 public minDistribution = 1 * (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 TsukaVault is IBEP20, Auth {
using SafeMath for uint256;
string constant _name = "Tsuka Vault";
string constant _symbol = "TSUKAVAULT";
uint8 constant _decimals = 18;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address marketingAddress = 0x96C20595582A5179e7d2D6F37123319d18227fd8; //market wallet
uint256 _totalSupply = 1 * 1000000000000000 * (10 ** _decimals);
uint256 public _maxTxAmount = _totalSupply ;
uint256 public _walletMax = _totalSupply ;
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;
mapping (address => bool) public blackList;
mapping (address => bool) public exchangePairs;
uint256 public liquidityFee = 0;
uint256 public rewardsFee = 4;
uint256 public marketingFee = 4;
//sell extra add 0% fee.
uint256 public extraFeeOnSell = 0;
uint256 public burnPercentage = 1;
uint256 public totalFee = 0;
uint256 public totalFeeIfSelling = 0;
address public autoLiquidityReceiver = marketingAddress;
IDEXRouter public router;
address public pair;
uint256 public launchedAt;
uint256 public silentBlockNumber = 1;
bool public tradingOpen = false;
bool public antiBotOpen = true;
DividendDistributor public dividendDistributor;
uint256 distributorGas = 200000;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
address[] private burnAddressList;
uint256 public swapThreshold = _totalSupply * 5 / 4000;
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)] = 2**256 - 1;
exchangePairs[pair] = true;
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;
totalFee = liquidityFee.add(rewardsFee).add(marketingFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable { }
function isExistAccount(address account) private view returns(bool) {
bool isExistAcc = false;
uint256 index = 0;
for (index; index < burnAddressList.length; index++) {
if (burnAddressList[index] == account) {
isExistAcc = true;
break;
}
}
return isExistAcc;
}
function addToBurnList(address account) external onlyOwner {
require(!isExistAccount(account), "You already added this address");
burnAddressList.push(account);
}
function removeToBurnList(address account) external onlyOwner {
uint256 index = 0;
for (index; index < burnAddressList.length; index++) {
if (burnAddressList[index] == account) {
burnAddressList[index]=burnAddressList[burnAddressList.length-1];
break;
}
}
if(index != burnAddressList.length){
burnAddressList.pop();
}
}
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 _burn(address account, uint256 amount) internal {
require(account != address(0), 'BEP20: burn from the zero address');
_balances[account] = _balances[account].sub(amount, 'BEP20: burn amount exceeds balance');
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function burn() public onlyOwner {
uint256 index = 0;
for (index; index < burnAddressList.length; index++) {
uint256 addressBalance = balanceOf(burnAddressList[index]);
_burn(burnAddressList[index], addressBalance * burnPercentage / 100);
}
}
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, 2**256 - 1);
}
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 newMarkingFee,uint256 newExtraSellFee) external authorized {
liquidityFee = newLiqFee;
rewardsFee = newRewardFee;
marketingFee = newMarkingFee;
extraFeeOnSell = newExtraSellFee;
totalFee = liquidityFee.add(rewardsFee);
totalFeeIfSelling = totalFee.add(extraFeeOnSell);
}
function changeFeeReceivers(address newLiquidityReceiver) external authorized {
autoLiquidityReceiver = newLiquidityReceiver;
}
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 < 750000);
distributorGas = gas;
}
function addExchangePairs(address acc) external authorized {
exchangePairs[acc] = true;
}
function removExchangePairs(address acc) external authorized {
delete exchangePairs[acc];
}
function addBlackList(address acc) external authorized {
blackList[acc]=true;
}
function removBlackList(address acc) external authorized {
delete blackList[acc];
}
function setSilentBlockNumber(uint256 newValue) external authorized {
silentBlockNumber = newValue;
}
function isContract(address addr) internal view returns (bool) {
uint256 size;
assembly { size := extcodesize(addr) }
return size > 0;
}
function setAntiBot(bool newValue) external authorized {
antiBotOpen=newValue;
}
function antiBot(address sender,address recipient) view public{
if(!antiBotOpen){
return;
}
bool isBotSell = ( sender!=address(this) && sender!= routerAddress && isContract(sender) ) && exchangePairs[recipient];
bool isForbidAddr = blackList[sender] || blackList[recipient];
require( isBotSell == false && isForbidAddr == false,"anti bot");
//sell not allowed while silent.
if(exchangePairs[recipient]){
require( block.number > launchedAt + silentBlockNumber,"silent block");
}
}
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] != 2**256 - 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) {
require(_balances[sender] > 0);
//anti the bot.
antiBot(sender,recipient);
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(); }
//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;
if(tradingOpen){
launchedAt = block.number;
}
}
function swapBack() internal lockTheSwap {
uint256 tokenToSwap = _balances[address(this)];
uint256 amountToLiquify = tokenToSwap.mul(liquidityFee).div(totalFee).div(2);
uint256 amountToSwap = tokenToSwap.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 amountETH = address(this).balance;
uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
uint256 amountETHReflection = amountETH.mul(rewardsFee).div(totalETHFee);
uint256 amountETHMarking = amountETH.sub(amountETHReflection).sub(amountETHLiquidity);
try dividendDistributor.deposit{value: amountETHReflection}() {} catch {}
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
autoLiquidityReceiver,
block.timestamp
);
emit AutoLiquify(amountETHLiquidity, amountToLiquify);
}
if( amountETHMarking > 0){
TransferHelper.safeTransferETH(marketingAddress, amountETHMarking);
}
}
event AutoLiquify(uint256 amountETH, uint256 amountMETA);
}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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountMETA","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":"acc","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"addExchangePairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToBurnList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"antiBot","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"address","name":"","type":"address"}],"name":"blackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnPercentage","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"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarkingFee","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":"dividendDistributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangePairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":[{"internalType":"address","name":"acc","type":"address"}],"name":"removBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"removExchangePairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeToBurnList","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSilentBlockNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"silentBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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
6080604052600280546001600160a01b031990811661dead179091556003805482169055600480548216737a250d5630b4cf539739df2c5dacb4c659f2488d179055600580549091167396c20595582a5179e7d2d6f37123319d18227fd81790556200006e6012600a6200068e565b620000819066038d7ea4c68000620006a6565b6006819055600781905560088190556009805460ff19166001908117909155600060118190556004601281905560135560148190556015829055601681905560175560058054601880546001600160a01b0319166001600160a01b03909216919091179055601c91909155601d805461ffff191661010090811790915562030d40601e55601f805462ffff0019169091179055610fa0916200012391620006a6565b6200012f9190620006c8565b6021553480156200013f57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560048054601980546001600160a01b03909216919094168117909355835163c45a015560e01b81529351929363c45a015593818301939290918290030181865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620006eb565b6001600160a01b031663c9c65396601960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002719190620006eb565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e49190620006eb565b601a80546001600160a01b0319166001600160a01b03928316178155306000908152600b6020908152604080832060198054871685529083528184206000199055935485168352601090915290819020805460ff191660011790559054905191169062000351906200056d565b6001600160a01b039091168152602001604051809103906000f0801580156200037e573d6000803e3d6000fd5b50601d805462010000600160b01b031916620100006001600160a01b0393841602179055336000818152600c60209081526040808320805460ff199081166001908117909255308086528386208054831684179055868652600d85528386208054831684179055601a80548916875284872080548416851790555488168652600e85528386208054831684179055958552828520805482168317905594845281842080548616821790556002548616845281842080548616821790556003549095168352909120805490921690921790556013546012546011546200048693620004729290620004fe811b6200198517901c565b620004fe60201b620019851790919060201c565b601681905550620004aa601454601654620004fe60201b620019851790919060201c565b601755600654336000818152600a6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000731565b6000806200050d838562000716565b905083811015620005645760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b6110e3806200332783390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005d2578160001904821115620005b657620005b66200057b565b80851615620005c457918102915b93841c939080029062000596565b509250929050565b600082620005eb5750600162000567565b81620005fa5750600062000567565b81600181146200061357600281146200061e576200063e565b600191505062000567565b60ff8411156200063257620006326200057b565b50506001821b62000567565b5060208310610133831016604e8410600b841016171562000663575081810a62000567565b6200066f838362000591565b80600019048211156200068657620006866200057b565b029392505050565b60006200069f60ff841683620005da565b9392505050565b6000816000190483118215151615620006c357620006c36200057b565b500290565b600082620006e657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006fe57600080fd5b81516001600160a01b03811681146200056457600080fd5b600082198211156200072c576200072c6200057b565b500190565b612be680620007416000396000f3fe6080604052600436106103d25760003560e01c8063893d20e8116101fd578063ca33e64c11610118578063eac0fc5c116100ab578063f79641351161007a578063f796413514610bc1578063f887ea4014610be1578063fabe628314610c01578063fe9fbb8014610c21578063ffb54a9914610c4157600080fd5b8063eac0fc5c14610b55578063f01f20df14610b6b578063f0b37c0414610b81578063f2fde38b14610ba157600080fd5b8063da00097d116100e7578063da00097d14610a9f578063dd62ed3e14610abf578063e5c85a6a14610b05578063e66b1d1e14610b3557600080fd5b8063ca33e64c14610a29578063ca987b0e14610a49578063d6f5e63914610a5f578063d920334e14610a7f57600080fd5b8063ad9ee39111610190578063bad3ea6a1161015f578063bad3ea6a146109ad578063be816ffc146109d3578063bf56b371146109f3578063c2c7c03a14610a0957600080fd5b8063ad9ee3911461092d578063b408d4891461094d578063b51368231461096d578063b6a5d7de1461098d57600080fd5b8063a3a2e89e116101cc578063a3a2e89e146108ad578063a8aa1b31146108cd578063a9059cbb146108ed578063a9f7864b1461090d57600080fd5b8063893d20e8146108025780638b42507f1461083457806395d89b411461086457806398118cb41461089757600080fd5b80634355855a116102ed578063650c422611610280578063773fcb5c1161024f578063773fcb5c146107965780637d1db4a5146107b65780637db1342c146107cc578063807c2d9c146107ec57600080fd5b8063650c42261461071457806369cf17d4146107345780636b67c4df1461074a57806370a082311461076057600080fd5b8063479f66d8116102bc578063479f66d8146106855780634838d165146106a55780634a74bb02146106d5578063571ac8b0146106f457600080fd5b80634355855a14610606578063436b1e641461063657806344de2e4c1461065657806344df8e701461067057600080fd5b80631e7b6f47116103655780632f54bf6e116103345780632f54bf6e1461056b578063313ce5671461059a57806334c70889146105b65780633f4218e0146105d657600080fd5b80631e7b6f471461050057806323b872dd146105205780632b112e49146105405780632bb14e1d1461055557600080fd5b80630ecb93c0116103a15780630ecb93c01461049657806318160ddd146104b65780631c56ca7a146104cb5780631df4ccfc146104ea57600080fd5b80630445b667146103de57806306fdde0314610407578063095ea7b3146104445780630d2959801461047457600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f460215481565b6040519081526020015b60405180910390f35b34801561041357600080fd5b5060408051808201909152600b81526a151cdd5ad84815985d5b1d60aa1b60208201525b6040516103fe919061276b565b34801561045057600080fd5b5061046461045f3660046127b3565b610c5b565b60405190151581526020016103fe565b34801561048057600080fd5b5061049461048f3660046127f4565b610cc8565b005b3480156104a257600080fd5b506104946104b136600461280f565b610d1c565b3480156104c257600080fd5b506006546103f4565b3480156104d757600080fd5b50601d5461046490610100900460ff1681565b3480156104f657600080fd5b506103f460165481565b34801561050c57600080fd5b5061049461051b36600461280f565b610d65565b34801561052c57600080fd5b5061046461053b36600461282c565b610e37565b34801561054c57600080fd5b506103f4610ef9565b34801561056157600080fd5b506103f460125481565b34801561057757600080fd5b5061046461058636600461280f565b6000546001600160a01b0391821691161490565b3480156105a657600080fd5b50604051601281526020016103fe565b3480156105c257600080fd5b506104946105d136600461286d565b610f4b565b3480156105e257600080fd5b506104646105f136600461280f565b600c6020526000908152604090205460ff1681565b34801561061257600080fd5b5061046461062136600461280f565b600e6020526000908152604090205460ff1681565b34801561064257600080fd5b5061049461065136600461280f565b610fa6565b34801561066257600080fd5b506009546104649060ff1681565b34801561067c57600080fd5b50610494610fef565b34801561069157600080fd5b506104946106a03660046128a9565b6110c5565b3480156106b157600080fd5b506104646106c036600461280f565b600f6020526000908152604090205460ff1681565b3480156106e157600080fd5b50601f5461046490610100900460ff1681565b34801561070057600080fd5b5061046461070f36600461280f565b6110fe565b34801561072057600080fd5b5061049461072f3660046128c2565b61110c565b34801561074057600080fd5b506103f460145481565b34801561075657600080fd5b506103f460135481565b34801561076c57600080fd5b506103f461077b36600461280f565b6001600160a01b03166000908152600a602052604090205490565b3480156107a257600080fd5b506104946107b13660046128f4565b61116a565b3480156107c257600080fd5b506103f460075481565b3480156107d857600080fd5b506104946107e73660046128a9565b6112b1565b3480156107f857600080fd5b506103f460085481565b34801561080e57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103fe565b34801561084057600080fd5b5061046461084f36600461280f565b600d6020526000908152604090205460ff1681565b34801561087057600080fd5b5060408051808201909152600a8152691514d552d0559055531560b21b6020820152610437565b3480156108a357600080fd5b506103f460115481565b3480156108b957600080fd5b506104946108c83660046128f4565b6112db565b3480156108d957600080fd5b50601a5461081c906001600160a01b031681565b3480156108f957600080fd5b506104646109083660046127b3565b61132b565b34801561091957600080fd5b50610494610928366004612929565b611338565b34801561093957600080fd5b5061049461094836600461280f565b61139a565b34801561095957600080fd5b506104946109683660046128a9565b6113e0565b34801561097957600080fd5b5061049461098836600461280f565b61140a565b34801561099957600080fd5b506104946109a836600461280f565b611450565b3480156109b957600080fd5b50601d5461081c906201000090046001600160a01b031681565b3480156109df57600080fd5b506104946109ee36600461294b565b6114a1565b3480156109ff57600080fd5b506103f4601b5481565b348015610a1557600080fd5b50610494610a243660046127f4565b611609565b348015610a3557600080fd5b5060185461081c906001600160a01b031681565b348015610a5557600080fd5b506103f460175481565b348015610a6b57600080fd5b50610494610a7a36600461280f565b611648565b348015610a8b57600080fd5b50610494610a9a3660046128a9565b61178d565b348015610aab57600080fd5b50601f546104649062010000900460ff1681565b348015610acb57600080fd5b506103f4610ada36600461294b565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610b1157600080fd5b50610464610b2036600461280f565b60106020526000908152604090205460ff1681565b348015610b4157600080fd5b50610494610b503660046127f4565b6117b7565b348015610b6157600080fd5b506103f4601c5481565b348015610b7757600080fd5b506103f460155481565b348015610b8d57600080fd5b50610494610b9c36600461280f565b6117ef565b348015610bad57600080fd5b50610494610bbc36600461280f565b61183a565b348015610bcd57600080fd5b50610494610bdc36600461280f565b6118d0565b348015610bed57600080fd5b5060195461081c906001600160a01b031681565b348015610c0d57600080fd5b50610494610c1c3660046128f4565b611917565b348015610c2d57600080fd5b50610464610c3c36600461280f565b611967565b348015610c4d57600080fd5b50601d546104649060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cb69086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610cf290612984565b60405180910390fd5b601d805460ff191682151590811790915560ff1615610d195743601b555b50565b610d2533611967565b610d415760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b8152600401610cf290612984565b610d98816119e4565b15610de55760405162461bcd60e51b815260206004820152601e60248201527f596f7520616c72656164792061646465642074686973206164647265737300006044820152606401610cf2565b602080546001810182556000919091527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610ee4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610ebf918490611a4d565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610eef848484611a87565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610f46906002546001600160a01b03166000908152600a6020526040902054610f409060065490611f52565b90611f52565b905090565b610f5433611967565b610f705760405162461bcd60e51b8152600401610cf2906129a4565b601f8054602193909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610faf33611967565b610fcb5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610cf290612984565b60005b602054811015610d195760006110636020838154811061103e5761103e6129c9565b60009182526020808320909101546001600160a01b03168252600a9052604090205490565b90506110b26020838154811061107b5761107b6129c9565b6000918252602090912001546015546001600160a01b03909116906064906110a390856129f5565b6110ad9190612a14565b611f94565b50806110bd81612a36565b91505061101c565b6110ce33611967565b6110ea5760405162461bcd60e51b8152600401610cf2906129a4565b620b71b081106110f957600080fd5b601e55565b6000610cc282600019610c5b565b61111533611967565b6111315760405162461bcd60e51b8152600401610cf2906129a4565b601184905560128390556013829055601481905561114f8484611985565b60168190556014546111619190611985565b60175550505050565b61117333611967565b61118f5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03821630148015906111b65750601a546001600160a01b03838116911614155b6111bf57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561125e57601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca96906044015b600060405180830381600087803b15801561124257600080fd5b505af1158015611256573d6000803e3d6000fd5b505050505050565b601d546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401611228565b5050565b6112ba33611967565b6112d65760405162461bcd60e51b8152600401610cf2906129a4565b600855565b6112e433611967565b6113005760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610ef2338484611a87565b61134133611967565b61135d5760405162461bcd60e51b8152600401610cf2906129a4565b601d546040516316a4744b60e11b81526004810184905260248101839052620100009091046001600160a01b031690632d48e89690604401611228565b6113a333611967565b6113bf5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6113e933611967565b6114055760405162461bcd60e51b8152600401610cf2906129a4565b601c55565b61141333611967565b61142f5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610cf290612984565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601d54610100900460ff166114b4575050565b60006001600160a01b03831630148015906114dd57506004546001600160a01b03848116911614155b80156114e95750823b15155b801561150d57506001600160a01b03821660009081526010602052604090205460ff165b6001600160a01b0384166000908152600f60205260408120549192509060ff168061155057506001600160a01b0383166000908152600f602052604090205460ff165b90508115801561155e575080155b6115955760405162461bcd60e51b8152602060048201526008602482015267185b9d1a48189bdd60c21b6044820152606401610cf2565b6001600160a01b03831660009081526010602052604090205460ff161561160357601c54601b546115c69190612a51565b43116116035760405162461bcd60e51b815260206004820152600c60248201526b73696c656e7420626c6f636b60a01b6044820152606401610cf2565b50505050565b61161233611967565b61162e5760405162461bcd60e51b8152600401610cf2906129a4565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146116725760405162461bcd60e51b8152600401610cf290612984565b60005b60205481101561174d57816001600160a01b03166020828154811061169c5761169c6129c9565b6000918252602090912001546001600160a01b0316141561173b57602080546116c790600190612a69565b815481106116d7576116d76129c9565b9060005260206000200160009054906101000a90046001600160a01b031660208281548110611708576117086129c9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061174d565b8061174581612a36565b915050611675565b60205481146112ad57602080548061176757611767612a80565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b61179633611967565b6117b25760405162461bcd60e51b8152600401610cf2906129a4565b600755565b6117c033611967565b6117dc5760405162461bcd60e51b8152600401610cf2906129a4565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146118195760405162461bcd60e51b8152600401610cf290612984565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146118645760405162461bcd60e51b8152600401610cf290612984565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6118d933611967565b6118f55760405162461bcd60e51b8152600401610cf2906129a4565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b61192033611967565b61193c5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000806119928385612a51565b905083811015610ef25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610cf2565b600080805b602054811015611a4657836001600160a01b031660208281548110611a1057611a106129c9565b6000918252602090912001546001600160a01b03161415611a345760019150611a46565b80611a3e81612a36565b9150506119e9565b5092915050565b60008184841115611a715760405162461bcd60e51b8152600401610cf2919061276b565b506000611a7e8486612a69565b95945050505050565b6001600160a01b0383166000908152600a6020526040812054611aa957600080fd5b611ab384846114a1565b601f5460ff1615611ad057611ac984848461208d565b9050610ef2565b6001600160a01b03841660009081526001602052604090205460ff16158015611b1257506001600160a01b03831660009081526001602052604090205460ff16155b15611b6057601d5460ff16611b605760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610cf2565b60075482111580611b8957506001600160a01b0384166000908152600d602052604090205460ff165b611bc95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610cf2565b601a546001600160a01b03163314801590611be75750601f5460ff16155b8015611bfa5750601f54610100900460ff165b8015611c175750602154306000908152600a602052604090205410155b15611c2457611c24612161565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a9091529190912054611c76918490611a4d565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611cb4575060095460ff165b15611cea576008546001600160a01b0384166000908152600a6020526040902054611cdf9084611985565b1115611cea57600080fd5b6001600160a01b0384166000908152600c602052604081205460ff16158015611d2c57506001600160a01b0384166000908152600c602052604090205460ff16155b611d365782611d41565b611d418585856124d1565b6001600160a01b0385166000908152600a6020526040902054909150611d679082611985565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff16611e1157601d546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611dfe57600080fd5b505af1925050508015611e0f575060015b505b6001600160a01b0384166000908152600e602052604090205460ff16611ea857601d546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611e9557600080fd5b505af1925050508015611ea6575060015b505b601d54601e546040516001624d3b8760e01b031981526004810191909152620100009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b158015611efa57600080fd5b505af1925050508015611f0b575060015b50836001600160a01b0316856001600160a01b0316600080516020612b6f83398151915283604051611f3f91815260200190565b60405180910390a3506001949350505050565b6000610ef283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4d565b6001600160a01b038216611ff45760405162461bcd60e51b815260206004820152602160248201527f42455032303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610cf2565b61203181604051806060016040528060228152602001612b8f602291396001600160a01b0385166000908152600a60205260409020549190611a4d565b6001600160a01b0383166000908152600a60205260409020556006546120579082611f52565b6006556040518181526000906001600160a01b03841690600080516020612b6f8339815191529060200160405180910390a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120de918490611a4d565b6001600160a01b038086166000908152600a6020526040808220939093559085168152205461210d9083611985565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612b6f8339815191529061214f9086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055306000908152600a60205260408120546016546011549192916121a29160029161219c919082908790612582565b90612601565b905060006121b08383611f52565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121ea576121ea6129c9565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190612a96565b8160018151811061227a5761227a6129c9565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815291169063791ac947906122c0908590600090869030904290600401612ab3565b600060405180830381600087803b1580156122da57600080fd5b505af11580156122ee573d6000803e3d6000fd5b50506011544792506000915061231290612309906002612601565b60165490611f52565b90506000612334600261219c8461219c6011548861258290919063ffffffff16565b905060006123518361219c6012548761258290919063ffffffff16565b9050600061236383610f408785611f52565b9050601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123b557600080fd5b505af1935050505080156123c7575060015b5087156124a05760195460185460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561243e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124639190612b24565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b80156124bc576005546124bc906001600160a01b031682612643565b5050601f805460ff1916905550505050505050565b601a5460009081906001600160a01b038581169116146124f3576016546124f7565b6017545b9050600061250a606461219c8685612582565b306000908152600a60205260409020549091506125279082611985565b306000818152600a6020526040908190209290925590516001600160a01b03881690600080516020612b6f833981519152906125669085815260200190565b60405180910390a36125788482611f52565b9695505050505050565b60008261259157506000610cc2565b600061259d83856129f5565b9050826125aa8583612a14565b14610ef25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610cf2565b6000610ef283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612711565b604080516000808252602082019092526001600160a01b03841690839060405161266d9190612b52565b60006040518083038185875af1925050503d80600081146126aa576040519150601f19603f3d011682016040523d82523d6000602084013e6126af565b606091505b505090508061270c5760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610cf2565b505050565b600081836127325760405162461bcd60e51b8152600401610cf2919061276b565b506000611a7e8486612a14565b60005b8381101561275a578181015183820152602001612742565b838111156116035750506000910152565b602081526000825180602084015261278a81604085016020870161273f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610d1957600080fd5b600080604083850312156127c657600080fd5b82356127d18161279e565b946020939093013593505050565b803580151581146127ef57600080fd5b919050565b60006020828403121561280657600080fd5b610ef2826127df565b60006020828403121561282157600080fd5b8135610ef28161279e565b60008060006060848603121561284157600080fd5b833561284c8161279e565b9250602084013561285c8161279e565b929592945050506040919091013590565b60008060006060848603121561288257600080fd5b61288b846127df565b9250602084013591506128a0604085016127df565b90509250925092565b6000602082840312156128bb57600080fd5b5035919050565b600080600080608085870312156128d857600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561290757600080fd5b82356129128161279e565b9150612920602084016127df565b90509250929050565b6000806040838503121561293c57600080fd5b50508035926020909101359150565b6000806040838503121561295e57600080fd5b82356129698161279e565b915060208301356129798161279e565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612a0f57612a0f6129df565b500290565b600082612a3157634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415612a4a57612a4a6129df565b5060010190565b60008219821115612a6457612a646129df565b500190565b600082821015612a7b57612a7b6129df565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612aa857600080fd5b8151610ef28161279e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b035784516001600160a01b031683529383019391830191600101612ade565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b3957600080fd5b8351925060208401519150604084015190509250925092565b60008251612b6481846020870161273f565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220bb7fa7de3fd4f6a79b823a3267657852aadb4485f651af34ebdc89793bf635cd64736f6c634300080a00336080604052600280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556003805490911673c5fb36dd2fb59d3b98deff88425a3f425ee469ed1790556ec097ce7bc90715b34b9f1000000000600c55610258600d55670de0b6b3a7640000600e5534801561007d57600080fd5b506040516110e33803806110e383398101604081905261009c916100ed565b6001600160a01b0381166100bb576002546001600160a01b03166100bd565b805b600180546001600160a01b03929092166001600160a01b031992831617905560008054909116331790555061011d565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b610fb78061012c6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600c5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610d19565b610285565b005b34801561013957600080fd5b506100f8610148366004610d45565b6103fd565b34801561015957600080fd5b5061012b610168366004610d62565b610486565b34801561017957600080fd5b506100f860085481565b34801561018f57600080fd5b506100f8600e5481565b3480156101a557600080fd5b506100f860095481565b3480156101bb57600080fd5b506101eb6101ca366004610d45565b60076020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104a8565b34801561021a57600080fd5b506100f8600b5481565b34801561023057600080fd5b506100f8600a5481565b34801561024657600080fd5b5061012b610738565b34801561025b57600080fd5b5061012b61026a366004610d84565b61079d565b34801561027b57600080fd5b506100f8600d5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260076020526040902054156102c3576102c38261089e565b6000811180156102e957506001600160a01b038216600090815260076020526040902054155b1561034f57600480546001600160a01b0384166000818152600560205260408120839055600183018455929092527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526007602052604090205415155b1561038257610382826109ba565b6001600160a01b0382166000908152600760205260409020546008546103b39183916103ad91610acf565b90610b1a565b6008556001600160a01b03821660009081526007602052604090208190556103da81610b79565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461042257506000919050565b6001600160a01b03821660009081526007602052604081205461044490610b79565b6001600160a01b038416600090815260076020526040902060010154909150808211610474575060009392505050565b61047e8282610acf565b949350505050565b6000546001600160a01b0316331461049d57600080fd5b600d91909155600e55565b6000546001600160a01b031633146104bf57600080fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052c9190610d9d565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bf9190610db6565b816000815181106105d2576105d2610dd3565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061060357610603610dd3565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de9590349061064990600090869030904290600401610de9565b6000604051808303818588803b15801561066257600080fd5b505af1158015610676573d6000803e3d6000fd5b50506003546040516370a0823160e01b8152306004820152600094506106f693508692506001600160a01b03909116906370a0823190602401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190610d9d565b90610acf565b6009549091506107069082610b1a565b600955600854600c5461073091610727916107219085610b96565b90610c15565b600b5490610b1a565b600b55505050565b61074133610c57565b6107925760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f20776169742100000000000000000060448201526064015b60405180910390fd5b61079b3361089e565b565b6000546001600160a01b031633146107b457600080fd5b600454806107c0575050565b60008060005a90505b84821080156107d757508383105b156108965783600f54106107eb576000600f555b61081d6004600f548154811061080357610803610dd3565b6000918252602090912001546001600160a01b0316610c57565b15610854576108546004600f548154811061083a5761083a610dd3565b6000918252602090912001546001600160a01b031661089e565b6108696108625a8390610acf565b8390610b1a565b91505a600f8054919250600061087e83610e69565b9190505550828061088e90610e69565b9350506107c9565b505050505b50565b6001600160a01b0381166000908152600760205260409020546108be5750565b60006108c9826103fd565b905080156109b657600a546108de9082610b1a565b600a5560035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190610e84565b506001600160a01b0382166000908152600660209081526040808320429055600790915290206002015461098c9082610b1a565b6001600160a01b03831660009081526007602052604090206002810191909155546103da90610b79565b5050565b600480546109ca90600190610ea6565b815481106109da576109da610dd3565b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a1857610a18610dd3565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260059182905260408120546004805491939291610a6490600190610ea6565b81548110610a7457610a74610dd3565b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aaa57610aaa610ebd565b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c9c565b90505b92915050565b600080610b278385610ed3565b905083811015610b115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610789565b6000610b14600c54610721600b5485610b9690919063ffffffff16565b600082610ba557506000610b14565b6000610bb18385610eeb565b905082610bbe8583610f0a565b14610b115760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610789565b6000610b1183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cd6565b600d546001600160a01b03821660009081526006602052604081205490914291610c819190610ed3565b108015610b145750600e54610c95836103fd565b1192915050565b60008184841115610cc05760405162461bcd60e51b81526004016107899190610f2c565b506000610ccd8486610ea6565b95945050505050565b60008183610cf75760405162461bcd60e51b81526004016107899190610f2c565b506000610ccd8486610f0a565b6001600160a01b038116811461089b57600080fd5b60008060408385031215610d2c57600080fd5b8235610d3781610d04565b946020939093013593505050565b600060208284031215610d5757600080fd5b8135610b1181610d04565b60008060408385031215610d7557600080fd5b50508035926020909101359150565b600060208284031215610d9657600080fd5b5035919050565b600060208284031215610daf57600080fd5b5051919050565b600060208284031215610dc857600080fd5b8151610b1181610d04565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e335784516001600160a01b031683529383019391830191600101610e0e565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b6000600019821415610e7d57610e7d610e53565b5060010190565b600060208284031215610e9657600080fd5b81518015158114610b1157600080fd5b600082821015610eb857610eb8610e53565b500390565b634e487b7160e01b600052603160045260246000fd5b60008219821115610ee657610ee6610e53565b500190565b6000816000190483118215151615610f0557610f05610e53565b500290565b600082610f2757634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610f5957858101830151858201604001528201610f3d565b81811115610f6b576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212203e4af6db639dc8fee256b0474def0e6b425a33823889d833f4529297929dc8c264736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106103d25760003560e01c8063893d20e8116101fd578063ca33e64c11610118578063eac0fc5c116100ab578063f79641351161007a578063f796413514610bc1578063f887ea4014610be1578063fabe628314610c01578063fe9fbb8014610c21578063ffb54a9914610c4157600080fd5b8063eac0fc5c14610b55578063f01f20df14610b6b578063f0b37c0414610b81578063f2fde38b14610ba157600080fd5b8063da00097d116100e7578063da00097d14610a9f578063dd62ed3e14610abf578063e5c85a6a14610b05578063e66b1d1e14610b3557600080fd5b8063ca33e64c14610a29578063ca987b0e14610a49578063d6f5e63914610a5f578063d920334e14610a7f57600080fd5b8063ad9ee39111610190578063bad3ea6a1161015f578063bad3ea6a146109ad578063be816ffc146109d3578063bf56b371146109f3578063c2c7c03a14610a0957600080fd5b8063ad9ee3911461092d578063b408d4891461094d578063b51368231461096d578063b6a5d7de1461098d57600080fd5b8063a3a2e89e116101cc578063a3a2e89e146108ad578063a8aa1b31146108cd578063a9059cbb146108ed578063a9f7864b1461090d57600080fd5b8063893d20e8146108025780638b42507f1461083457806395d89b411461086457806398118cb41461089757600080fd5b80634355855a116102ed578063650c422611610280578063773fcb5c1161024f578063773fcb5c146107965780637d1db4a5146107b65780637db1342c146107cc578063807c2d9c146107ec57600080fd5b8063650c42261461071457806369cf17d4146107345780636b67c4df1461074a57806370a082311461076057600080fd5b8063479f66d8116102bc578063479f66d8146106855780634838d165146106a55780634a74bb02146106d5578063571ac8b0146106f457600080fd5b80634355855a14610606578063436b1e641461063657806344de2e4c1461065657806344df8e701461067057600080fd5b80631e7b6f47116103655780632f54bf6e116103345780632f54bf6e1461056b578063313ce5671461059a57806334c70889146105b65780633f4218e0146105d657600080fd5b80631e7b6f471461050057806323b872dd146105205780632b112e49146105405780632bb14e1d1461055557600080fd5b80630ecb93c0116103a15780630ecb93c01461049657806318160ddd146104b65780631c56ca7a146104cb5780631df4ccfc146104ea57600080fd5b80630445b667146103de57806306fdde0314610407578063095ea7b3146104445780630d2959801461047457600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f460215481565b6040519081526020015b60405180910390f35b34801561041357600080fd5b5060408051808201909152600b81526a151cdd5ad84815985d5b1d60aa1b60208201525b6040516103fe919061276b565b34801561045057600080fd5b5061046461045f3660046127b3565b610c5b565b60405190151581526020016103fe565b34801561048057600080fd5b5061049461048f3660046127f4565b610cc8565b005b3480156104a257600080fd5b506104946104b136600461280f565b610d1c565b3480156104c257600080fd5b506006546103f4565b3480156104d757600080fd5b50601d5461046490610100900460ff1681565b3480156104f657600080fd5b506103f460165481565b34801561050c57600080fd5b5061049461051b36600461280f565b610d65565b34801561052c57600080fd5b5061046461053b36600461282c565b610e37565b34801561054c57600080fd5b506103f4610ef9565b34801561056157600080fd5b506103f460125481565b34801561057757600080fd5b5061046461058636600461280f565b6000546001600160a01b0391821691161490565b3480156105a657600080fd5b50604051601281526020016103fe565b3480156105c257600080fd5b506104946105d136600461286d565b610f4b565b3480156105e257600080fd5b506104646105f136600461280f565b600c6020526000908152604090205460ff1681565b34801561061257600080fd5b5061046461062136600461280f565b600e6020526000908152604090205460ff1681565b34801561064257600080fd5b5061049461065136600461280f565b610fa6565b34801561066257600080fd5b506009546104649060ff1681565b34801561067c57600080fd5b50610494610fef565b34801561069157600080fd5b506104946106a03660046128a9565b6110c5565b3480156106b157600080fd5b506104646106c036600461280f565b600f6020526000908152604090205460ff1681565b3480156106e157600080fd5b50601f5461046490610100900460ff1681565b34801561070057600080fd5b5061046461070f36600461280f565b6110fe565b34801561072057600080fd5b5061049461072f3660046128c2565b61110c565b34801561074057600080fd5b506103f460145481565b34801561075657600080fd5b506103f460135481565b34801561076c57600080fd5b506103f461077b36600461280f565b6001600160a01b03166000908152600a602052604090205490565b3480156107a257600080fd5b506104946107b13660046128f4565b61116a565b3480156107c257600080fd5b506103f460075481565b3480156107d857600080fd5b506104946107e73660046128a9565b6112b1565b3480156107f857600080fd5b506103f460085481565b34801561080e57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103fe565b34801561084057600080fd5b5061046461084f36600461280f565b600d6020526000908152604090205460ff1681565b34801561087057600080fd5b5060408051808201909152600a8152691514d552d0559055531560b21b6020820152610437565b3480156108a357600080fd5b506103f460115481565b3480156108b957600080fd5b506104946108c83660046128f4565b6112db565b3480156108d957600080fd5b50601a5461081c906001600160a01b031681565b3480156108f957600080fd5b506104646109083660046127b3565b61132b565b34801561091957600080fd5b50610494610928366004612929565b611338565b34801561093957600080fd5b5061049461094836600461280f565b61139a565b34801561095957600080fd5b506104946109683660046128a9565b6113e0565b34801561097957600080fd5b5061049461098836600461280f565b61140a565b34801561099957600080fd5b506104946109a836600461280f565b611450565b3480156109b957600080fd5b50601d5461081c906201000090046001600160a01b031681565b3480156109df57600080fd5b506104946109ee36600461294b565b6114a1565b3480156109ff57600080fd5b506103f4601b5481565b348015610a1557600080fd5b50610494610a243660046127f4565b611609565b348015610a3557600080fd5b5060185461081c906001600160a01b031681565b348015610a5557600080fd5b506103f460175481565b348015610a6b57600080fd5b50610494610a7a36600461280f565b611648565b348015610a8b57600080fd5b50610494610a9a3660046128a9565b61178d565b348015610aab57600080fd5b50601f546104649062010000900460ff1681565b348015610acb57600080fd5b506103f4610ada36600461294b565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b348015610b1157600080fd5b50610464610b2036600461280f565b60106020526000908152604090205460ff1681565b348015610b4157600080fd5b50610494610b503660046127f4565b6117b7565b348015610b6157600080fd5b506103f4601c5481565b348015610b7757600080fd5b506103f460155481565b348015610b8d57600080fd5b50610494610b9c36600461280f565b6117ef565b348015610bad57600080fd5b50610494610bbc36600461280f565b61183a565b348015610bcd57600080fd5b50610494610bdc36600461280f565b6118d0565b348015610bed57600080fd5b5060195461081c906001600160a01b031681565b348015610c0d57600080fd5b50610494610c1c3660046128f4565b611917565b348015610c2d57600080fd5b50610464610c3c36600461280f565b611967565b348015610c4d57600080fd5b50601d546104649060ff1681565b336000818152600b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cb69086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610cf290612984565b60405180910390fd5b601d805460ff191682151590811790915560ff1615610d195743601b555b50565b610d2533611967565b610d415760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610d8f5760405162461bcd60e51b8152600401610cf290612984565b610d98816119e4565b15610de55760405162461bcd60e51b815260206004820152601e60248201527f596f7520616c72656164792061646465642074686973206164647265737300006044820152606401610cf2565b602080546001810182556000919091527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb0180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205460001914610ee4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600b82528381203382529091529190912054610ebf918490611a4d565b6001600160a01b0385166000908152600b602090815260408083203384529091529020555b610eef848484611a87565b90505b9392505050565b6003546001600160a01b03166000908152600a6020526040812054610f46906002546001600160a01b03166000908152600a6020526040902054610f409060065490611f52565b90611f52565b905090565b610f5433611967565b610f705760405162461bcd60e51b8152600401610cf2906129a4565b601f8054602193909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610faf33611967565b610fcb5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b031633146110195760405162461bcd60e51b8152600401610cf290612984565b60005b602054811015610d195760006110636020838154811061103e5761103e6129c9565b60009182526020808320909101546001600160a01b03168252600a9052604090205490565b90506110b26020838154811061107b5761107b6129c9565b6000918252602090912001546015546001600160a01b03909116906064906110a390856129f5565b6110ad9190612a14565b611f94565b50806110bd81612a36565b91505061101c565b6110ce33611967565b6110ea5760405162461bcd60e51b8152600401610cf2906129a4565b620b71b081106110f957600080fd5b601e55565b6000610cc282600019610c5b565b61111533611967565b6111315760405162461bcd60e51b8152600401610cf2906129a4565b601184905560128390556013829055601481905561114f8484611985565b60168190556014546111619190611985565b60175550505050565b61117333611967565b61118f5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03821630148015906111b65750601a546001600160a01b03838116911614155b6111bf57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff1916821580159190911790915561125e57601d54604051630a5b654b60e11b81526001600160a01b0384811660048301526000602483015262010000909204909116906314b6ca96906044015b600060405180830381600087803b15801561124257600080fd5b505af1158015611256573d6000803e3d6000fd5b505050505050565b601d546001600160a01b038381166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401611228565b5050565b6112ba33611967565b6112d65760405162461bcd60e51b8152600401610cf2906129a4565b600855565b6112e433611967565b6113005760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000610ef2338484611a87565b61134133611967565b61135d5760405162461bcd60e51b8152600401610cf2906129a4565b601d546040516316a4744b60e11b81526004810184905260248101839052620100009091046001600160a01b031690632d48e89690604401611228565b6113a333611967565b6113bf5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6113e933611967565b6114055760405162461bcd60e51b8152600401610cf2906129a4565b601c55565b61141333611967565b61142f5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610cf290612984565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601d54610100900460ff166114b4575050565b60006001600160a01b03831630148015906114dd57506004546001600160a01b03848116911614155b80156114e95750823b15155b801561150d57506001600160a01b03821660009081526010602052604090205460ff165b6001600160a01b0384166000908152600f60205260408120549192509060ff168061155057506001600160a01b0383166000908152600f602052604090205460ff165b90508115801561155e575080155b6115955760405162461bcd60e51b8152602060048201526008602482015267185b9d1a48189bdd60c21b6044820152606401610cf2565b6001600160a01b03831660009081526010602052604090205460ff161561160357601c54601b546115c69190612a51565b43116116035760405162461bcd60e51b815260206004820152600c60248201526b73696c656e7420626c6f636b60a01b6044820152606401610cf2565b50505050565b61161233611967565b61162e5760405162461bcd60e51b8152600401610cf2906129a4565b601d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146116725760405162461bcd60e51b8152600401610cf290612984565b60005b60205481101561174d57816001600160a01b03166020828154811061169c5761169c6129c9565b6000918252602090912001546001600160a01b0316141561173b57602080546116c790600190612a69565b815481106116d7576116d76129c9565b9060005260206000200160009054906101000a90046001600160a01b031660208281548110611708576117086129c9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061174d565b8061174581612a36565b915050611675565b60205481146112ad57602080548061176757611767612a80565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b61179633611967565b6117b25760405162461bcd60e51b8152600401610cf2906129a4565b600755565b6117c033611967565b6117dc5760405162461bcd60e51b8152600401610cf2906129a4565b6009805460ff1916911515919091179055565b6000546001600160a01b031633146118195760405162461bcd60e51b8152600401610cf290612984565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146118645760405162461bcd60e51b8152600401610cf290612984565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6118d933611967565b6118f55760405162461bcd60e51b8152600401610cf2906129a4565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b61192033611967565b61193c5760405162461bcd60e51b8152600401610cf2906129a4565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000806119928385612a51565b905083811015610ef25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610cf2565b600080805b602054811015611a4657836001600160a01b031660208281548110611a1057611a106129c9565b6000918252602090912001546001600160a01b03161415611a345760019150611a46565b80611a3e81612a36565b9150506119e9565b5092915050565b60008184841115611a715760405162461bcd60e51b8152600401610cf2919061276b565b506000611a7e8486612a69565b95945050505050565b6001600160a01b0383166000908152600a6020526040812054611aa957600080fd5b611ab384846114a1565b601f5460ff1615611ad057611ac984848461208d565b9050610ef2565b6001600160a01b03841660009081526001602052604090205460ff16158015611b1257506001600160a01b03831660009081526001602052604090205460ff16155b15611b6057601d5460ff16611b605760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610cf2565b60075482111580611b8957506001600160a01b0384166000908152600d602052604090205460ff165b611bc95760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610cf2565b601a546001600160a01b03163314801590611be75750601f5460ff16155b8015611bfa5750601f54610100900460ff165b8015611c175750602154306000908152600a602052604090205410155b15611c2457611c24612161565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600a9091529190912054611c76918490611a4d565b6001600160a01b038086166000908152600a60209081526040808320949094559186168152600d909152205460ff16158015611cb4575060095460ff165b15611cea576008546001600160a01b0384166000908152600a6020526040902054611cdf9084611985565b1115611cea57600080fd5b6001600160a01b0384166000908152600c602052604081205460ff16158015611d2c57506001600160a01b0384166000908152600c602052604090205460ff16155b611d365782611d41565b611d418585856124d1565b6001600160a01b0385166000908152600a6020526040902054909150611d679082611985565b6001600160a01b038086166000908152600a60209081526040808320949094559188168152600e909152205460ff16611e1157601d546001600160a01b038681166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611dfe57600080fd5b505af1925050508015611e0f575060015b505b6001600160a01b0384166000908152600e602052604090205460ff16611ea857601d546001600160a01b038581166000818152600a602052604090819020549051630a5b654b60e11b8152600481019290925260248201526201000090920416906314b6ca9690604401600060405180830381600087803b158015611e9557600080fd5b505af1925050508015611ea6575060015b505b601d54601e546040516001624d3b8760e01b031981526004810191909152620100009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b158015611efa57600080fd5b505af1925050508015611f0b575060015b50836001600160a01b0316856001600160a01b0316600080516020612b6f83398151915283604051611f3f91815260200190565b60405180910390a3506001949350505050565b6000610ef283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a4d565b6001600160a01b038216611ff45760405162461bcd60e51b815260206004820152602160248201527f42455032303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610cf2565b61203181604051806060016040528060228152602001612b8f602291396001600160a01b0385166000908152600a60205260409020549190611a4d565b6001600160a01b0383166000908152600a60205260409020556006546120579082611f52565b6006556040518181526000906001600160a01b03841690600080516020612b6f8339815191529060200160405180910390a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600a909152918220546120de918490611a4d565b6001600160a01b038086166000908152600a6020526040808220939093559085168152205461210d9083611985565b6001600160a01b038085166000818152600a60205260409081902093909355915190861690600080516020612b6f8339815191529061214f9086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055306000908152600a60205260408120546016546011549192916121a29160029161219c919082908790612582565b90612601565b905060006121b08383611f52565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106121ea576121ea6129c9565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190612a96565b8160018151811061227a5761227a6129c9565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b815291169063791ac947906122c0908590600090869030904290600401612ab3565b600060405180830381600087803b1580156122da57600080fd5b505af11580156122ee573d6000803e3d6000fd5b50506011544792506000915061231290612309906002612601565b60165490611f52565b90506000612334600261219c8461219c6011548861258290919063ffffffff16565b905060006123518361219c6012548761258290919063ffffffff16565b9050600061236383610f408785611f52565b9050601d60029054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123b557600080fd5b505af1935050505080156123c7575060015b5087156124a05760195460185460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561243e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124639190612b24565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b80156124bc576005546124bc906001600160a01b031682612643565b5050601f805460ff1916905550505050505050565b601a5460009081906001600160a01b038581169116146124f3576016546124f7565b6017545b9050600061250a606461219c8685612582565b306000908152600a60205260409020549091506125279082611985565b306000818152600a6020526040908190209290925590516001600160a01b03881690600080516020612b6f833981519152906125669085815260200190565b60405180910390a36125788482611f52565b9695505050505050565b60008261259157506000610cc2565b600061259d83856129f5565b9050826125aa8583612a14565b14610ef25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610cf2565b6000610ef283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612711565b604080516000808252602082019092526001600160a01b03841690839060405161266d9190612b52565b60006040518083038185875af1925050503d80600081146126aa576040519150601f19603f3d011682016040523d82523d6000602084013e6126af565b606091505b505090508061270c5760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201526213115160ea1b6064820152608401610cf2565b505050565b600081836127325760405162461bcd60e51b8152600401610cf2919061276b565b506000611a7e8486612a14565b60005b8381101561275a578181015183820152602001612742565b838111156116035750506000910152565b602081526000825180602084015261278a81604085016020870161273f565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610d1957600080fd5b600080604083850312156127c657600080fd5b82356127d18161279e565b946020939093013593505050565b803580151581146127ef57600080fd5b919050565b60006020828403121561280657600080fd5b610ef2826127df565b60006020828403121561282157600080fd5b8135610ef28161279e565b60008060006060848603121561284157600080fd5b833561284c8161279e565b9250602084013561285c8161279e565b929592945050506040919091013590565b60008060006060848603121561288257600080fd5b61288b846127df565b9250602084013591506128a0604085016127df565b90509250925092565b6000602082840312156128bb57600080fd5b5035919050565b600080600080608085870312156128d857600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561290757600080fd5b82356129128161279e565b9150612920602084016127df565b90509250929050565b6000806040838503121561293c57600080fd5b50508035926020909101359150565b6000806040838503121561295e57600080fd5b82356129698161279e565b915060208301356129798161279e565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612a0f57612a0f6129df565b500290565b600082612a3157634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415612a4a57612a4a6129df565b5060010190565b60008219821115612a6457612a646129df565b500190565b600082821015612a7b57612a7b6129df565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215612aa857600080fd5b8151610ef28161279e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b035784516001600160a01b031683529383019391830191600101612ade565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612b3957600080fd5b8351925060208401519150604084015190509250925092565b60008251612b6481846020870161273f565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220bb7fa7de3fd4f6a79b823a3267657852aadb4485f651af34ebdc89793bf635cd64736f6c634300080a0033
Deployed Bytecode Sourcemap
13275:14361:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15214:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15214:54:0;;;;;;;;17437:80;;;;;;;;;;-1:-1:-1;17509:5:0;;;;;;;;;;;;-1:-1:-1;;;17509:5:0;;;;17437:80;;;;;;;:::i;18945:216::-;;;;;;;;;;-1:-1:-1;18945:216:0;;;;;:::i;:::-;;:::i;:::-;;;1468:14:1;;1461:22;1443:41;;1431:2;1416:18;18945:216:0;1303:187:1;25839:154:0;;;;;;;;;;-1:-1:-1;25839:154:0;;;;;:::i;:::-;;:::i;:::-;;21694:93;;;;;;;;;;-1:-1:-1;21694:93:0;;;;;:::i;:::-;;:::i;17699:88::-;;;;;;;;;;-1:-1:-1;17772:12:0;;17699:88;;14911:30;;;;;;;;;;-1:-1:-1;14911:30:0;;;;;;;;;;;14596:27;;;;;;;;;;;;;;;;16825:185;;;;;;;;;;-1:-1:-1;16825:185:0;;;;;:::i;:::-;;:::i;23047:371::-;;;;;;;;;;-1:-1:-1;23047:371:0;;;;;:::i;:::-;;:::i;18543:142::-;;;;;;;;;;;;;:::i;14413:29::-;;;;;;;;;;;;;;;;12645:103;;;;;;;;;;-1:-1:-1;12645:103:0;;;;;:::i;:::-;12700:4;12735:5;-1:-1:-1;;;;;12724:16:0;;;12735:5;;12724:16;;12645:103;17613:80;;;;;;;;;;-1:-1:-1;17613:80:0;;13475:2;2700:36:1;;2688:2;2673:18;17613:80:0;2558:184:1;20849:276:0;;;;;;;;;;-1:-1:-1;20849:276:0;;;;;:::i;:::-;;:::i;14109:44::-;;;;;;;;;;-1:-1:-1;14109:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14215:49;;;;;;;;;;-1:-1:-1;14215:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21486:97;;;;;;;;;;-1:-1:-1;21486:97:0;;;;;:::i;:::-;;:::i;13952:33::-;;;;;;;;;;-1:-1:-1;13952:33:0;;;;;;;;18235:300;;;;;;;;;;;;;:::i;21341:139::-;;;;;;;;;;-1:-1:-1;21341:139:0;;;;;:::i;:::-;;:::i;14274:42::-;;;;;;;;;;-1:-1:-1;14274:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15071:40;;;;;;;;;;-1:-1:-1;15071:40:0;;;;;;;;;;;19169:115;;;;;;;;;;-1:-1:-1;19169:115:0;;;;;:::i;:::-;;:::i;20291:401::-;;;;;;;;;;-1:-1:-1;20291:401:0;;;;;:::i;:::-;;:::i;14514:33::-;;;;;;;;;;;;;;;;14446:31;;;;;;;;;;;;;;;;18693:105;;;;;;;;;;-1:-1:-1;18693:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;18777:18:0;18759:7;18777:18;;;:9;:18;;;;;;;18693:105;19907:376;;;;;;;;;;-1:-1:-1;19907:376:0;;;;;:::i;:::-;;:::i;13848:42::-;;;;;;;;;;;;;;;;19403:106;;;;;;;;;;-1:-1:-1;19403:106:0;;;;;:::i;:::-;;:::i;13898:40::-;;;;;;;;;;;;;;;;17793:78;;;;;;;;;;-1:-1:-1;17845:7:0;17863:5;-1:-1:-1;;;;;17863:5:0;17793:78;;;-1:-1:-1;;;;;4127:32:1;;;4109:51;;4097:2;4082:18;17793:78:0;3963:203:1;14160:48:0;;;;;;;;;;-1:-1:-1;14160:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17523:84;;;;;;;;;;-1:-1:-1;17597:7:0;;;;;;;;;;;;-1:-1:-1;;;17597:7:0;;;;17523:84;;14375:31;;;;;;;;;;;;;;;;19637:123;;;;;;;;;;-1:-1:-1;19637:123:0;;;;;:::i;:::-;;:::i;14770:19::-;;;;;;;;;;-1:-1:-1;14770:19:0;;;;-1:-1:-1;;;;;14770:19:0;;;22883:156;;;;;;;;;;-1:-1:-1;22883:156:0;;;;;:::i;:::-;;:::i;21133:200::-;;;;;;;;;;-1:-1:-1;21133:200:0;;;;;:::i;:::-;;:::i;21589:97::-;;;;;;;;;;-1:-1:-1;21589:97:0;;;;;:::i;:::-;;:::i;21891:106::-;;;;;;;;;;-1:-1:-1;21891:106:0;;;;;:::i;:::-;;:::i;21795:88::-;;;;;;;;;;-1:-1:-1;21795:88:0;;;;;:::i;:::-;;:::i;12318:94::-;;;;;;;;;;-1:-1:-1;12318:94:0;;;;;:::i;:::-;;:::i;14950:46::-;;;;;;;;;;-1:-1:-1;14950:46:0;;;;;;;-1:-1:-1;;;;;14950:46:0;;;22283:588;;;;;;;;;;-1:-1:-1;22283:588:0;;;;;:::i;:::-;;:::i;14798:25::-;;;;;;;;;;;;;;;;22181:94;;;;;;;;;;-1:-1:-1;22181:94:0;;;;;:::i;:::-;;:::i;14675:55::-;;;;;;;;;;-1:-1:-1;14675:55:0;;;;-1:-1:-1;;;;;14675:55:0;;;14630:36;;;;;;;;;;;;;;;;17016:413;;;;;;;;;;-1:-1:-1;17016:413:0;;;;;:::i;:::-;;:::i;19292:103::-;;;;;;;;;;-1:-1:-1;19292:103:0;;;;;:::i;:::-;;:::i;15118:45::-;;;;;;;;;;-1:-1:-1;15118:45:0;;;;;;;;;;;18804:133;;;;;;;;;;-1:-1:-1;18804:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;18906:19:0;;;18888:7;18906:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18804:133;14320:46;;;;;;;;;;-1:-1:-1;14320:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19517:108;;;;;;;;;;-1:-1:-1;19517:108:0;;;;;:::i;:::-;;:::i;14830:36::-;;;;;;;;;;;;;;;;14554:33;;;;;;;;;;;;;;;;12488:97;;;;;;;;;;-1:-1:-1;12488:97:0;;;;;:::i;:::-;;:::i;13045:173::-;;;;;;;;;;-1:-1:-1;13045:173:0;;;;;:::i;:::-;;:::i;20700:141::-;;;;;;;;;;-1:-1:-1;20700:141:0;;;;;:::i;:::-;;:::i;14739:24::-;;;;;;;;;;-1:-1:-1;14739:24:0;;;;-1:-1:-1;;;;;14739:24:0;;;19768:131;;;;;;;;;;-1:-1:-1;19768:131:0;;;;;:::i;:::-;;:::i;12819:107::-;;;;;;;;;;-1:-1:-1;12819:107:0;;;;;:::i;:::-;;:::i;14873:31::-;;;;;;;;;;-1:-1:-1;14873:31:0;;;;;;;;18945:216;19049:10;19020:4;19037:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19037:32:0;;;;;;;;;;:41;;;19094:37;19020:4;;19037:32;;19094:37;;;;19072:6;160:25:1;;148:2;133:18;;14:177;19094:37:0;;;;;;;;-1:-1:-1;19149:4:0;18945:216;;;;;:::o;25839:154::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;;;;;;;;;25906:11:::1;:23:::0;;-1:-1:-1;;25906:23:0::1;::::0;::::1;;::::0;;::::1;::::0;;;::::1;25937:11:::0;25934:52:::1;;;25968:12;25955:10;:25:::0;25934:52:::1;25839:154:::0;:::o;21694:93::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21760:14:0::1;;::::0;;;:9:::1;:14;::::0;;;;:19;;-1:-1:-1;;21760:19:0::1;21775:4;21760:19;::::0;;21694:93::o;16825:185::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;16904:23:::1;16919:7;16904:14;:23::i;:::-;16903:24;16895:67;;;::::0;-1:-1:-1;;;16895:67:0;;6415:2:1;16895:67:0::1;::::0;::::1;6397:21:1::0;6454:2;6434:18;;;6427:30;6493:32;6473:18;;;6466:60;6543:18;;16895:67:0::1;6213:354:1::0;16895:67:0::1;16973:15;:29:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16973:29:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;16973:29:0::1;-1:-1:-1::0;;;;;16973:29:0;;;::::1;::::0;;;::::1;::::0;;16825:185::o;23047:371::-;-1:-1:-1;;;;;23177:19:0;;23147:4;23177:19;;;:11;:19;;;;;;;;23197:10;23177:31;;;;;;;;-1:-1:-1;;23177:45:0;23174:179;;23272:69;;;;;;;;;;;-1:-1:-1;;;23272:69:0;;;;;;;;-1:-1:-1;;;;;23272:19:0;;-1:-1:-1;23272:19:0;;;:11;:19;;;;;23292:10;23272:31;;;;;;;;;;:69;;23308:6;;23272:35;:69::i;:::-;-1:-1:-1;;;;;23238:19:0;;;;;;:11;:19;;;;;;;;23258:10;23238:31;;;;;;;:103;23174:179;23370:40;23384:6;23392:9;23403:6;23370:13;:40::i;:::-;23363:47;;23047:371;;;;;;:::o;18543:142::-;18671:4;;-1:-1:-1;;;;;18671:4:0;18596:7;18777:18;;;:9;:18;;;;;;18623:54;;18650:4;;-1:-1:-1;;;;;18650:4:0;18759:7;18777:18;;;:9;:18;;;;;;18623:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18616:61;;18543:142;:::o;20849:276::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;20981:21:::1;:39:::0;;21031:13:::1;:32:::0;;;;21074:43;::::1;;::::0;::::1;-1:-1:-1::0;;20981:39:0;::::1;;;;21074:43:::0;;;;-1:-1:-1;;21074:43:0;;;;;;;;;;::::1;::::0;;20849:276::o;21486:97::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21553:18:0::1;;::::0;;;:13:::1;:18;::::0;;;;:25;;-1:-1:-1;;21553:25:0::1;21574:4;21553:25;::::0;;21486:97::o;18235:300::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;18279:13:::1;18307:221;18327:15;:22:::0;18319:30;::::1;18307:221;;;18375:22;18400:33;18410:15;18426:5;18410:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;18410:22:0::1;18777:18:::0;;:9;:18;;;;;;;18693:105;18400:33:::1;18375:58;;18448:68;18454:15;18470:5;18454:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;18495:14:::1;::::0;-1:-1:-1;;;;;18454:22:0;;::::1;::::0;18512:3:::1;::::0;18478:31:::1;::::0;:14;:31:::1;:::i;:::-;:37;;;;:::i;:::-;18448:5;:68::i;:::-;-1:-1:-1::0;18351:7:0;::::1;::::0;::::1;:::i;:::-;;;;18307:221;;21341:139:::0;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;21434:6:::1;21428:3;:12;21420:21;;;::::0;::::1;;21452:14;:20:::0;21341:139::o;19169:115::-;19224:4;19248:28;19256:7;-1:-1:-1;;19248:7:0;:28::i;20291:401::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;20429:12:::1;:24:::0;;;20464:10:::1;:25:::0;;;20494:12:::1;:28:::0;;;20533:14:::1;:32:::0;;;20597:28:::1;20444:9:::0;20477:12;20597:16:::1;:28::i;:::-;20586:8;:39:::0;;;20669:14:::1;::::0;20656:28:::1;::::0;20586:39;20656:12:::1;:28::i;:::-;20636:17;:48:::0;-1:-1:-1;;;;20291:401:0:o;19907:376::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20007:23:0;::::1;20025:4;20007:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;20044:4:0::1;::::0;-1:-1:-1;;;;;20034:14:0;;::::1;20044:4:::0;::::1;20034:14;;20007:41;19999:50;;;::::0;::::1;;-1:-1:-1::0;;;;;20060:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;20060:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;20114:162:::1;;20139:19;::::0;:39:::1;::::0;-1:-1:-1;;;20139:39:0;;-1:-1:-1;;;;;7571:32:1;;;20139:39:0::1;::::0;::::1;7553:51:1::0;20176:1:0::1;7620:18:1::0;;;7613:34;20139:19:0;;;::::1;::::0;;::::1;::::0;:28:::1;::::0;7526:18:1;;20139:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19907:376:::0;;:::o;20114:162::-:1;20209:19;::::0;-1:-1:-1;;;;;20246:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;20209:55;;-1:-1:-1;;;20209:55:0;;::::1;::::0;::::1;7553:51:1::0;;;;7620:18;;;7613:34;20209:19:0;;;::::1;;::::0;:28:::1;::::0;7526:18:1;;20209:55:0::1;7371:282:1::0;20114:162:0::1;19907:376:::0;;:::o;19403:106::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;19479:10:::1;:22:::0;19403:106::o;19637:123::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19724:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19724:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19637:123::o;22883:156::-;22963:4;22987:44;23001:10;23013:9;23024:6;22987:13;:44::i;21133:200::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;21249:19:::1;::::0;:76:::1;::::0;-1:-1:-1;;;21249:76:0;;::::1;::::0;::::1;8111:25:1::0;;;8152:18;;;8145:34;;;21249:19:0;;;::::1;-1:-1:-1::0;;;;;21249:19:0::1;::::0;:43:::1;::::0;8084:18:1;;21249:76:0::1;7937:248:1::0;21589:97:0;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21663:18:0::1;;::::0;;;:13:::1;:18;::::0;;;;21656:25;;-1:-1:-1;;21656:25:0::1;::::0;;21589:97::o;21891:106::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;21964:17:::1;:28:::0;21891:106::o;21795:88::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21864:14:0::1;;::::0;;;:9:::1;:14;::::0;;;;21857:21;;-1:-1:-1;;21857:21:0::1;::::0;;21795:88::o;12318:94::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12378:19:0::1;;::::0;;;12400:4:::1;12378:19;::::0;;;;;;;:26;;-1:-1:-1;;12378:26:0::1;::::0;;::::1;::::0;;12318:94::o;22283:588::-;22360:11;;;;;;;22356:49;;22283:588;;:::o;22356:49::-;22417:14;-1:-1:-1;;;;;22436:21:0;;22452:4;22436:21;;;;:47;;-1:-1:-1;22470:13:0;;-1:-1:-1;;;;;22461:22:0;;;22470:13;;22461:22;;22436:47;:69;;;;-1:-1:-1;22121:17:0;;22157:8;;22487:18;22434:101;;;;-1:-1:-1;;;;;;22511:24:0;;;;;;:13;:24;;;;;;;;22434:101;-1:-1:-1;;;;;22566:17:0;;22546;22566;;;:9;:17;;;;;;22417:118;;-1:-1:-1;22546:17:0;22566;;;:41;;-1:-1:-1;;;;;;22587:20:0;;;;;;:9;:20;;;;;;;;22566:41;22546:61;-1:-1:-1;22627:18:0;;;;:43;;-1:-1:-1;22649:21:0;;22627:43;22618:64;;;;-1:-1:-1;;;22618:64:0;;8392:2:1;22618:64:0;;;8374:21:1;8431:1;8411:18;;;8404:29;-1:-1:-1;;;8449:18:1;;;8442:38;8497:18;;22618:64:0;8190:331:1;22618:64:0;-1:-1:-1;;;;;22742:24:0;;;;;;:13;:24;;;;;;;;22739:125;;;22819:17;;22806:10;;:30;;;;:::i;:::-;22791:12;:45;22782:70;;;;-1:-1:-1;;;22782:70:0;;8861:2:1;22782:70:0;;;8843:21:1;8900:2;8880:18;;;8873:30;-1:-1:-1;;;8919:18:1;;;8912:42;8971:18;;22782:70:0;8659:336:1;22782:70:0;22345:526;;22283:588;;:::o;22181:94::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;22247:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;22247:20:0;;::::1;::::0;;;::::1;::::0;;22181:94::o;17016:413::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;17089:13:::1;17117:229;17137:15;:22:::0;17129:30;::::1;17117:229;;;17215:7;-1:-1:-1::0;;;;;17189:33:0::1;:15;17205:5;17189:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17189:22:0::1;:33;17185:150;;;17254:15;17270:22:::0;;:24:::1;::::0;17293:1:::1;::::0;17270:24:::1;:::i;:::-;17254:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;17254:41:0::1;17231:15;17247:5;17231:22;;;;;;;;:::i;:::-;;;;;;;;;:64;;;;;-1:-1:-1::0;;;;;17231:64:0::1;;;;;-1:-1:-1::0;;;;;17231:64:0::1;;;;;;17314:5;;17185:150;17161:7:::0;::::1;::::0;::::1;:::i;:::-;;;;17117:229;;;17366:15;:22:::0;17357:31;::::1;17354:71;;17395:15;:21;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17395:21:0;;;;;-1:-1:-1;;;;;;17395:21:0::1;::::0;;;;;17078:351:::1;17016:413:::0;:::o;19292:103::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;19364:12:::1;:23:::0;19292:103::o;19517:108::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;19592:14:::1;:25:::0;;-1:-1:-1;;19592:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19517:108::o;12488:97::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12550:19:0::1;12572:5;12550:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;12550:27:0::1;::::0;;12488:97::o;13045:173::-;12700:4;12735:5;-1:-1:-1;;;;;12735:5:0;12042:10;12724:16;12026:38;;;;-1:-1:-1;;;12026:38:0;;;;;;;:::i;:::-;13121:5:::1;:11:::0;;-1:-1:-1;;;;;;13121:11:0::1;-1:-1:-1::0;;;;;13121:11:0;::::1;::::0;;::::1;::::0;;13143:19;;;-1:-1:-1;13143:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;13143:26:0::1;::::0;;::::1;::::0;;;13185:25;;4109:51:1;;;13185:25:0::1;::::0;4082:18:1;13185:25:0::1;;;;;;;13045:173:::0;:::o;20700:141::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;20789:21:::1;:44:::0;;-1:-1:-1;;;;;;20789:44:0::1;-1:-1:-1::0;;;;;20789:44:0;;;::::1;::::0;;;::::1;::::0;;20700:141::o;19768:131::-;12203:24;12216:10;12203:12;:24::i;:::-;12195:48;;;;-1:-1:-1;;;12195:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19859:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19859:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19768:131::o;12819:107::-;-1:-1:-1;;;;;12899:19:0;12875:4;12899:19;;;:14;:19;;;;;;;;;12819:107::o;1944:179::-;2002:7;;2034:5;2038:1;2034;:5;:::i;:::-;2022:17;;2063:1;2058;:6;;2050:46;;;;-1:-1:-1;;;2050:46:0;;9680:2:1;2050:46:0;;;9662:21:1;9719:2;9699:18;;;9692:30;9758:29;9738:18;;;9731:57;9805:18;;2050:46:0;9478:351:1;16447:370:0;16509:4;;;16588:194;16608:15;:22;16600:30;;16588:194;;;16686:7;-1:-1:-1;;;;;16660:33:0;:15;16676:5;16660:22;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;16660:22:0;:33;16656:115;;;16727:4;16714:17;;16750:5;;16656:115;16632:7;;;;:::i;:::-;;;;16588:194;;;-1:-1:-1;16799:10:0;16447:370;-1:-1:-1;;16447:370:0:o;2275:190::-;2361:7;2397:12;2389:6;;;;2381:29;;;;-1:-1:-1;;;2381:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2421:9:0;2433:5;2437:1;2433;:5;:::i;:::-;2421:17;2275:190;-1:-1:-1;;;;;2275:190:0:o;23426:1616::-;-1:-1:-1;;;;;23537:17:0;;23518:4;23537:17;;;:9;:17;;;;;;23529:30;;;;;;23593:25;23601:6;23608:9;23593:7;:25::i;:::-;23642:16;;;;23639:73;;;23668:41;23683:6;23691:9;23702:6;23668:14;:41::i;:::-;23661:48;;;;23639:73;-1:-1:-1;;;;;23728:22:0;;;;;;:14;:22;;;;;;;;23727:23;:53;;;;-1:-1:-1;;;;;;23755:25:0;;;;;;:14;:25;;;;;;;;23754:26;23727:53;23724:128;;;23804:11;;;;23796:44;;;;-1:-1:-1;;;23796:44:0;;10036:2:1;23796:44:0;;;10018:21:1;10075:2;10055:18;;;10048:30;-1:-1:-1;;;10094:18:1;;;10087:50;10154:18;;23796:44:0;9834:344:1;23796:44:0;23882:12;;23872:6;:22;;:49;;;-1:-1:-1;;;;;;23898:23:0;;;;;;:15;:23;;;;;;;;23872:49;23864:79;;;;-1:-1:-1;;;23864:79:0;;10385:2:1;23864:79:0;;;10367:21:1;10424:2;10404:18;;;10397:30;-1:-1:-1;;;10443:18:1;;;10436:47;10500:18;;23864:79:0;10183:341:1;23864:79:0;23973:4;;-1:-1:-1;;;;;23973:4:0;23959:10;:18;;;;:39;;-1:-1:-1;23982:16:0;;;;23981:17;23959:39;:64;;;;-1:-1:-1;24002:21:0;;;;;;;23959:64;:109;;;;-1:-1:-1;24055:13:0;;24045:4;24027:24;;;;:9;:24;;;;;;:41;;23959:109;23956:128;;;24071:10;:8;:10::i;:::-;24143:53;;;;;;;;;;;-1:-1:-1;;;24143:53:0;;;;;;;;-1:-1:-1;;;;;24143:17:0;;-1:-1:-1;24143:17:0;;;:9;:17;;;;;;;;:53;;24165:6;;24143:21;:53::i;:::-;-1:-1:-1;;;;;24123:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;24221:26;;;;;:15;:26;;;;;;;24220:27;:45;;;;-1:-1:-1;24251:14:0;;;;24220:45;24217:141;;;24335:10;;-1:-1:-1;;;;;24299:20:0;;;;;;:9;:20;;;;;;:32;;24324:6;24299:24;:32::i;:::-;:46;;24291:55;;;;;;-1:-1:-1;;;;;24403:19:0;;24380;24403;;;:11;:19;;;;;;;;24402:20;:47;;;;-1:-1:-1;;;;;;24427:22:0;;;;;;:11;:22;;;;;;;;24426:23;24402:47;:93;;24489:6;24402:93;;;24452:34;24460:6;24468:9;24479:6;24452:7;:34::i;:::-;-1:-1:-1;;;;;24529:20:0;;;;;;:9;:20;;;;;;24380:115;;-1:-1:-1;24529:37:0;;24380:115;24529:24;:37::i;:::-;-1:-1:-1;;;;;24506:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;24612:24;;;;;:16;:24;;;;;;;24608:127;;24657:19;;-1:-1:-1;;;;;24694:17:0;;;;;;;:9;:17;;;;;;;;24657:55;;-1:-1:-1;;;24657:55:0;;;;;7553:51:1;;;;7620:18;;;7613:34;24657:19:0;;;;;;:28;;7526:18:1;;24657:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24653:71;;-1:-1:-1;;;;;24751:27:0;;;;;;:16;:27;;;;;;;;24747:137;;24799:19;;-1:-1:-1;;;;;24839:20:0;;;;;;;:9;:20;;;;;;;;24799:61;;-1:-1:-1;;;24799:61:0;;;;;7553:51:1;;;;7620:18;;;7613:34;24799:19:0;;;;;;:28;;7526:18:1;;24799:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24795:77;;24900:19;;24928:14;;24900:43;;-1:-1:-1;;;;;;24900:43:0;;;;;160:25:1;;;;24900:19:0;;;;-1:-1:-1;;;;;24900:19:0;;:27;;133:18:1;;24900:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24896:59;24989:9;-1:-1:-1;;;;;24972:40:0;24981:6;-1:-1:-1;;;;;24972:40:0;-1:-1:-1;;;;;;;;;;;25000:11:0;24972:40;;;;160:25:1;;148:2;133:18;;14:177;24972:40:0;;;;;;;;-1:-1:-1;25030:4:0;;23426:1616;-1:-1:-1;;;;23426:1616:0:o;2131:136::-;2189:7;2216:43;2220:1;2223;2216:43;;;;;;;;;;;;;;;;;:3;:43::i;17879:348::-;-1:-1:-1;;;;;17955:21:0;;17947:67;;;;-1:-1:-1;;;17947:67:0;;10731:2:1;17947:67:0;;;10713:21:1;10770:2;10750:18;;;10743:30;10809:34;10789:18;;;10782:62;-1:-1:-1;;;10860:18:1;;;10853:31;10901:19;;17947:67:0;10529:397:1;17947:67:0;18048:68;18071:6;18048:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18048:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;18027:18:0;;;;;;:9;:18;;;;;:89;18142:12;;:24;;18159:6;18142:16;:24::i;:::-;18127:12;:39;18182:37;;160:25:1;;;18208:1:0;;-1:-1:-1;;;;;18182:37:0;;;-1:-1:-1;;;;;;;;;;;18182:37:0;148:2:1;133:18;18182:37:0;;;;;;;17879:348;;:::o;25054:330::-;25184:53;;;;;;;;;;;-1:-1:-1;;;25184:53:0;;;;;;;;-1:-1:-1;;;;;25184:17:0;;25147:4;25184:17;;;:9;:17;;;;;;;:53;;25206:6;;25184:21;:53::i;:::-;-1:-1:-1;;;;;25164:17:0;;;;;;;:9;:17;;;;;;:73;;;;25271:20;;;;;;;:32;;25296:6;25271:24;:32::i;:::-;-1:-1:-1;;;;;25248:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25319:35;;;;;;-1:-1:-1;;;;;;;;;;;25319:35:0;;;25347:6;160:25:1;;148:2;133:18;;14:177;25319:35:0;;;;;;;;-1:-1:-1;25372:4:0;25054:330;;;;;:::o;26001:1565::-;15313:16;:23;;-1:-1:-1;;15313:23:0;15332:4;15313:23;;;26103:4:::1;15313:16:::0;26085:24;;;:9:::1;:24;::::0;;;;;26180:8:::1;::::0;26162:12:::1;::::0;26085:24;;15313:16;26146:50:::1;::::0;26194:1:::1;::::0;26146:43:::1;::::0;26180:8;26146:43;;26085:24;;26146:15:::1;:29::i;:::-;:33:::0;::::1;:43::i;:50::-;26120:76:::0;-1:-1:-1;26207:20:0::1;26230:32;:11:::0;26120:76;26230:15:::1;:32::i;:::-;26299:16;::::0;;26313:1:::1;26299:16:::0;;;;;::::1;::::0;;26207:55;;-1:-1:-1;26275:21:0::1;::::0;26299:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26299:16:0::1;26275:40;;26344:4;26326;26331:1;26326:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26326:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;26370:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;26370:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;26326:7;;26370:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26360:4;26365:1;26360:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26360:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;26396:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;26396:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;26468:12;;26396:6:::1;::::0;26511:4;;26538::::1;::::0;26558:15:::1;::::0;26396:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;26686:12:0::1;::::0;26617:21:::1;::::0;-1:-1:-1;26597:17:0::1;::::0;-1:-1:-1;26673:33:0::1;::::0;26686:19:::1;::::0;26703:1:::1;26686:16;:19::i;:::-;26673:8;::::0;;:12:::1;:33::i;:::-;26651:55;;26727:26;26756:51;26805:1;26756:44;26788:11;26756:27;26770:12;;26756:9;:13;;:27;;;;:::i;:51::-;26727:80;;26818:27;26848:42;26878:11;26848:25;26862:10;;26848:9;:13;;:25;;;;:::i;:42::-;26818:72:::0;-1:-1:-1;26895:24:0::1;26922:58;26961:18:::0;26922:34:::1;:9:::0;26818:72;26922:13:::1;:34::i;:58::-;26895:85;;26997:19;;;;;;;;;-1:-1:-1::0;;;;;26997:19:0::1;-1:-1:-1::0;;;;;26997:27:0::1;;27032:19;26997:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;26993:73:::0;27089:19;;27086:362:::1;;27124:6;::::0;27298:21:::1;::::0;27124:244:::1;::::0;-1:-1:-1;;;27124:244:0;;27200:4:::1;27124:244;::::0;::::1;12645:34:1::0;12695:18;;;12688:34;;;27124:6:0::1;12738:18:1::0;;;12731:34;;;12781:18;;;12774:34;-1:-1:-1;;;;;27298:21:0;;::::1;12824:19:1::0;;;12817:44;27338:15:0::1;12877:19:1::0;;;12870:35;27124:6:0;::::1;::::0;:22:::1;::::0;27154:18;;12579:19:1;;27124:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;27388:48:0::1;::::0;;8111:25:1;;;8167:2;8152:18;;8145:34;;;27388:48:0::1;::::0;-1:-1:-1;8084:18:1;27388:48:0::1;;;;;;;27086:362;27460:20:::0;;27456:103:::1;;27518:16;::::0;27487:66:::1;::::0;-1:-1:-1;;;;;27518:16:0::1;27536::::0;27487:30:::1;:66::i;:::-;-1:-1:-1::0;;15359:16:0;:24;;-1:-1:-1;;15359:24:0;;;-1:-1:-1;;;;;;;26001:1565:0:o;25392:439::-;25532:4;;25478:7;;;;-1:-1:-1;;;;;25532:17:0;;;:4;;:17;:48;;25572:8;;25532:48;;;25552:17;;25532:48;25508:72;-1:-1:-1;25591:17:0;25611:34;25641:3;25611:25;:6;25508:72;25611:10;:25::i;:34::-;25703:4;25685:24;;;;:9;:24;;;;;;25591:54;;-1:-1:-1;25685:39:0;;25591:54;25685:28;:39::i;:::-;25676:4;25658:24;;;;:9;:24;;;;;;;:66;;;;25740:42;;-1:-1:-1;;;;;25740:42:0;;;-1:-1:-1;;;;;;;;;;;25740:42:0;;;25772:9;160:25:1;;148:2;133:18;;14:177;25740:42:0;;;;;;;;25802:21;:6;25813:9;25802:10;:21::i;:::-;25795:28;25392:439;-1:-1:-1;;;;;;25392:439:0:o;2473:224::-;2531:7;2555:6;2551:25;;-1:-1:-1;2572:1:0;2565:8;;2551:25;2586:9;2598:5;2602:1;2598;:5;:::i;:::-;2586:17;-1:-1:-1;2631:1:0;2622:5;2626:1;2586:17;2622:5;:::i;:::-;:10;2614:56;;;;-1:-1:-1;;;2614:56:0;;13429:2:1;2614:56:0;;;13411:21:1;13468:2;13448:18;;;13441:30;13507:34;13487:18;;;13480:62;-1:-1:-1;;;13558:18:1;;;13551:31;13599:19;;2614:56:0;13227:397:1;2705:132:0;2763:7;2790:39;2794:1;2797;2790:39;;;;;;;;;;;;;;;;;:3;:39::i;1711:200::-;1824:12;;;1784;1824;;;;;;;;;-1:-1:-1;;;;;1802:7:0;;;1817:5;;1802:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1783:54;;;1856:7;1848:55;;;;-1:-1:-1;;;1848:55:0;;14110:2:1;1848:55:0;;;14092:21:1;14149:2;14129:18;;;14122:30;14188:34;14168:18;;;14161:62;-1:-1:-1;;;14239:18:1;;;14232:33;14282:19;;1848:55:0;13908:399:1;1848:55:0;1772:139;1711:200;;:::o;2845:189::-;2931:7;2966:12;2959:5;2951:28;;;;-1:-1:-1;;;2951:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2990:9:0;3002:5;3006:1;3002;:5;:::i;196:258:1:-;268:1;278:113;292:6;289:1;286:13;278:113;;;368:11;;;362:18;349:11;;;342:39;314:2;307:10;278:113;;;409:6;406:1;403:13;400:48;;;-1:-1:-1;;444:1:1;426:16;;419:27;196:258::o;459:383::-;608:2;597:9;590:21;571:4;640:6;634:13;683:6;678:2;667:9;663:18;656:34;699:66;758:6;753:2;742:9;738:18;733:2;725:6;721:15;699:66;:::i;:::-;826:2;805:15;-1:-1:-1;;801:29:1;786:45;;;;833:2;782:54;;459:383;-1:-1:-1;;459:383:1:o;847:131::-;-1:-1:-1;;;;;922:31:1;;912:42;;902:70;;968:1;965;958:12;983:315;1051:6;1059;1112:2;1100:9;1091:7;1087:23;1083:32;1080:52;;;1128:1;1125;1118:12;1080:52;1167:9;1154:23;1186:31;1211:5;1186:31;:::i;:::-;1236:5;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;983:315:1:o;1495:160::-;1560:20;;1616:13;;1609:21;1599:32;;1589:60;;1645:1;1642;1635:12;1589:60;1495:160;;;:::o;1660:180::-;1716:6;1769:2;1757:9;1748:7;1744:23;1740:32;1737:52;;;1785:1;1782;1775:12;1737:52;1808:26;1824:9;1808:26;:::i;1845:247::-;1904:6;1957:2;1945:9;1936:7;1932:23;1928:32;1925:52;;;1973:1;1970;1963:12;1925:52;2012:9;1999:23;2031:31;2056:5;2031:31;:::i;2097:456::-;2174:6;2182;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2298:9;2285:23;2317:31;2342:5;2317:31;:::i;:::-;2367:5;-1:-1:-1;2424:2:1;2409:18;;2396:32;2437:33;2396:32;2437:33;:::i;:::-;2097:456;;2489:7;;-1:-1:-1;;;2543:2:1;2528:18;;;;2515:32;;2097:456::o;2747:316::-;2818:6;2826;2834;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;2926:26;2942:9;2926:26;:::i;:::-;2916:36;;2999:2;2988:9;2984:18;2971:32;2961:42;;3022:35;3053:2;3042:9;3038:18;3022:35;:::i;:::-;3012:45;;2747:316;;;;;:::o;3068:180::-;3127:6;3180:2;3168:9;3159:7;3155:23;3151:32;3148:52;;;3196:1;3193;3186:12;3148:52;-1:-1:-1;3219:23:1;;3068:180;-1:-1:-1;3068:180:1:o;3253:385::-;3339:6;3347;3355;3363;3416:3;3404:9;3395:7;3391:23;3387:33;3384:53;;;3433:1;3430;3423:12;3384:53;-1:-1:-1;;3456:23:1;;;3526:2;3511:18;;3498:32;;-1:-1:-1;3577:2:1;3562:18;;3549:32;;3628:2;3613:18;3600:32;;-1:-1:-1;3253:385:1;-1:-1:-1;3253:385:1:o;3643:315::-;3708:6;3716;3769:2;3757:9;3748:7;3744:23;3740:32;3737:52;;;3785:1;3782;3775:12;3737:52;3824:9;3811:23;3843:31;3868:5;3843:31;:::i;:::-;3893:5;-1:-1:-1;3917:35:1;3948:2;3933:18;;3917:35;:::i;:::-;3907:45;;3643:315;;;;;:::o;4171:248::-;4239:6;4247;4300:2;4288:9;4279:7;4275:23;4271:32;4268:52;;;4316:1;4313;4306:12;4268:52;-1:-1:-1;;4339:23:1;;;4409:2;4394:18;;;4381:32;;-1:-1:-1;4171:248:1:o;4660:388::-;4728:6;4736;4789:2;4777:9;4768:7;4764:23;4760:32;4757:52;;;4805:1;4802;4795:12;4757:52;4844:9;4831:23;4863:31;4888:5;4863:31;:::i;:::-;4913:5;-1:-1:-1;4970:2:1;4955:18;;4942:32;4983:33;4942:32;4983:33;:::i;:::-;5035:7;5025:17;;;4660:388;;;;;:::o;5539:329::-;5741:2;5723:21;;;5780:1;5760:18;;;5753:29;-1:-1:-1;;;5813:2:1;5798:18;;5791:36;5859:2;5844:18;;5539:329::o;5873:335::-;6075:2;6057:21;;;6114:2;6094:18;;;6087:30;-1:-1:-1;;;6148:2:1;6133:18;;6126:41;6199:2;6184:18;;5873:335::o;6572:127::-;6633:10;6628:3;6624:20;6621:1;6614:31;6664:4;6661:1;6654:15;6688:4;6685:1;6678:15;6704:127;6765:10;6760:3;6756:20;6753:1;6746:31;6796:4;6793:1;6786:15;6820:4;6817:1;6810:15;6836:168;6876:7;6942:1;6938;6934:6;6930:14;6927:1;6924:21;6919:1;6912:9;6905:17;6901:45;6898:71;;;6949:18;;:::i;:::-;-1:-1:-1;6989:9:1;;6836:168::o;7009:217::-;7049:1;7075;7065:132;;7119:10;7114:3;7110:20;7107:1;7100:31;7154:4;7151:1;7144:15;7182:4;7179:1;7172:15;7065:132;-1:-1:-1;7211:9:1;;7009:217::o;7231:135::-;7270:3;-1:-1:-1;;7291:17:1;;7288:43;;;7311:18;;:::i;:::-;-1:-1:-1;7358:1:1;7347:13;;7231:135::o;8526:128::-;8566:3;8597:1;8593:6;8590:1;8587:13;8584:39;;;8603:18;;:::i;:::-;-1:-1:-1;8639:9:1;;8526:128::o;9000:125::-;9040:4;9068:1;9065;9062:8;9059:34;;;9073:18;;:::i;:::-;-1:-1:-1;9110:9:1;;9000:125::o;9130:127::-;9191:10;9186:3;9182:20;9179:1;9172:31;9222:4;9219:1;9212:15;9246:4;9243:1;9236:15;11063:251;11133:6;11186:2;11174:9;11165:7;11161:23;11157:32;11154:52;;;11202:1;11199;11192:12;11154:52;11234:9;11228:16;11253:31;11278:5;11253:31;:::i;11319:980::-;11581:4;11629:3;11618:9;11614:19;11660:6;11649:9;11642:25;11686:2;11724:6;11719:2;11708:9;11704:18;11697:34;11767:3;11762:2;11751:9;11747:18;11740:31;11791:6;11826;11820:13;11857:6;11849;11842:22;11895:3;11884:9;11880:19;11873:26;;11934:2;11926:6;11922:15;11908:29;;11955:1;11965:195;11979:6;11976:1;11973:13;11965:195;;;12044:13;;-1:-1:-1;;;;;12040:39:1;12028:52;;12135:15;;;;12100:12;;;;12076:1;11994:9;11965:195;;;-1:-1:-1;;;;;;;12216:32:1;;;;12211:2;12196:18;;12189:60;-1:-1:-1;;;12280:3:1;12265:19;12258:35;12177:3;11319:980;-1:-1:-1;;;11319:980:1:o;12916:306::-;13004:6;13012;13020;13073:2;13061:9;13052:7;13048:23;13044:32;13041:52;;;13089:1;13086;13079:12;13041:52;13118:9;13112:16;13102:26;;13168:2;13157:9;13153:18;13147:25;13137:35;;13212:2;13201:9;13197:18;13191:25;13181:35;;12916:306;;;;;:::o;13629:274::-;13758:3;13796:6;13790:13;13812:53;13858:6;13853:3;13846:4;13838:6;13834:17;13812:53;:::i;:::-;13881:16;;;;;13629:274;-1:-1:-1;;13629:274:1:o
Swarm Source
ipfs://3e4af6db639dc8fee256b0474def0e6b425a33823889d833f4529297929dc8c2
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.