More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 86 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Tx Limit | 15206342 | 817 days ago | IN | 0 ETH | 0.00081205 | ||||
Set Swap Back Se... | 15206339 | 817 days ago | IN | 0 ETH | 0.00070866 | ||||
Approve | 15090804 | 835 days ago | IN | 0 ETH | 0.00241321 | ||||
Approve | 15013990 | 848 days ago | IN | 0 ETH | 0.00629969 | ||||
Approve | 14984557 | 853 days ago | IN | 0 ETH | 0.00162438 | ||||
Approve | 14984323 | 853 days ago | IN | 0 ETH | 0.00108037 | ||||
Approve | 14983158 | 853 days ago | IN | 0 ETH | 0.00108788 | ||||
Approve | 14983111 | 853 days ago | IN | 0 ETH | 0.00090569 | ||||
Approve | 14983076 | 853 days ago | IN | 0 ETH | 0.00086073 | ||||
Approve | 14983060 | 853 days ago | IN | 0 ETH | 0.00097618 | ||||
Approve | 14982078 | 854 days ago | IN | 0 ETH | 0.00168279 | ||||
Approve | 14982075 | 854 days ago | IN | 0 ETH | 0.00144728 | ||||
Approve | 14981606 | 854 days ago | IN | 0 ETH | 0.00154855 | ||||
Approve | 14981596 | 854 days ago | IN | 0 ETH | 0.00113715 | ||||
Approve | 14981556 | 854 days ago | IN | 0 ETH | 0.00155199 | ||||
Approve | 14981536 | 854 days ago | IN | 0 ETH | 0.00160366 | ||||
Transfer | 14981299 | 854 days ago | IN | 0 ETH | 0.00281477 | ||||
Approve | 14981277 | 854 days ago | IN | 0 ETH | 0.00054386 | ||||
Approve | 14981197 | 854 days ago | IN | 0 ETH | 0.00205672 | ||||
Approve | 14981185 | 854 days ago | IN | 0 ETH | 0.00120668 | ||||
Approve | 14981181 | 854 days ago | IN | 0 ETH | 0.00130609 | ||||
Transfer | 14981179 | 854 days ago | IN | 0 ETH | 0.00233991 | ||||
Approve | 14981157 | 854 days ago | IN | 0 ETH | 0.00066906 | ||||
Approve | 14981156 | 854 days ago | IN | 0 ETH | 0.00104899 | ||||
Approve | 14981152 | 854 days ago | IN | 0 ETH | 0.00100636 |
Latest 19 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14981497 | 854 days ago | 0.33485723 ETH | ||||
14981497 | 854 days ago | 0.66971446 ETH | ||||
14981497 | 854 days ago | 1.00457169 ETH | ||||
14981187 | 854 days ago | 0.38655254 ETH | ||||
14981187 | 854 days ago | 0.77310509 ETH | ||||
14981187 | 854 days ago | 1.15965763 ETH | ||||
14981155 | 854 days ago | 0.42970666 ETH | ||||
14981155 | 854 days ago | 0.85941333 ETH | ||||
14981155 | 854 days ago | 1.28911999 ETH | ||||
14980983 | 854 days ago | 0.00894335 ETH | ||||
14980983 | 854 days ago | 0.01788671 ETH | ||||
14980983 | 854 days ago | 0.02683007 ETH | ||||
14980925 | 854 days ago | 0.2172393 ETH | ||||
14980925 | 854 days ago | 0.4344786 ETH | ||||
14980925 | 854 days ago | 0.65171791 ETH | ||||
14980848 | 854 days ago | 0.2418652 ETH | ||||
14980848 | 854 days ago | 0.4837304 ETH | ||||
14980848 | 854 days ago | 0.7255956 ETH | ||||
14980599 | 854 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
PHOENIX
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-17 */ //SPDX-License-Identifier: MIT pragma solidity ^0.7.4; /** * Standard SafeMath, stripped down to just add/sub/mul/div */ 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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * BEP20 standard interface. */ 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); } /** * Allows for contract ownership along with multi-address authorization */ 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); } 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 removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); 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; } IBEP20 USDC = IBEP20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; IDEXRouter router; 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 = 1 minutes; uint256 public minDistribution = 1 * (10 ** 6); 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(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } 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 = USDC.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(USDC); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = USDC.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 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; 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); USDC.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 { 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(); } } contract PHOENIX is IBEP20, Auth { using SafeMath for uint256; address USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "PHOENIX"; string constant _symbol = "PHOENIX"; uint8 constant _decimals = 9; uint256 _totalSupply = 30_000_000 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply / 100; // 1% mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; mapping (address => bool) isDividendExempt; mapping (address => bool) isBlacklisted; uint256 reflectionFee = 100; uint256 marketingFee = 50; uint256 totalFee = 150; uint256 feeDenominator = 1000; address public marketingFeeReceiver; IDEXRouter public router; address public pair; uint256 public launchedAt; DividendDistributor distributor; uint256 distributorGas = 750000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 20000; // 0.005% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = uint256(-1); distributor = new DividendDistributor(address(router)); isFeeExempt[owner] = true; isTxLimitExempt[owner] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; marketingFeeReceiver = 0xCD9531c1787BC0b27Be49aC1632E2885F6a513d1; _balances[owner] = _totalSupply; emit Transfer(address(0), owner, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, uint256(-1)); } function transferMultiple(address[] calldata recipients, uint256 amount) public { for (uint256 i = 0; i < recipients.length; i++) { require(_transferFrom(msg.sender,recipients[i], amount)); } } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != uint256(-1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!isBlacklisted[sender]); if(inSwap||isFeeExempt[sender]||isFeeExempt[recipient]){ return _basicTransfer(sender, recipient, amount); } checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); 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); if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} } if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} } emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { if(block.number >= launchedAt + 2){require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");} } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && totalFee > 0 && recipient != pair; } function getTotalFee() public view returns (uint256) { if(launchedAt + (_totalSupply.div(_totalSupply)) >= block.number){ return feeDenominator.sub(1); } return totalFee; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(getTotalFee()).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToSwap = balanceOf(address(this)); uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 amountETHReflection = amountETH.mul(reflectionFee).div(totalFee); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee); try distributor.deposit{value: amountETHReflection}() {} catch {} payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); } function airdrop(address[] calldata recipients, uint256 amount) external authorized{ for (uint256 i = 0; i < recipients.length; i++) { _basicTransfer(msg.sender,recipients[i], amount); } } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() external authorized { launchedAt = block.number; } function setTxLimit(uint256 amount) external authorized { require(amount >= _totalSupply / 1000); _maxTxAmount = amount; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if(exempt){ distributor.setShare(holder, 0); }else{ distributor.setShare(holder, _balances[holder]); } } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsBlacklisted(address[] calldata accounts, bool flag) external authorized { for(uint256 i = 0; i < accounts.length; i++) { isBlacklisted[accounts[i]] = flag; } } function setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setFees( uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized { reflectionFee = _reflectionFee; marketingFee = _marketingFee; totalFee = _reflectionFee.add(_marketingFee); feeDenominator = _feeDenominator; } function setFeeReceiver(address _marketingFeeReceiver) external authorized { marketingFeeReceiver = _marketingFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external authorized { distributorGas = gas; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"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":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferMultiple","outputs":[],"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
6080604052600280546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb481790915560038054821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905560048054821661dead179055600580549091169055666a94d74f430000600655660110d9316ec0006007556064600e556032600f5560966010556103e8601155620b71b06017556018805460ff1916600117905565015d3ef79800601955348015620000b657600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560138054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200014657600080fd5b505afa1580156200015b573d6000803e3d6000fd5b505050506040513d60208110156200017257600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b158015620001ca57600080fd5b505af1158015620001df573d6000803e3d6000fd5b505050506040513d6020811015620001f657600080fd5b5051601480546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601380548616855292529182902060001990555490519116906200024a906200037c565b6001600160a01b03909116815260405190819003602001906000f08015801562000278573d6000803e3d6000fd5b50601680546001600160a01b039283166001600160a01b0319918216179091556000805483168152600a60209081526040808320805460ff199081166001908117909255845487168552600b8452828520805482168317905560145487168552600c84528285208054821683179055308552828520805482168317905560045487168552828520805490911690911790556012805490941673cd9531c1787bc0b27be49ac1632e2885f6a513d11790935560065482548516835260088252838320819055825484519182529351939094169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36200038a565b6111ca8062002e9583390190565b612afb806200039a6000396000f3fe6080604052600436106102895760003560e01c8063893d20e811610153578063dd62ed3e116100cb578063f2fde38b1161007f578063f84ba65d11610064578063f84ba65d14610a5b578063f887ea4014610aa3578063fe9fbb8014610ab857610290565b8063f2fde38b146109d3578063f708a64f14610a1357610290565b8063e96fada2116100b0578063e96fada21461093e578063efdcd97414610953578063f0b37c041461099357610290565b8063dd62ed3e146108c4578063df20fd491461090c57610290565b8063a9059cbb11610122578063bf56b37111610107578063bf56b371146107fc578063c204642c14610811578063cec10c111461088e57610290565b8063a9059cbb14610776578063b6a5d7de146107bc57610290565b8063893d20e8146106f957806395d89b41146102d35780639d1944f514610737578063a8aa1b311461076157610290565b8063313ce56711610201578063658d4b7f116101b557806370a082311161019a57806370a082311461068f5780637ae316d0146106cf5780637d1db4a5146106e457610290565b8063658d4b7f146106325780636ddd17131461067a57610290565b8063571ac8b0116101e6578063571ac8b0146105495780635c85974f1461058957806362f8246e146105b357610290565b8063313ce567146104a15780633f7ef211146104cc57610290565b806318160ddd116102585780632b112e491161023d5780632b112e491461041c5780632d48e896146104315780632f54bf6e1461046157610290565b806318160ddd146103b757806323b872dd146103cc57610290565b806301339c21146102955780630445b667146102ac57806306fdde03146102d3578063095ea7b31461035d57610290565b3661029057005b600080fd5b3480156102a157600080fd5b506102aa610af8565b005b3480156102b857600080fd5b506102c1610b72565b60408051918252519081900360200190f35b3480156102df57600080fd5b506102e8610b78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032257818101518382015260200161030a565b50505050905090810190601f16801561034f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036957600080fd5b506103a36004803603604081101561038057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bb0565b604080519115158252519081900360200190f35b3480156103c357600080fd5b506102c1610c24565b3480156103d857600080fd5b506103a3600480360360608110156103ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c2a565b34801561042857600080fd5b506102c1610d38565b34801561043d57600080fd5b506102aa6004803603604081101561045457600080fd5b5080359060200135610d9b565b34801561046d57600080fd5b506103a36004803603602081101561048457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ea5565b3480156104ad57600080fd5b506104b6610ec6565b6040805160ff9092168252519081900360200190f35b3480156104d857600080fd5b506102aa600480360360408110156104ef57600080fd5b81019060208101813564010000000081111561050a57600080fd5b82018360208201111561051c57600080fd5b8035906020019184602083028401116401000000008311171561053e57600080fd5b919350915035610ecb565b34801561055557600080fd5b506103a36004803603602081101561056c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f20565b34801561059557600080fd5b506102aa600480360360208110156105ac57600080fd5b5035610f4c565b3480156105bf57600080fd5b506102aa600480360360408110156105d657600080fd5b8101906020810181356401000000008111156105f157600080fd5b82018360208201111561060357600080fd5b8035906020019184602083028401116401000000008311171561062557600080fd5b9193509150351515610fdf565b34801561063e57600080fd5b506102aa6004803603604081101561065557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156110d3565b34801561068657600080fd5b506103a361119d565b34801561069b57600080fd5b506102c1600480360360208110156106b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111a6565b3480156106db57600080fd5b506102c16111ce565b3480156106f057600080fd5b506102c1611205565b34801561070557600080fd5b5061070e61120b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561074357600080fd5b506102aa6004803603602081101561075a57600080fd5b5035611227565b34801561076d57600080fd5b5061070e6112a0565b34801561078257600080fd5b506103a36004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356112bc565b3480156107c857600080fd5b506102aa600480360360208110156107df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112c9565b34801561080857600080fd5b506102c161138f565b34801561081d57600080fd5b506102aa6004803603604081101561083457600080fd5b81019060208101813564010000000081111561084f57600080fd5b82018360208201111561086157600080fd5b8035906020019184602083028401116401000000008311171561088357600080fd5b919350915035611395565b34801561089a57600080fd5b506102aa600480360360608110156108b157600080fd5b5080359060208101359060400135611450565b3480156108d057600080fd5b506102c1600480360360408110156108e757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114e2565b34801561091857600080fd5b506102aa6004803603604081101561092f57600080fd5b5080351515906020013561151a565b34801561094a57600080fd5b5061070e6115c3565b34801561095f57600080fd5b506102aa6004803603602081101561097657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115df565b34801561099f57600080fd5b506102aa600480360360208110156109b657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661169a565b3480156109df57600080fd5b506102aa600480360360208110156109f657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175a565b348015610a1f57600080fd5b506102aa60048036036040811015610a3657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135151561187f565b348015610a6757600080fd5b506102aa60048036036040811015610a7e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611ab3565b348015610aaf57600080fd5b5061070e611b7d565b348015610ac457600080fd5b506103a360048036036020811015610adb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611b99565b610b0133611b99565b610b6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b43601555565b60195481565b60408051808201909152600781527f50484f454e49580000000000000000000000000000000000000000000000000060208201525b90565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60065490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610d2357604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600982528381203382529091529190912054610cf1918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff851660009081526009602090815260408083203384529091529020555b610d2e848484611c75565b90505b9392505050565b600554600090610d9690610d619073ffffffffffffffffffffffffffffffffffffffff166111a6565b600454610d9090610d879073ffffffffffffffffffffffffffffffffffffffff166111a6565b600654906120b9565b906120b9565b905090565b610da433611b99565b610e0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601654604080517f2d48e8960000000000000000000000000000000000000000000000000000000081526004810185905260248101849052905173ffffffffffffffffffffffffffffffffffffffff90921691632d48e8969160448082019260009290919082900301818387803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161490565b600990565b60005b82811015610f1a57610f0933858584818110610ee657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1684611c75565b610f1257600080fd5b600101610ece565b50505050565b6000610c1e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bb0565b610f5533611b99565b610fc057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b6103e860065481610fcd57fe5b04811015610fda57600080fd5b600755565b610fe833611b99565b61105357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b82811015610f1a5781600d600086868581811061106f57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff1683525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611056565b6110dc33611b99565b61114757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60185460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205490565b60065460009043906111e090806120fb565b60155401106111fe576011546111f79060016120b9565b9050610bad565b5060105490565b60075481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61123033611b99565b61129b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601755565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d31338484611c75565b6112d233610ea5565b61133d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b60155481565b61139e33611b99565b61140957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b82811015610f1a576114473385858481811061142457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168461213d565b5060010161140c565b61145933611b99565b6114c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b600e839055600f8290556114d883836123ea565b6010556011555050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b61152333611b99565b61158e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155601955565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b6115e833611b99565b61165357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6116a333610ea5565b61170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b61176333610ea5565b6117ce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61188833611b99565b6118f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82163014801590611934575060145473ffffffffffffffffffffffffffffffffffffffff838116911614155b61193d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215801591909117909155611a2b57601654604080517f14b6ca9600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b158015611a0e57600080fd5b505af1158015611a22573d6000803e3d6000fd5b50505050611aaf565b60165473ffffffffffffffffffffffffffffffffffffffff8381166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015610e8957600080fd5b5050565b611abc33611b99565b611b2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b60008184841115611c6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c32578181015183820152602001611c1a565b50505050905090810190601f168015611c5f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600d602052604081205460ff1615611ca857600080fd5b601a5460ff1680611cde575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b80611d0e575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff165b15611d2557611d1e84848461213d565b9050610d31565b611d2f848361245e565b611d3761250b565b15611d4457611d44612567565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260089091529190912054611dac918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040812091909155611ddf85856128a2565b611de95782611df3565b611df38584612906565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902054909150611e2690826123ea565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860209081526040808320949094559188168152600c909152205460ff16611efd5760165473ffffffffffffffffffffffffffffffffffffffff8681166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611eea57600080fd5b505af1925050508015611efb575060015b505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c602052604090205460ff16611fc15760165473ffffffffffffffffffffffffffffffffffffffff8581166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611fae57600080fd5b505af1925050508015611fbf575060015b505b601654601754604080517fffb2c47900000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163ffb2c4799160248082019260009290919082900301818387803b15801561203757600080fd5b505af1925050508015612048575060015b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000610d3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc4565b6000610d3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129b2565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff861660009081526008909152918220546121a4918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526008602052604080822093909355908516815220546121e090836123ea565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600860209081526040808320949094559187168152600c909152205460ff166122b75760165473ffffffffffffffffffffffffffffffffffffffff8581166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156122a457600080fd5b505af19250505080156122b5575060015b505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff1661237b5760165473ffffffffffffffffffffffffffffffffffffffff8481166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561236857600080fd5b505af1925050508015612379575060015b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b600082820183811015610d3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6015546002014310611aaf57600754811115806124a0575073ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff165b611aaf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5458204c696d6974204578636565646564000000000000000000000000000000604482015290519081900360640190fd5b60145460009073ffffffffffffffffffffffffffffffffffffffff1633148015906125395750601a5460ff16155b8015612547575060185460ff165b8015610d9657505060195430600090815260086020526040902054101590565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600061259d306111a6565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106125d157fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260035482519116908290600190811061260957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156127045781810151838201526020016126ec565b505050509050019650505050505050600060405180830381600087803b15801561272d57600080fd5b505af1158015612741573d6000803e3d6000fd5b505050506000479050600061276d601054612767600e5485612a3190919063ffffffff16565b906120fb565b9050600061278c601054612767600f5486612a3190919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127f857600080fd5b505af19350505050801561280a575060015b5060125460405173ffffffffffffffffffffffffffffffffffffffff909116906175309083906000818181858888f193505050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604081205460ff161580156128da57506000601054115b8015610d3157505060145473ffffffffffffffffffffffffffffffffffffffff90811691161415919050565b60008061292160115461276761291a6111ce565b8690612a31565b3060009081526008602052604090205490915061293e90826123ea565b306000818152600860209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36129aa83826120b9565b949350505050565b60008183612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611c32578181015183820152602001611c1a565b506000838581612a2757fe5b0495945050505050565b600082612a4057506000610c1e565b82820282848281612a4d57fe5b0414610d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aa56021913960400191505060405180910390fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212205257df688b28f4fa5c98c2c648040b70f6d00e12def19efbfcc07bf5ff0f619964736f6c634300070600336080604052600180546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179091556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556ec097ce7bc90715b34b9f1000000000600c55603c600d55620f4240600e5534801561007757600080fd5b506040516111ca3803806111ca8339818101604052602081101561009a57600080fd5b50516001600160a01b0381166100c457737a250d5630b4cf539739df2c5dacb4c659f2488d6100c6565b805b600380546001600160a01b03929092166001600160a01b03199283161790556000805490911633179055506110ca806101006000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461027b578063f0fc6bca14610290578063ffb2c479146102a5578063ffd49c84146102cf576100dd565b8063ce7c2ac214610200578063d0e30db01461025e578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101915780633a98ef39146101c15780634fab0ae8146101d6578063997664d7146101eb576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610151575b600080fd5b3480156100ee57600080fd5b506100f76102e4565b60408051918252519081900360200190f35b34801561011557600080fd5b5061014f6004803603604081101561012c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356102ea565b005b34801561015d57600080fd5b506100f76004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661046a565b34801561019d57600080fd5b5061014f600480360360408110156101b457600080fd5b508035906020013561051d565b3480156101cd57600080fd5b506100f761054c565b3480156101e257600080fd5b506100f7610552565b3480156101f757600080fd5b506100f7610558565b34801561020c57600080fd5b506102406004803603602081101561022357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661055e565b60408051938452602084019290925282820152519081900360600190f35b61014f61057f565b34801561027257600080fd5b506100f76108aa565b34801561028757600080fd5b506100f76108b0565b34801561029c57600080fd5b5061014f6108b6565b3480156102b157600080fd5b5061014f600480360360208110156102c857600080fd5b50356108c1565b3480156102db57600080fd5b506100f76109ca565b600c5481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461030e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760205260409020541561034257610342826109d0565b600081118015610375575073ffffffffffffffffffffffffffffffffffffffff8216600090815260076020526040902054155b156103885761038382610b45565b6103c8565b801580156103ba575073ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604090205415155b156103c8576103c882610bcb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526007602052604090205460085461040691839161040091610d69565b90610db4565b60085573ffffffffffffffffffffffffffffffffffffffff8216600090815260076020526040902081905561043a81610e28565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526007602052604090206001019190915550565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081205461049c57506000610518565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760205260408120546104cb90610e28565b73ffffffffffffffffffffffffffffffffffffffff841660009081526007602052604090206001015490915080821161050957600092505050610518565b6105138282610d69565b925050505b919050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461054157600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105a357600080fd5b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b15801561061457600080fd5b505afa158015610628573d6000803e3d6000fd5b505050506040513d602081101561063e57600080fd5b505160408051600280825260608201835292935060009290916020830190803683375050600254825192935073ffffffffffffffffffffffffffffffffffffffff169183915060009061068d57fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260018054835192169183919081106106c457fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526003546040517fb6f9de9500000000000000000000000000000000000000000000000000000000815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561077c578181015183820152602001610764565b50505050905001955050505050506000604051808303818588803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b5050600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009550610868945087935073ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d602081101561086057600080fd5b505190610d69565b6009549091506108789082610db4565b600955600854600c546108a291610899916108939085610e45565b90610eb8565b600b5490610db4565b600b55505050565b600b5481565b600a5481565b6108bf336109d0565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108e557600080fd5b600454806108f357506109c7565b6000805a905060005b848310801561090a57508381105b156109c25783600f541061091e576000600f555b6109576004600f548154811061093057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16610efa565b15610995576109956004600f548154811061096e57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff166109d0565b6109aa6109a35a8490610d69565b8490610db4565b92505a600f80546001908101909155909250016108fc565b505050505b50565b600d5481565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600760205260409020546109ff576109c7565b6000610a0a8261046a565b90508015610b4157600a54610a1f9082610db4565b600a55600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610a9e57600080fd5b505af1158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b505073ffffffffffffffffffffffffffffffffffffffff821660009081526006602090815260408083204290556007909152902060020154610b0a9082610db4565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260076020526040902060028101919091555461043a90610e28565b5050565b6004805473ffffffffffffffffffffffffffffffffffffffff9092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610bfb57fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff84811684526005909252604090922054600480549290931692918110610c4057fe5b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9485161790559183168152600591829052604081205460048054919392917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110610cd157fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020556004805480610d0e57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550565b6000610dab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f43565b90505b92915050565b600082820183811015610dab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610dae600c54610893600b5485610e4590919063ffffffff16565b600082610e5457506000610dae565b82820282848281610e6157fe5b0414610dab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806110746021913960400191505060405180910390fd5b6000610dab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ff4565b600d5473ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260408120549091429101108015610dae5750600e54610f3c8361046a565b1192915050565b60008184841115610fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb1578181015183820152602001610f99565b50505050905090810190601f168015610fde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610fb1578181015183820152602001610f99565b50600083858161106957fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212205cedead14e9fe0652909f23c19751da82055f98fb6a32fb0bfc6e1addde31b3c64736f6c63430007060033
Deployed Bytecode
0x6080604052600436106102895760003560e01c8063893d20e811610153578063dd62ed3e116100cb578063f2fde38b1161007f578063f84ba65d11610064578063f84ba65d14610a5b578063f887ea4014610aa3578063fe9fbb8014610ab857610290565b8063f2fde38b146109d3578063f708a64f14610a1357610290565b8063e96fada2116100b0578063e96fada21461093e578063efdcd97414610953578063f0b37c041461099357610290565b8063dd62ed3e146108c4578063df20fd491461090c57610290565b8063a9059cbb11610122578063bf56b37111610107578063bf56b371146107fc578063c204642c14610811578063cec10c111461088e57610290565b8063a9059cbb14610776578063b6a5d7de146107bc57610290565b8063893d20e8146106f957806395d89b41146102d35780639d1944f514610737578063a8aa1b311461076157610290565b8063313ce56711610201578063658d4b7f116101b557806370a082311161019a57806370a082311461068f5780637ae316d0146106cf5780637d1db4a5146106e457610290565b8063658d4b7f146106325780636ddd17131461067a57610290565b8063571ac8b0116101e6578063571ac8b0146105495780635c85974f1461058957806362f8246e146105b357610290565b8063313ce567146104a15780633f7ef211146104cc57610290565b806318160ddd116102585780632b112e491161023d5780632b112e491461041c5780632d48e896146104315780632f54bf6e1461046157610290565b806318160ddd146103b757806323b872dd146103cc57610290565b806301339c21146102955780630445b667146102ac57806306fdde03146102d3578063095ea7b31461035d57610290565b3661029057005b600080fd5b3480156102a157600080fd5b506102aa610af8565b005b3480156102b857600080fd5b506102c1610b72565b60408051918252519081900360200190f35b3480156102df57600080fd5b506102e8610b78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032257818101518382015260200161030a565b50505050905090810190601f16801561034f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036957600080fd5b506103a36004803603604081101561038057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bb0565b604080519115158252519081900360200190f35b3480156103c357600080fd5b506102c1610c24565b3480156103d857600080fd5b506103a3600480360360608110156103ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610c2a565b34801561042857600080fd5b506102c1610d38565b34801561043d57600080fd5b506102aa6004803603604081101561045457600080fd5b5080359060200135610d9b565b34801561046d57600080fd5b506103a36004803603602081101561048457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ea5565b3480156104ad57600080fd5b506104b6610ec6565b6040805160ff9092168252519081900360200190f35b3480156104d857600080fd5b506102aa600480360360408110156104ef57600080fd5b81019060208101813564010000000081111561050a57600080fd5b82018360208201111561051c57600080fd5b8035906020019184602083028401116401000000008311171561053e57600080fd5b919350915035610ecb565b34801561055557600080fd5b506103a36004803603602081101561056c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f20565b34801561059557600080fd5b506102aa600480360360208110156105ac57600080fd5b5035610f4c565b3480156105bf57600080fd5b506102aa600480360360408110156105d657600080fd5b8101906020810181356401000000008111156105f157600080fd5b82018360208201111561060357600080fd5b8035906020019184602083028401116401000000008311171561062557600080fd5b9193509150351515610fdf565b34801561063e57600080fd5b506102aa6004803603604081101561065557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013515156110d3565b34801561068657600080fd5b506103a361119d565b34801561069b57600080fd5b506102c1600480360360208110156106b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111a6565b3480156106db57600080fd5b506102c16111ce565b3480156106f057600080fd5b506102c1611205565b34801561070557600080fd5b5061070e61120b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561074357600080fd5b506102aa6004803603602081101561075a57600080fd5b5035611227565b34801561076d57600080fd5b5061070e6112a0565b34801561078257600080fd5b506103a36004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356112bc565b3480156107c857600080fd5b506102aa600480360360208110156107df57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112c9565b34801561080857600080fd5b506102c161138f565b34801561081d57600080fd5b506102aa6004803603604081101561083457600080fd5b81019060208101813564010000000081111561084f57600080fd5b82018360208201111561086157600080fd5b8035906020019184602083028401116401000000008311171561088357600080fd5b919350915035611395565b34801561089a57600080fd5b506102aa600480360360608110156108b157600080fd5b5080359060208101359060400135611450565b3480156108d057600080fd5b506102c1600480360360408110156108e757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114e2565b34801561091857600080fd5b506102aa6004803603604081101561092f57600080fd5b5080351515906020013561151a565b34801561094a57600080fd5b5061070e6115c3565b34801561095f57600080fd5b506102aa6004803603602081101561097657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115df565b34801561099f57600080fd5b506102aa600480360360208110156109b657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661169a565b3480156109df57600080fd5b506102aa600480360360208110156109f657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661175a565b348015610a1f57600080fd5b506102aa60048036036040811015610a3657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135151561187f565b348015610a6757600080fd5b506102aa60048036036040811015610a7e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611ab3565b348015610aaf57600080fd5b5061070e611b7d565b348015610ac457600080fd5b506103a360048036036020811015610adb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611b99565b610b0133611b99565b610b6c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b43601555565b60195481565b60408051808201909152600781527f50484f454e49580000000000000000000000000000000000000000000000000060208201525b90565b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60065490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526009602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610d2357604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600982528381203382529091529190912054610cf1918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff851660009081526009602090815260408083203384529091529020555b610d2e848484611c75565b90505b9392505050565b600554600090610d9690610d619073ffffffffffffffffffffffffffffffffffffffff166111a6565b600454610d9090610d879073ffffffffffffffffffffffffffffffffffffffff166111a6565b600654906120b9565b906120b9565b905090565b610da433611b99565b610e0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601654604080517f2d48e8960000000000000000000000000000000000000000000000000000000081526004810185905260248101849052905173ffffffffffffffffffffffffffffffffffffffff90921691632d48e8969160448082019260009290919082900301818387803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff90811691161490565b600990565b60005b82811015610f1a57610f0933858584818110610ee657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1684611c75565b610f1257600080fd5b600101610ece565b50505050565b6000610c1e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610bb0565b610f5533611b99565b610fc057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b6103e860065481610fcd57fe5b04811015610fda57600080fd5b600755565b610fe833611b99565b61105357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b82811015610f1a5781600d600086868581811061106f57fe5b6020908102929092013573ffffffffffffffffffffffffffffffffffffffff1683525081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611056565b6110dc33611b99565b61114757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60185460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205490565b60065460009043906111e090806120fb565b60155401106111fe576011546111f79060016120b9565b9050610bad565b5060105490565b60075481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61123033611b99565b61129b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601755565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d31338484611c75565b6112d233610ea5565b61133d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b60155481565b61139e33611b99565b61140957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b82811015610f1a576114473385858481811061142457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168461213d565b5060010161140c565b61145933611b99565b6114c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b600e839055600f8290556114d883836123ea565b6010556011555050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260096020908152604080832093909416825291909152205490565b61152333611b99565b61158e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001692151592909217909155601955565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b6115e833611b99565b61165357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6116a333610ea5565b61170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b61176333610ea5565b6117ce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61188833611b99565b6118f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82163014801590611934575060145473ffffffffffffffffffffffffffffffffffffffff838116911614155b61193d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215801591909117909155611a2b57601654604080517f14b6ca9600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b158015611a0e57600080fd5b505af1158015611a22573d6000803e3d6000fd5b50505050611aaf565b60165473ffffffffffffffffffffffffffffffffffffffff8381166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015610e8957600080fd5b5050565b611abc33611b99565b611b2757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b60008184841115611c6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c32578181015183820152602001611c1a565b50505050905090810190601f168015611c5f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600d602052604081205460ff1615611ca857600080fd5b601a5460ff1680611cde575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b80611d0e575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a602052604090205460ff165b15611d2557611d1e84848461213d565b9050610d31565b611d2f848361245e565b611d3761250b565b15611d4457611d44612567565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260089091529190912054611dac918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040812091909155611ddf85856128a2565b611de95782611df3565b611df38584612906565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260086020526040902054909150611e2690826123ea565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600860209081526040808320949094559188168152600c909152205460ff16611efd5760165473ffffffffffffffffffffffffffffffffffffffff8681166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611eea57600080fd5b505af1925050508015611efb575060015b505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c602052604090205460ff16611fc15760165473ffffffffffffffffffffffffffffffffffffffff8581166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611fae57600080fd5b505af1925050508015611fbf575060015b505b601654601754604080517fffb2c47900000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff9092169163ffb2c4799160248082019260009290919082900301818387803b15801561203757600080fd5b505af1925050508015612048575060015b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000610d3183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bc4565b6000610d3183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129b2565b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff861660009081526008909152918220546121a4918490611bc4565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526008602052604080822093909355908516815220546121e090836123ea565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600860209081526040808320949094559187168152600c909152205460ff166122b75760165473ffffffffffffffffffffffffffffffffffffffff8581166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156122a457600080fd5b505af19250505080156122b5575060015b505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff1661237b5760165473ffffffffffffffffffffffffffffffffffffffff8481166000818152600860205260408082205481517f14b6ca96000000000000000000000000000000000000000000000000000000008152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561236857600080fd5b505af1925050508015612379575060015b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060019392505050565b600082820183811015610d3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6015546002014310611aaf57600754811115806124a0575073ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff165b611aaf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5458204c696d6974204578636565646564000000000000000000000000000000604482015290519081900360640190fd5b60145460009073ffffffffffffffffffffffffffffffffffffffff1633148015906125395750601a5460ff16155b8015612547575060185460ff165b8015610d9657505060195430600090815260086020526040902054101590565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600061259d306111a6565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106125d157fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201015260035482519116908290600190811061260957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156127045781810151838201526020016126ec565b505050509050019650505050505050600060405180830381600087803b15801561272d57600080fd5b505af1158015612741573d6000803e3d6000fd5b505050506000479050600061276d601054612767600e5485612a3190919063ffffffff16565b906120fb565b9050600061278c601054612767600f5486612a3190919063ffffffff16565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127f857600080fd5b505af19350505050801561280a575060015b5060125460405173ffffffffffffffffffffffffffffffffffffffff909116906175309083906000818181858888f193505050503d806000811461286a576040519150601f19603f3d011682016040523d82523d6000602084013e61286f565b606091505b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604081205460ff161580156128da57506000601054115b8015610d3157505060145473ffffffffffffffffffffffffffffffffffffffff90811691161415919050565b60008061292160115461276761291a6111ce565b8690612a31565b3060009081526008602052604090205490915061293e90826123ea565b306000818152600860209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36129aa83826120b9565b949350505050565b60008183612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315611c32578181015183820152602001611c1a565b506000838581612a2757fe5b0495945050505050565b600082612a4057506000610c1e565b82820282848281612a4d57fe5b0414610d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612aa56021913960400191505060405180910390fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212205257df688b28f4fa5c98c2c648040b70f6d00e12def19efbfcc07bf5ff0f619964736f6c63430007060033
Deployed Bytecode Sourcemap
12062:10043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19959:82;;;;;;;;;;;;;:::i;:::-;;13328:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;14509:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14931:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14931:216:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;14239:88;;;;;;;;;;;;;:::i;15679:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15679:364:0;;;;;;;;;;;;;;;;;;:::i;21960:142::-;;;;;;;;;;;;;:::i;21653:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21653:183:0;;;;;;;:::i;3428:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3428:103:0;;;;:::i;14333:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15279:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15279:228:0;-1:-1:-1;15279:228:0;;:::i;15155:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15155:116:0;;;;:::i;20049:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20049:145:0;;:::i;20685:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20685:210:0;-1:-1:-1;20685:210:0;;;;:::i;20557:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20557:120:0;;;;;;;;;;;:::i;13291:30::-;;;;;;;;;;;;;:::i;14679:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14679:105:0;;;;:::i;18006:195::-;;;;;;;;;;;;;:::i;12574:48::-;;;;;;;;;;;;;:::i;14595:78::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21844:104;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21844:104:0;;:::i;13151:19::-;;;;;;;;;;;;;:::i;15515:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15515:156:0;;;;;;;;;:::i;3101:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3101:94:0;;;;:::i;13179:25::-;;;;;;;;;;;;;:::i;19630:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19630:223:0;-1:-1:-1;19630:223:0;;:::i;21039:296::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21039:296:0;;;;;;;;;;;;:::i;14790:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14790:133:0;;;;;;;;;;;:::i;21489:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21489:156:0;;;;;;;;;:::i;13076:35::-;;;;;;;;;;;;;:::i;21343:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21343:138:0;;;;:::i;3271:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3271:97:0;;;;:::i;3828:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3828:173:0;;;;:::i;20202:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20202:347:0;;;;;;;;;;;:::i;20903:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20903:128:0;;;;;;;;;;;:::i;13120:24::-;;;;;;;;;;;;;:::i;3602:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3602:107:0;;;;:::i;19959:82::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20021:12:::1;20008:10;:25:::0;19959:82::o;13328:51::-;;;;:::o;14509:80::-;14581:5;;;;;;;;;;;;;;;;;14509:80;;:::o;14931:216::-;15035:10;15006:4;15023:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;;:41;;;15080:37;;;;;;;15006:4;;15023:32;;15035:10;;15080:37;;;;;;;;-1:-1:-1;15135:4:0;14931:216;;;;;:::o;14239:88::-;14312:12;;14239:88;:::o;15679:364::-;15799:19;;;15779:4;15799:19;;;:11;:19;;;;;;;;15819:10;15799:31;;;;;;;;15842:2;15799:46;15796:180;;15895:69;;;;;;;;;;;;;;;;;;;;:19;;;-1:-1:-1;15895:19:0;;;:11;:19;;;;;15915:10;15895:31;;;;;;;;;;:69;;15931:6;;15895:35;:69::i;:::-;15861:19;;;;;;;:11;:19;;;;;;;;15881:10;15861:31;;;;;;;:103;15796:180;15995:40;16009:6;16017:9;16028:6;15995:13;:40::i;:::-;15988:47;;15679:364;;;;;;:::o;21960:142::-;22088:4;;22013:7;;22040:54;;22078:15;;22088:4;;22078:9;:15::i;:::-;22067:4;;22040:33;;22057:15;;22067:4;;22057:9;:15::i;:::-;22040:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;22033:61;;21960:142;:::o;21653:183::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21763:11:::1;::::0;:65:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;:11:::1;::::0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21653:183:::0;;:::o;3428:103::-;3483:4;3518:5;;;;;3507:16;;;;3428:103::o;14333:80::-;12504:1;14333:80;:::o;15279:228::-;15374:9;15369:131;15389:21;;;15369:131;;;15440:47;15454:10;15465;;15476:1;15465:13;;;;;;;;;;;;;;;15480:6;15440:13;:47::i;:::-;15432:56;;;;;;15412:3;;15369:131;;;;15279:228;;;:::o;15155:116::-;15210:4;15234:29;15242:7;15259:2;15234:7;:29::i;20049:145::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20149:4:::1;20134:12;;:19;;;;;;20124:6;:29;;20116:38;;;::::0;::::1;;20165:12;:21:::0;20049:145::o;20685:210::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20787:9:::1;20783:105;20802:19:::0;;::::1;20783:105;;;20872:4;20843:13;:26;20857:8;;20866:1;20857:11;;;;;;;;::::0;;::::1;::::0;;;::::1;;;;20843:26:::0;;-1:-1:-1;20843:26:0;::::1;::::0;;;;;;-1:-1:-1;20843:26:0;:33;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;20823:3:0::1;20783:105;;20557:120:::0;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20641:19:::1;::::0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;20557:120::o;13291:30::-;;;;;;:::o;14679:105::-;14763:18;;14745:7;14763:18;;;:9;:18;;;;;;;14679:105::o;18006:195::-;18104:12;;18050:7;;18122:12;;18087:30;;18104:12;18087:16;:30::i;:::-;18073:10;;:45;:61;18070:98;;18144:14;;:21;;18163:1;18144:18;:21::i;:::-;18137:28;;;;18070:98;-1:-1:-1;18185:8:0;;18006:195;:::o;12574:48::-;;;;:::o;14595:78::-;14647:7;14665:5;;;14595:78;:::o;21844:104::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21920:14:::1;:20:::0;21844:104::o;13151:19::-;;;;;;:::o;15515:156::-;15595:4;15619:44;15633:10;15645:9;15656:6;15619:13;:44::i;3101:94::-;2817:19;2825:10;2817:7;:19::i;:::-;2809:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:19:::1;;;::::0;;;3183:4:::1;3161:19;::::0;;;;;;;:26;;;::::1;::::0;;::::1;::::0;;3101:94::o;13179:25::-;;;;:::o;19630:223::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19728:9:::1;19723:123;19743:21:::0;;::::1;19723:123;;;19786:48;19801:10;19812;;19823:1;19812:13;;;;;;;;;;;;;;;19827:6;19786:14;:48::i;:::-;-1:-1:-1::0;19766:3:0::1;;19723:123;;21039:296:::0;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21160:13:::1;:30:::0;;;21201:12:::1;:28:::0;;;21251:33:::1;21176:14:::0;21216:13;21251:18:::1;:33::i;:::-;21240:8;:44:::0;21295:14:::1;:32:::0;-1:-1:-1;;21039:296:0:o;14790:133::-;14892:19;;;;14874:7;14892:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14790:133::o;21489:156::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21581:11:::1;:22:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;21614:13:::1;:23:::0;21489:156::o;13076:35::-;;;;;;:::o;21343:138::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21429:20:::1;:44:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;21343:138::o;3271:97::-;2817:19;2825:10;2817:7;:19::i;:::-;2809:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3333:19:::1;;3355:5;3333:19:::0;;;:14:::1;:19;::::0;;;;:27;;;::::1;::::0;;3271:97::o;3828:173::-;2817:19;2825:10;2817:7;:19::i;:::-;2809:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3904:5:::1;:11:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;3926:19;;;-1:-1:-1;3926:19:0::1;::::0;;;;;;;;:26;;;::::1;::::0;;::::1;::::0;;;3968:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3828:173:::0;:::o;20202:347::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20299:23:::1;::::0;::::1;20317:4;20299:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;20336:4:0::1;::::0;::::1;20326:14:::0;;::::1;20336:4:::0;::::1;20326:14;;20299:41;20291:50;;;::::0;::::1;;20352:24;::::0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;20396:146:::1;;20421:11;::::0;:31:::1;::::0;;;;;:11:::1;:31:::0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20396:146;;;20483:11;::::0;::::1;20512:17:::0;;::::1;20483:11;20512:17:::0;;;:9:::1;:17;::::0;;;;;;20483:47;;;;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:47;;;;;;;;;;:11;;:47;::::1;;::::0;::::1;;;;::::0;::::1;20396:146;20202:347:::0;;:::o;20903:128::-;2986:24;2999:10;2986:12;:24::i;:::-;2978:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20991:23:::1;::::0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;20903:128::o;13120:24::-;;;;;;:::o;3602:107::-;3682:19;;3658:4;3682:19;;;:14;:19;;;;;;;;;3602:107::o;487:192::-;573:7;609:12;601:6;;;;593:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;645:5:0;;;487:192::o;16051:996::-;16169:21;;;16143:4;16169:21;;;:13;:21;;;;;;;;16168:22;16160:31;;;;;;16202:6;;;;;:27;;-1:-1:-1;16210:19:0;;;;;;;:11;:19;;;;;;;;16202:27;:51;;;-1:-1:-1;16231:22:0;;;;;;;:11;:22;;;;;;;;16202:51;16199:108;;;16263:41;16278:6;16286:9;16297:6;16263:14;:41::i;:::-;16256:48;;;;16199:108;16331:28;16344:6;16352;16331:12;:28::i;:::-;16375:16;:14;:16::i;:::-;16372:35;;;16394:10;:8;:10::i;:::-;16439:53;;;;;;;;;;;;;;;;;;;;:17;;;-1:-1:-1;16439:17:0;;;:9;:17;;;;;;;;:53;;16461:6;;16439:21;:53::i;:::-;16419:17;;;;;;;:9;:17;;;;;:73;;;;16530:31;16429:6;16551:9;16530:13;:31::i;:::-;:66;;16590:6;16530:66;;;16564:23;16572:6;16580;16564:7;:23::i;:::-;16630:20;;;;;;;:9;:20;;;;;;16505:91;;-1:-1:-1;16630:40:0;;16505:91;16630:24;:40::i;:::-;16607:20;;;;;;;;:9;:20;;;;;;;;:63;;;;16687:24;;;;;:16;:24;;;;;;;16683:96;;16718:11;;;16747:17;;;16718:11;16747:17;;;:9;:17;;;;;;;16718:47;;;;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;16714:63;;16793:27;;;;;;;:16;:27;;;;;;;;16789:105;;16827:11;;;16859:20;;;16827:11;16859:20;;;:9;:20;;;;;;;16827:53;;;;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;16823:69;;16910:11;;16930:14;;16910:35;;;;;;;;;;;;;;:11;;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;16906:51;16991:9;16974:43;;16983:6;16974:43;;;17002:14;16974:43;;;;;;;;;;;;;;;;;;-1:-1:-1;17035:4:0;;16051:996;-1:-1:-1;;;;16051:996:0:o;345:136::-;403:7;430:43;434:1;437;430:43;;;;;;;;;;;;;;;;;:3;:43::i;941:132::-;999:7;1026:39;1030:1;1033;1026:39;;;;;;;;;;;;;;;;;:3;:39::i;17059:551::-;17189:53;;;;;;;;;;;;;;;;;;;;:17;;;17152:4;17189:17;;;:9;:17;;;;;;;:53;;17211:6;;17189:21;:53::i;:::-;17169:17;;;;;;;;:9;:17;;;;;;:73;;;;17276:20;;;;;;;:32;;17301:6;17276:24;:32::i;:::-;17253:20;;;;;;;;:9;:20;;;;;;;;:55;;;;17323:24;;;;;:16;:24;;;;;;;17319:96;;17354:11;;;17383:17;;;17354:11;17383:17;;;:9;:17;;;;;;;17354:47;;;;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;17350:63;;17429:27;;;;;;;:16;:27;;;;;;;;17425:105;;17463:11;;;17495:20;;;17463:11;17495:20;;;:9;:20;;;;;;;17463:53;;;;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;17459:69;;17562:9;17545:35;;17554:6;17545:35;;;17573:6;17545:35;;;;;;;;;;;;;;;;;;-1:-1:-1;17598:4:0;17059:551;;;;;:::o;158:181::-;216:7;248:5;;;272:6;;;;264:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17618:202;17716:10;;17729:1;17716:14;17700:12;:30;17697:116;;17750:12;;17740:6;:22;;:49;;;-1:-1:-1;17766:23:0;;;;;;;:15;:23;;;;;;;;17740:49;17732:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18555:197;18642:4;;18604;;18642;;18628:10;:18;;;;:38;;-1:-1:-1;18660:6:0;;;;18659:7;18628:38;:62;;;;-1:-1:-1;18679:11:0;;;;18628:62;:116;;;;-1:-1:-1;;18731:13:0;;18721:4;18703:24;;;;:9;:24;;;;;;:41;;;18555:197::o;18760:860::-;13436:6;:13;;;;13445:4;13436:13;;;:6;18832:24:::1;18850:4;18832:9;:24::i;:::-;18951:16;::::0;;18965:1:::1;18951:16:::0;;;;;::::1;::::0;;18809:47;;-1:-1:-1;18891:21:0::1;::::0;18867::::1;::::0;18951:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18951:16:0::1;18927:40;;18996:4;18978;18983:1;18978:7;;;;;;;;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19022:4:::1;::::0;19012:7;;19022:4;::::1;::::0;19012;;19022;;19012:7;::::1;;;;;;;;;;:14;;;;;;;;;::::0;::::1;19039:6;;;;;;;;;;;:57;;;19111:12;19138:1;19154:4;19181;19201:15;19039:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19240:17;19260:21;19240:41;;19294:27;19324:42;19357:8;;19324:28;19338:13;;19324:9;:13;;:28;;;;:::i;:::-;:32:::0;::::1;:42::i;:::-;19294:72;;19377:26;19406:41;19438:8;;19406:27;19420:12;;19406:9;:13;;:27;;;;:::i;:41::-;19377:70;;19464:11;;;;;;;;;;;:19;;;19491;19464:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;19460:65:::0;19543:20:::1;::::0;19535:77:::1;::::0;19543:20:::1;::::0;;::::1;::::0;19602:5:::1;::::0;19577:18;;19543:20:::1;19535:77:::0;19543:20;19535:77;19577:18;19543:20;19602:5;19535:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13454:6:0;:14;;;;;;-1:-1:-1;;;;;;;18760:860:0:o;17828:170::-;17934:19;;;17909:4;17934:19;;;:11;:19;;;;;;;;17933:20;:36;;;;;17968:1;17957:8;;:12;17933:36;:57;;;;-1:-1:-1;;17986:4:0;;;;;;17973:17;;;;;17828:170;-1:-1:-1;17828:170:0:o;18209:338::-;18276:7;18296:17;18316:45;18346:14;;18316:25;18327:13;:11;:13::i;:::-;18316:6;;:10;:25::i;:45::-;18419:4;18401:24;;;;:9;:24;;;;;;18296:65;;-1:-1:-1;18401:39:0;;18296:65;18401:28;:39::i;:::-;18392:4;18374:24;;;;:9;:24;;;;;;;;;:66;;;;18456:42;;;;;;;18392:4;;18374:24;18456:42;;;;;;;;;;;;;18518:21;:6;18529:9;18518:10;:21::i;:::-;18511:28;18209:338;-1:-1:-1;;;;18209:338:0:o;1079:345::-;1165:7;1267:12;1260:5;1252:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1291:9;1307:1;1303;:5;;;;;;;1079:345;-1:-1:-1;;;;;1079:345:0:o;685:250::-;743:7;767:6;763:47;;-1:-1:-1;797:1:0;790:8;;763:47;834:5;;;838:1;834;:5;:1;858:5;;;;;:10;850:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://5cedead14e9fe0652909f23c19751da82055f98fb6a32fb0bfc6e1addde31b3c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.