Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 325 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21672120 | 4 days ago | IN | 0 ETH | 0.00039221 | ||||
Transfer | 20787918 | 127 days ago | IN | 0 ETH | 0.01506162 | ||||
Approve | 20261494 | 201 days ago | IN | 0 ETH | 0.00013948 | ||||
Approve | 20141698 | 218 days ago | IN | 0 ETH | 0.00048684 | ||||
Approve | 18068165 | 508 days ago | IN | 0 ETH | 0.00063263 | ||||
Approve | 17154255 | 636 days ago | IN | 0 ETH | 0.00165103 | ||||
Approve | 17109196 | 643 days ago | IN | 0 ETH | 0.00159698 | ||||
Approve | 16937661 | 667 days ago | IN | 0 ETH | 0.0007041 | ||||
Approve | 15616370 | 852 days ago | IN | 0 ETH | 0.00037181 | ||||
Approve | 15405923 | 884 days ago | IN | 0 ETH | 0.00089843 | ||||
Approve | 14771452 | 987 days ago | IN | 0 ETH | 0.00106537 | ||||
Approve | 14771452 | 987 days ago | IN | 0 ETH | 0.00106537 | ||||
Approve | 14248752 | 1069 days ago | IN | 0 ETH | 0.00106958 | ||||
Approve | 13613864 | 1168 days ago | IN | 0 ETH | 0.00377718 | ||||
Approve | 13556633 | 1177 days ago | IN | 0 ETH | 0.00334305 | ||||
Approve | 13214660 | 1230 days ago | IN | 0 ETH | 0.00384499 | ||||
Approve | 13172633 | 1237 days ago | IN | 0 ETH | 0.00237586 | ||||
Approve | 12938833 | 1273 days ago | IN | 0 ETH | 0.00130191 | ||||
Approve | 12914552 | 1277 days ago | IN | 0 ETH | 0.00040619 | ||||
Set Swap Back Se... | 12912925 | 1277 days ago | IN | 0 ETH | 0.00075067 | ||||
Transfer | 12912881 | 1277 days ago | IN | 0 ETH | 0.02924288 | ||||
Set Swap Back Se... | 12912833 | 1277 days ago | IN | 0 ETH | 0.00087612 | ||||
Approve | 12909697 | 1277 days ago | IN | 0 ETH | 0.00120892 | ||||
Approve | 12909370 | 1278 days ago | IN | 0 ETH | 0.00055126 | ||||
Approve | 12908132 | 1278 days ago | IN | 0 ETH | 0.00122752 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
20787918 | 127 days ago | 0.0299585 ETH | ||||
20787918 | 127 days ago | 0.00149792 ETH | ||||
20787918 | 127 days ago | 0.03145643 ETH | ||||
12912881 | 1277 days ago | 1.00028988 ETH | ||||
12912881 | 1277 days ago | 0.05001449 ETH | ||||
12912881 | 1277 days ago | 1.05030438 ETH | ||||
12907115 | 1278 days ago | 9.65296379 ETH | ||||
12907115 | 1278 days ago | 0.48264818 ETH | ||||
12907115 | 1278 days ago | 10.13561198 ETH | ||||
12907007 | 1278 days ago | 0.34931557 ETH | ||||
12907007 | 1278 days ago | 0.01746577 ETH | ||||
12907007 | 1278 days ago | 0.36678135 ETH | ||||
12906729 | 1278 days ago | 0.36379211 ETH | ||||
12906729 | 1278 days ago | 0.0181896 ETH | ||||
12906729 | 1278 days ago | 0.38198171 ETH | ||||
12906716 | 1278 days ago | 0.39085478 ETH | ||||
12906716 | 1278 days ago | 0.01954273 ETH | ||||
12906716 | 1278 days ago | 0.41039752 ETH | ||||
12906516 | 1278 days ago | 0.40155241 ETH | ||||
12906516 | 1278 days ago | 0.02007762 ETH | ||||
12906516 | 1278 days ago | 0.42163003 ETH | ||||
12906292 | 1278 days ago | 0.41708195 ETH | ||||
12906292 | 1278 days ago | 0.02085409 ETH | ||||
12906292 | 1278 days ago | 0.43793605 ETH | ||||
12905890 | 1278 days ago | 0.39278375 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DynamicRewardToken
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-26 */ /* Tokenomics: * 8% ETH reflection * 4% marketing wallet * 4% auto liquidity * Max TX of 1% of supply */ //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 IERC20 { 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 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 setNewReward(address newRewardToken) external; 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; uint currRewardId; } IERC20 rewardToken = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7); //Start with USDT uint rewardId = 0; 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 hours; uint256 public minDistribution = 1 * (10 ** 18) / (100); // Minimum sending is 0.1 rewardToken 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 setNewReward(address newRewardToken) external override onlyToken { require(address(rewardToken) != newRewardToken, "New reward token must be different from current reward"); rewardToken = IERC20(newRewardToken); totalDividends = rewardToken.balanceOf(address(this)); if(totalShares > 0) { dividendsPerShare = dividendsPerShareAccuracyFactor.mul(totalDividends).div(totalShares); } rewardId = rewardId + 1; } 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); } receive() external payable { deposit(); } function deposit() public payable override { uint256 balanceBefore = rewardToken.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(rewardToken); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}( 0, path, address(this), block.timestamp ); uint256 amount = rewardToken.balanceOf(address(this)).sub(balanceBefore); totalDividends = totalDividends.add(amount); if(totalShares > 0) { 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 returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if(shares[shareholder].amount == 0){ return; } uint256 amount = getUnpaidEarnings(shareholder); if(amount > 0){ totalDistributed = totalDistributed.add(amount); rewardToken.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount); shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount); } } function claimDividend() external { distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public returns (uint256) { if(shares[shareholder].amount == 0){ return 0; } uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount); if(shares[shareholder].currRewardId != rewardId) { shares[shareholder].currRewardId = rewardId; shares[shareholder].totalExcluded = 0; shares[shareholder].totalRealised = 0; } 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 DynamicRewardToken is IERC20, Auth { using SafeMath for uint256; address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "MYSTERIO | t.me/MysterioToken"; string constant _symbol = "MYSTERIO"; uint8 constant _decimals = 9; uint256 _totalSupply = 1000000000000 * (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; uint256 reflectionFee = 8; uint256 marketingFee = 4; uint256 liquidFee = 4; uint256 totalFee = 16; address public marketingFeeReceiver; IDEXRouter public router; address public pair; DividendDistributor public distributor; uint256 distributorGas = 500000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 20000; // 0.005% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event AutoLiquify(uint256 amountETH, uint256 amount); 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[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; marketingFeeReceiver = msg.sender; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _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 transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != uint256(-1)){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } checkTxLimit(sender, amount); if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, 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); emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(100); _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 = swapThreshold; uint256 halfLiquid = amountToSwap.mul(liquidFee.div(2)).div(totalFee); amountToSwap = amountToSwap.sub(halfLiquid); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 amountETHReflection = amountETH.mul(reflectionFee).div(totalFee.sub(liquidFee.div(2))); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee.sub(liquidFee.div(2))); uint256 amountETHLiquid = amountETH.sub(amountETHReflection).sub(amountETHMarketing); try distributor.deposit{value: amountETHReflection}() {} catch {} payable(marketingFeeReceiver).transfer(amountETHMarketing); if(halfLiquid > 0){ router.addLiquidityETH{value: amountETHLiquid}( address(this), halfLiquid, 0, 0, marketingFeeReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquid, halfLiquid); } } function setTxLimit(uint256 amount) external authorized { require(amount >= _totalSupply / 1000, "Check minimum MaxTx amount"); _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 setIsTxLimitExempt(address holder, bool exempt) external authorized { isTxLimitExempt[holder] = exempt; } function setFees(uint256 _reflectionFee, uint256 _marketingFee, uint256 _liquidFee) external authorized { reflectionFee = _reflectionFee; marketingFee = _marketingFee; liquidFee = _liquidFee; totalFee = _reflectionFee.add(_marketingFee).add(_liquidFee); } function setMarketingFeeReceivers(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 setNewRewardToken(address _newRewardToken) external authorized { distributor.setNewReward(_newRewardToken); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000); 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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidFee","type":"uint256"}],"name":"setFees","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":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setMarketingFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRewardToken","type":"address"}],"name":"setNewRewardToken","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 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
608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a64e8d4a5100002600555606460055481620000fd57fe5b046006556008600c556004600d556004600e556010600f556207a1206014556001601560006101000a81548160ff021916908315150217905550614e20600554816200014557fe5b046016553480156200015657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ae57600080fd5b505afa158015620002c3573d6000803e3d6000fd5b505050506040513d6020811015620002da57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200039457600080fd5b505af1158015620003a9573d6000803e3d6000fd5b505050506040513d6020811015620003c057600080fd5b8101908080519060200190929190505050601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005059062000924565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801562000542573d6000803e3d6000fd5b50601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a362000932565b611db68062003e8883390190565b61354680620009426000396000f3fe6080604052600436106101fd5760003560e01c80639d1944f51161010d578063df20fd49116100a0578063f35ca3651161006f578063f35ca36514610b51578063f708a64f14610ba2578063f84ba65d14610bff578063f887ea4014610c5c578063fe9fbb8014610c9d57610204565b8063df20fd4914610a27578063e96fada214610a6e578063f0b37c0414610aaf578063f2fde38b14610b0057610204565b8063b8e94b63116100dc578063b8e94b63146108c1578063bfe1092814610912578063cec10c1114610953578063dd62ed3e146109a257610204565b80639d1944f514610783578063a8aa1b31146107be578063a9059cbb146107ff578063b6a5d7de1461087057610204565b8063313ce567116101905780636ddd17131161015f5780636ddd1713146105f557806370a08231146106225780637d1db4a514610687578063893d20e8146106b257806395d89b41146106f357610204565b8063313ce567146104c8578063571ac8b0146104f65780635c85974f1461055d578063658d4b7f1461059857610204565b806323b872dd116101cc57806323b872dd146103605780632b112e49146103f15780632d48e8961461041c5780632f54bf6e1461046157610204565b80630445b6671461020957806306fdde0314610234578063095ea7b3146102c457806318160ddd1461033557610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610d04565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b50610249610d0a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028957808201518184015260208101905061026e565b50505050905090810190601f1680156102b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d057600080fd5b5061031d600480360360408110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d47565b60405180821515815260200191505060405180910390f35b34801561034157600080fd5b5061034a610e39565b6040518082815260200191505060405180910390f35b34801561036c57600080fd5b506103d96004803603606081101561038357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e43565b60405180821515815260200191505060405180910390f35b3480156103fd57600080fd5b50610406611043565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b5061045f6004803603604081101561043f57600080fd5b8101908080359060200190929190803590602001909291905050506110c5565b005b34801561046d57600080fd5b506104b06004803603602081101561048457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d9565b60405180821515815260200191505060405180910390f35b3480156104d457600080fd5b506104dd611232565b604051808260ff16815260200191505060405180910390f35b34801561050257600080fd5b506105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123b565b60405180821515815260200191505060405180910390f35b34801561056957600080fd5b506105966004803603602081101561058057600080fd5b810190808035906020019092919050505061126e565b005b3480156105a457600080fd5b506105f3600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611376565b005b34801561060157600080fd5b5061060a61144c565b60405180821515815260200191505060405180910390f35b34801561062e57600080fd5b506106716004803603602081101561064557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145f565b6040518082815260200191505060405180910390f35b34801561069357600080fd5b5061069c6114a8565b6040518082815260200191505060405180910390f35b3480156106be57600080fd5b506106c76114ae565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ff57600080fd5b506107086114d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561078f57600080fd5b506107bc600480360360208110156107a657600080fd5b8101908080359060200190929190505050611514565b005b3480156107ca57600080fd5b506107d36115a8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080b57600080fd5b506108586004803603604081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ce565b60405180821515815260200191505060405180910390f35b34801561087c57600080fd5b506108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e3565b005b3480156108cd57600080fd5b50610910600480360360208110156108e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b8565b005b34801561091e57600080fd5b506109276117d9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561095f57600080fd5b506109a06004803603606081101561097657600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506117ff565b005b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118bf565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a6c60048036036040811015610a4a57600080fd5b8101908080351515906020019092919080359060200190929190505050611946565b005b348015610a7a57600080fd5b50610a836119e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610abb57600080fd5b50610afe60048036036020811015610ad257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0c565b005b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae2565b005b348015610b5d57600080fd5b50610ba060048036036020811015610b7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c44565b005b348015610bae57600080fd5b50610bfd60048036036040811015610bc557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d03565b005b348015610c0b57600080fd5b50610c5a60048036036040811015610c2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061200e565b005b348015610c6857600080fd5b50610c716120e4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cec60048036036020811015610cc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061210a565b60405180821515815260200191505060405180910390f35b60165481565b60606040518060400160405280601d81526020017f4d5953544552494f207c20742e6d652f4d7973746572696f546f6b656e000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461102f57610fae826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103a848484612220565b90509392505050565b60006110c0611073600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661145f565b6110b26110a1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661145f565b60055461276f90919063ffffffff16565b61276f90919063ffffffff16565b905090565b6110ce3361210a565b611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156111bd57600080fd5b505af11580156111d1573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000611267827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d47565b9050919050565b6112773361210a565b6112e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e8600554816112f657fe5b0481101561136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436865636b206d696e696d756d204d6178547820616d6f756e7400000000000081525060200191505060405180910390fd5b8060068190555050565b61137f3361210a565b6113f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4d5953544552494f000000000000000000000000000000000000000000000000815250905090565b61151d3361210a565b61158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b0811061159e57600080fd5b8060148190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115db338484612220565b905092915050565b6115ec336111d9565b61165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116c13361210a565b611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321ccdee6826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156117be57600080fd5b505af11580156117d2573d6000803e3d6000fd5b5050505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118083361210a565b61187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600c8190555081600d8190555080600e819055506118b4816118a684866127b990919063ffffffff16565b6127b990919063ffffffff16565b600f81905550505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194f3361210a565b6119c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601560006101000a81548160ff021916908315150217905550806016819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a15336111d9565b611a87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611aeb336111d9565b611b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611c4d3361210a565b611cbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d0c3361210a565b611d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e085750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611e1157600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611f1f57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b5050505061200a565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ff157600080fd5b505af1158015612005573d6000803e3d6000fd5b505050505b5050565b6120173361210a565b612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061220d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121d25780820151818401526020810190506121b7565b50505050905090810190601f1680156121ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601760009054906101000a900460ff161561224957612242848484612841565b9050612768565b6122538483612a14565b61225b612ae4565b1561226957612268612bbb565b5b6122f2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612340856131be565b61234a5782612356565b612355858585613215565b5b90506123aa81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252c57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561251057600080fd5b505af1925050508015612521575060015b61252a5761252b565b5b5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661266b57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561264f57600080fd5b505af1925050508015612660575060015b6126695761266a565b5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796014546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156126e257600080fd5b505af19250505080156126f3575060015b6126fc576126fd565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006127b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612160565b905092915050565b600080828401905083811015612837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128cc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061296182600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481111580612a6e5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612b515750601760009054906101000a900460ff16155b8015612b695750601560009054906101000a900460ff165b8015612bb65750601654600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600060165490506000612c1b600f54612c0d612bfe6002600e5461335990919063ffffffff16565b856133a390919063ffffffff16565b61335990919063ffffffff16565b9050612c30818361276f90919063ffffffff16565b91506000600267ffffffffffffffff81118015612c4c57600080fd5b50604051908082528060200260200182016040528015612c7b5781602001602082028036833780820191505090505b5090503081600081518110612c8c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612cf657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612df9578082015181840152602081019050612dde565b505050509050019650505050505050600060405180830381600087803b158015612e2257600080fd5b505af1158015612e36573d6000803e3d6000fd5b505050506000612e4f824761276f90919063ffffffff16565b90506000612ea3612e80612e6f6002600e5461335990919063ffffffff16565b600f5461276f90919063ffffffff16565b612e95600c54856133a390919063ffffffff16565b61335990919063ffffffff16565b90506000612ef7612ed4612ec36002600e5461335990919063ffffffff16565b600f5461276f90919063ffffffff16565b612ee9600d54866133a390919063ffffffff16565b61335990919063ffffffff16565b90506000612f2082612f12858761276f90919063ffffffff16565b61276f90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f8c57600080fd5b505af193505050508015612f9e575060015b612fa757612fa8565b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613010573d6000803e3d6000fd5b50600087111561319957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561310657600080fd5b505af115801561311a573d6000803e3d6000fd5b50505050506040513d606081101561313157600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051808381526020018281526020019250505060405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806132406064613232600f54866133a390919063ffffffff16565b61335990919063ffffffff16565b905061329481600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361334f818461276f90919063ffffffff16565b9150509392505050565b600061339b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613429565b905092915050565b6000808314156133b65760009050613423565b60008284029050828482816133c757fe5b041461341e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134f06021913960400191505060405180910390fd5b809150505b92915050565b600080831182906134d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561349a57808201518184015260208101905061347f565b50505050905090810190601f1680156134c75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134e157fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122086c732bd16ab96f1d9b2b15d6deeb73dad44196e84ad64d491581c80a9d48bf164736f6c63430007060033608060405273dac17f958d2ee523a2206206994597c13d831ec7600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060025573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600d55610e10600e55662386f26fc10000600f553480156100e357600080fd5b50604051611db6380380611db68339818101604052602081101561010657600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561016657737a250d5630b4cf539739df2c5dacb4c659f2488d610168565b805b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611bbe806101f86000396000f3fe6080604052600436106100ec5760003560e01c8063997664d71161008a578063efca2eed11610059578063efca2eed146103b1578063f0fc6bca146103dc578063ffb2c479146103f3578063ffd49c841461042e576100fb565b8063997664d7146102d7578063ce7c2ac214610302578063d0e30db01461037c578063e2d2e21914610386576100fb565b806328fd3198116100c657806328fd3198146101d75780632d48e8961461023c5780633a98ef39146102815780634fab0ae8146102ac576100fb565b806311ce023d1461010057806314b6ca961461012b57806321ccdee614610186576100fb565b366100fb576100f9610459565b005b600080fd5b34801561010c57600080fd5b50610115610888565b6040518082815260200191505060405180910390f35b34801561013757600080fd5b506101846004803603604081101561014e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061088e565b005b34801561019257600080fd5b506101d5600480360360208110156101a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4d565b005b3480156101e357600080fd5b50610226600480360360208110156101fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da3565b6040518082815260200191505060405180910390f35b34801561024857600080fd5b5061027f6004803603604081101561025f57600080fd5b810190808035906020019092919080359060200190929190505050610fe2565b005b34801561028d57600080fd5b5061029661104c565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102c1611052565b6040518082815260200191505060405180910390f35b3480156102e357600080fd5b506102ec611058565b6040518082815260200191505060405180910390f35b34801561030e57600080fd5b506103516004803603602081101561032557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061105e565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b610384610459565b005b34801561039257600080fd5b5061039b61108e565b6040518082815260200191505060405180910390f35b3480156103bd57600080fd5b506103c6611094565b6040518082815260200191505060405180910390f35b3480156103e857600080fd5b506103f161109a565b005b3480156103ff57600080fd5b5061042c6004803603602081101561041657600080fd5b81019080803590602001909291905050506110a5565b005b34801561043a57600080fd5b5061044361121f565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d602081101561050e57600080fd5b810190808051906020019092919050505090506000600267ffffffffffffffff8111801561053b57600080fd5b5060405190808252806020026020018201604052801561056a5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061059d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061060757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156106ff5780820151818401526020810190506106e4565b50505050905001955050505050506000604051808303818588803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b5050505050600061081783600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156107ce57600080fd5b505afa1580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b810190808051906020019092919050505061122590919063ffffffff16565b905061082e81600a5461126f90919063ffffffff16565b600a81905550600060095411156108835761087c61086b60095461085d84600d546112f790919063ffffffff16565b61137d90919063ffffffff16565b600c5461126f90919063ffffffff16565b600c819055505b505050565b600d5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108e657600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111561093b5761093a826113c7565b5b60008111801561098d57506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156109a05761099b8261168d565b610a02565b6000811480156109f257506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b15610a0157610a008261173c565b5b5b610a6b81610a5d600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460095461122590919063ffffffff16565b61126f90919063ffffffff16565b60098190555080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550610b03600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611915565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611b536036913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d1657600080fd5b505afa158015610d2a573d6000803e3d6000fd5b505050506040513d6020811015610d4057600080fd5b8101908080519060200190929190505050600a8190555060006009541115610d9457610d8d600954610d7f600a54600d546112f790919063ffffffff16565b61137d90919063ffffffff16565b600c819055505b60016002540160028190555050565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610df85760009050610fdd565b6000610e45600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611915565b9050600254600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414610f6c57600254600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050808211610fc557600092505050610fdd565b610fd8818361122590919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103a57600080fd5b81600e8190555080600f819055505050565b60095481565b600f5481565b600a5481565b60086020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600c5481565b600b5481565b6110a3336113c7565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110fd57600080fd5b600060058054905090506000811415611116575061121c565b6000805a905060005b848310801561112d57508381105b156112175783601054106111445760006010819055505b61118660056010548154811061115657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611947565b156111ce576111cd60056010548154811061119d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113c7565b5b6111f36111e45a8461122590919063ffffffff16565b8461126f90919063ffffffff16565b92505a9150601060008154809291906001019190505550808060010191505061111f565b505050505b50565b600e5481565b600061126783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ab565b905092915050565b6000808284019050838110156112ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561130a5760009050611377565b600082840290508284828161131b57fe5b0414611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b326021913960400191505060405180910390fd5b809150505b92915050565b60006113bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a6b565b905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156114175761168a565b600061142282610da3565b905060008111156116885761144281600b5461126f90919063ffffffff16565b600b81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114db57600080fd5b505af11580156114ef573d6000803e3d6000fd5b505050506040513d602081101561150557600080fd5b81019080805190602001909291905050505042600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115b081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461126f90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611641600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611915565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600580549050600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60056001600580549050038154811061175157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106117c857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546006600060056001600580549050038154811061186957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060058054806118dd57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000611940600d54611932600c54856112f790919063ffffffff16565b61137d90919063ffffffff16565b9050919050565b600042600e54600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156119a45750600f546119a283610da3565b115b9050919050565b6000838311158290611a58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a1d578082015181840152602081019050611a02565b50505050905090810190601f168015611a4a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611b17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611adc578082015181840152602081019050611ac1565b50505050905090810190601f168015611b095780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611b2357fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e65772072657761726420746f6b656e206d75737420626520646966666572656e742066726f6d2063757272656e7420726577617264a26469706673582212202fe6a7e41ffac9f5926b457a74637c76b78632c925ed0ee24d8065e8cef9cad864736f6c63430007060033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c80639d1944f51161010d578063df20fd49116100a0578063f35ca3651161006f578063f35ca36514610b51578063f708a64f14610ba2578063f84ba65d14610bff578063f887ea4014610c5c578063fe9fbb8014610c9d57610204565b8063df20fd4914610a27578063e96fada214610a6e578063f0b37c0414610aaf578063f2fde38b14610b0057610204565b8063b8e94b63116100dc578063b8e94b63146108c1578063bfe1092814610912578063cec10c1114610953578063dd62ed3e146109a257610204565b80639d1944f514610783578063a8aa1b31146107be578063a9059cbb146107ff578063b6a5d7de1461087057610204565b8063313ce567116101905780636ddd17131161015f5780636ddd1713146105f557806370a08231146106225780637d1db4a514610687578063893d20e8146106b257806395d89b41146106f357610204565b8063313ce567146104c8578063571ac8b0146104f65780635c85974f1461055d578063658d4b7f1461059857610204565b806323b872dd116101cc57806323b872dd146103605780632b112e49146103f15780632d48e8961461041c5780632f54bf6e1461046157610204565b80630445b6671461020957806306fdde0314610234578063095ea7b3146102c457806318160ddd1461033557610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e610d04565b6040518082815260200191505060405180910390f35b34801561024057600080fd5b50610249610d0a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028957808201518184015260208101905061026e565b50505050905090810190601f1680156102b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d057600080fd5b5061031d600480360360408110156102e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d47565b60405180821515815260200191505060405180910390f35b34801561034157600080fd5b5061034a610e39565b6040518082815260200191505060405180910390f35b34801561036c57600080fd5b506103d96004803603606081101561038357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e43565b60405180821515815260200191505060405180910390f35b3480156103fd57600080fd5b50610406611043565b6040518082815260200191505060405180910390f35b34801561042857600080fd5b5061045f6004803603604081101561043f57600080fd5b8101908080359060200190929190803590602001909291905050506110c5565b005b34801561046d57600080fd5b506104b06004803603602081101561048457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d9565b60405180821515815260200191505060405180910390f35b3480156104d457600080fd5b506104dd611232565b604051808260ff16815260200191505060405180910390f35b34801561050257600080fd5b506105456004803603602081101561051957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061123b565b60405180821515815260200191505060405180910390f35b34801561056957600080fd5b506105966004803603602081101561058057600080fd5b810190808035906020019092919050505061126e565b005b3480156105a457600080fd5b506105f3600480360360408110156105bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611376565b005b34801561060157600080fd5b5061060a61144c565b60405180821515815260200191505060405180910390f35b34801561062e57600080fd5b506106716004803603602081101561064557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145f565b6040518082815260200191505060405180910390f35b34801561069357600080fd5b5061069c6114a8565b6040518082815260200191505060405180910390f35b3480156106be57600080fd5b506106c76114ae565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ff57600080fd5b506107086114d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561078f57600080fd5b506107bc600480360360208110156107a657600080fd5b8101908080359060200190929190505050611514565b005b3480156107ca57600080fd5b506107d36115a8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080b57600080fd5b506108586004803603604081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ce565b60405180821515815260200191505060405180910390f35b34801561087c57600080fd5b506108bf6004803603602081101561089357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e3565b005b3480156108cd57600080fd5b50610910600480360360208110156108e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b8565b005b34801561091e57600080fd5b506109276117d9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561095f57600080fd5b506109a06004803603606081101561097657600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506117ff565b005b3480156109ae57600080fd5b50610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118bf565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610a6c60048036036040811015610a4a57600080fd5b8101908080351515906020019092919080359060200190929190505050611946565b005b348015610a7a57600080fd5b50610a836119e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610abb57600080fd5b50610afe60048036036020811015610ad257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0c565b005b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae2565b005b348015610b5d57600080fd5b50610ba060048036036020811015610b7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c44565b005b348015610bae57600080fd5b50610bfd60048036036040811015610bc557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d03565b005b348015610c0b57600080fd5b50610c5a60048036036040811015610c2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061200e565b005b348015610c6857600080fd5b50610c716120e4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ca957600080fd5b50610cec60048036036020811015610cc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061210a565b60405180821515815260200191505060405180910390f35b60165481565b60606040518060400160405280601d81526020017f4d5953544552494f207c20742e6d652f4d7973746572696f546f6b656e000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461102f57610fae826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61103a848484612220565b90509392505050565b60006110c0611073600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661145f565b6110b26110a1600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661145f565b60055461276f90919063ffffffff16565b61276f90919063ffffffff16565b905090565b6110ce3361210a565b611140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156111bd57600080fd5b505af11580156111d1573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000611267827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d47565b9050919050565b6112773361210a565b6112e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e8600554816112f657fe5b0481101561136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436865636b206d696e696d756d204d6178547820616d6f756e7400000000000081525060200191505060405180910390fd5b8060068190555050565b61137f3361210a565b6113f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4d5953544552494f000000000000000000000000000000000000000000000000815250905090565b61151d3361210a565b61158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b0811061159e57600080fd5b8060148190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115db338484612220565b905092915050565b6115ec336111d9565b61165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116c13361210a565b611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321ccdee6826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156117be57600080fd5b505af11580156117d2573d6000803e3d6000fd5b5050505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118083361210a565b61187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600c8190555081600d8190555080600e819055506118b4816118a684866127b990919063ffffffff16565b6127b990919063ffffffff16565b600f81905550505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194f3361210a565b6119c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601560006101000a81548160ff021916908315150217905550806016819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a15336111d9565b611a87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611aeb336111d9565b611b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611c4d3361210a565b611cbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d0c3361210a565b611d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e085750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611e1157600080fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611f1f57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b5050505061200a565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611ff157600080fd5b505af1158015612005573d6000803e3d6000fd5b505050505b5050565b6120173361210a565b612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061220d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121d25780820151818401526020810190506121b7565b50505050905090810190601f1680156121ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601760009054906101000a900460ff161561224957612242848484612841565b9050612768565b6122538483612a14565b61225b612ae4565b1561226957612268612bbb565b5b6122f2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612340856131be565b61234a5782612356565b612355858585613215565b5b90506123aa81600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252c57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561251057600080fd5b505af1925050508015612521575060015b61252a5761252b565b5b5b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661266b57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561264f57600080fd5b505af1925050508015612660575060015b6126695761266a565b5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796014546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156126e257600080fd5b505af19250505080156126f3575060015b6126fc576126fd565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b60006127b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612160565b905092915050565b600080828401905083811015612837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006128cc826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121609092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061296182600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481111580612a6e5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612b515750601760009054906101000a900460ff16155b8015612b695750601560009054906101000a900460ff165b8015612bb65750601654600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600060165490506000612c1b600f54612c0d612bfe6002600e5461335990919063ffffffff16565b856133a390919063ffffffff16565b61335990919063ffffffff16565b9050612c30818361276f90919063ffffffff16565b91506000600267ffffffffffffffff81118015612c4c57600080fd5b50604051908082528060200260200182016040528015612c7b5781602001602082028036833780820191505090505b5090503081600081518110612c8c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612cf657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612df9578082015181840152602081019050612dde565b505050509050019650505050505050600060405180830381600087803b158015612e2257600080fd5b505af1158015612e36573d6000803e3d6000fd5b505050506000612e4f824761276f90919063ffffffff16565b90506000612ea3612e80612e6f6002600e5461335990919063ffffffff16565b600f5461276f90919063ffffffff16565b612e95600c54856133a390919063ffffffff16565b61335990919063ffffffff16565b90506000612ef7612ed4612ec36002600e5461335990919063ffffffff16565b600f5461276f90919063ffffffff16565b612ee9600d54866133a390919063ffffffff16565b61335990919063ffffffff16565b90506000612f2082612f12858761276f90919063ffffffff16565b61276f90919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015612f8c57600080fd5b505af193505050508015612f9e575060015b612fa757612fa8565b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015613010573d6000803e3d6000fd5b50600087111561319957601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308a600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b15801561310657600080fd5b505af115801561311a573d6000803e3d6000fd5b50505050506040513d606081101561313157600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068188604051808381526020018281526020019250505060405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806132406064613232600f54866133a390919063ffffffff16565b61335990919063ffffffff16565b905061329481600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127b990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a361334f818461276f90919063ffffffff16565b9150509392505050565b600061339b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613429565b905092915050565b6000808314156133b65760009050613423565b60008284029050828482816133c757fe5b041461341e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134f06021913960400191505060405180910390fd5b809150505b92915050565b600080831182906134d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561349a57808201518184015260208101905061347f565b50505050905090810190601f1680156134c75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134e157fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122086c732bd16ab96f1d9b2b15d6deeb73dad44196e84ad64d491581c80a9d48bf164736f6c63430007060033
Deployed Bytecode Sourcemap
12717:9430:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13869:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15201:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15623:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14931:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16135:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22002:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21523:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3561:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15025:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15847:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20097:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20635:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13832:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15371:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13202:48;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15287:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15111:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21854:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13719:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15971:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3234:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21714:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13747:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20899:296;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15482:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21359:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13644:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3404:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3961:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21203:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20280:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20763:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13688:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3735:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13869:51;;;;:::o;15201:80::-;15249:13;15273:5;;;;;;;;;;;;;;;;;15266:12;;15201:80;:::o;15623:216::-;15698:4;15750:6;15715:11;:23;15727:10;15715:23;;;;;;;;;;;;;;;:32;15739:7;15715:32;;;;;;;;;;;;;;;:41;;;;15793:7;15772:37;;15781:10;15772:37;;;15802:6;15772:37;;;;;;;;;;;;;;;;;;15827:4;15820:11;;15623:216;;;;:::o;14931:88::-;14986:7;15004:12;;14997:19;;14931:88;:::o;16135:364::-;16235:4;16298:2;16255:11;:19;16267:6;16255:19;;;;;;;;;;;;;;;:31;16275:10;16255:31;;;;;;;;;;;;;;;;:46;16252:180;;16351:69;16387:6;16351:69;;;;;;;;;;;;;;;;;:11;:19;16363:6;16351:19;;;;;;;;;;;;;;;:31;16371:10;16351:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;16317:11;:19;16329:6;16317:19;;;;;;;;;;;;;;;:31;16337:10;16317:31;;;;;;;;;;;;;;;:103;;;;16252:180;16451:40;16465:6;16473:9;16484:6;16451:13;:40::i;:::-;16444:47;;16135:364;;;;;:::o;22002:142::-;22055:7;22082:54;22120:15;22130:4;;;;;;;;;;;22120:9;:15::i;:::-;22082:33;22099:15;22109:4;;;;;;;;;;;22099:9;:15::i;:::-;22082:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;22075:61;;22002:142;:::o;21523:183::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21633:11:::1;;;;;;;;;;;:35;;;21669:10;21681:16;21633:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21523:183:::0;;:::o;3561:103::-;3616:4;3651:5;;;;;;;;;;;3640:16;;:7;:16;;;3633:23;;3561:103;;;:::o;15025:80::-;15077:5;13129:1;15086:16;;15025:80;:::o;15847:116::-;15902:4;15926:29;15934:7;15951:2;15926:7;:29::i;:::-;15919:36;;15847:116;;;:::o;20097:175::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20197:4:::1;20182:12;;:19;;;;;;20172:6;:29;;20164:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20258:6;20243:12;:21;;;;20097:175:::0;:::o;20635:120::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20741:6:::1;20719:11;:19;20731:6;20719:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20635:120:::0;;:::o;13832:30::-;;;;;;;;;;;;;:::o;15371:105::-;15437:7;15455:9;:18;15465:7;15455:18;;;;;;;;;;;;;;;;15448:25;;15371:105;;;:::o;13202:48::-;;;;:::o;15287:78::-;15339:7;15357:5;;;;;;;;;;;15350:12;;15287:78;:::o;15111:84::-;15161:13;15185:7;;;;;;;;;;;;;;;;;15178:14;;15111:84;:::o;21854:136::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21944:6:::1;21938:3;:12;21930:21;;;::::0;::::1;;21979:3;21962:14;:20;;;;21854:136:::0;:::o;13719:19::-;;;;;;;;;;;;;:::o;15971:156::-;16051:4;16075:44;16089:10;16101:9;16112:6;16075:13;:44::i;:::-;16068:51;;15971:156;;;;:::o;3234:94::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3316:4:::1;3294:14:::0;:19:::1;3309:3;3294:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3234:94:::0;:::o;21714:132::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21797:11:::1;;;;;;;;;;;:24;;;21822:15;21797:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21714:132:::0;:::o;13747:38::-;;;;;;;;;;;;;:::o;20899:296::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21030:14:::1;21014:13;:30;;;;21070:13;21055:12;:28;;;;21106:10;21094:9;:22;;;;21138:49;21176:10;21138:33;21157:13;21138:14;:18;;:33;;;;:::i;:::-;:37;;:49;;;;:::i;:::-;21127:8;:60;;;;20899:296:::0;;;:::o;15482:133::-;15566:7;15584:11;:19;15596:6;15584:19;;;;;;;;;;;;;;;:28;15604:7;15584:28;;;;;;;;;;;;;;;;15577:35;;15482:133;;;;:::o;21359:156::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21465:8:::1;21451:11;;:22;;;;;;;;;;;;;;;;;;21500:7;21484:13;:23;;;;21359:156:::0;;:::o;13644:35::-;;;;;;;;;;;;;:::o;3404:97::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3488:5:::1;3466:14;:19;3481:3;3466:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3404:97:::0;:::o;3961:173::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4045:3:::1;4037:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4081:4;4059:14:::0;:19:::1;4074:3;4059:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4101:25;4122:3;4101:25;;;;;;;;;;;;;;;;;;;;3961:173:::0;:::o;21203:148::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21322:21:::1;21299:20;;:44;;;;;;;;;;;;;;;;;;21203:148:::0;:::o;20280:347::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20395:4:::1;20377:23;;:6;:23;;;;:41;;;;;20414:4;;;;;;;;;;;20404:14;;:6;:14;;;;20377:41;20369:50;;;::::0;::::1;;20457:6;20430:16;:24;20447:6;20430:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20477:6;20474:146;;;20499:11;;;;;;;;;;;:20;;;20520:6;20528:1;20499:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20474:146;;;20561:11;;;;;;;;;;;:20;;;20582:6;20590:9;:17;20600:6;20590:17;;;;;;;;;;;;;;;;20561:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20474:146;20280:347:::0;;:::o;20763:128::-;3119:24;3132:10;3119:12;:24::i;:::-;3111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20877:6:::1;20851:15;:23;20867:6;20851:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20763:128:::0;;:::o;13688:24::-;;;;;;;;;;;;;:::o;3735:107::-;3791:4;3815:14;:19;3830:3;3815:19;;;;;;;;;;;;;;;;;;;;;;;;;3808:26;;3735:107;;;:::o;620:192::-;706:7;739:1;734;:6;;742:12;726:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:9;782:1;778;:5;766:17;;803:1;796:8;;;620:192;;;;;:::o;16507:909::-;16599:4;16619:6;;;;;;;;;;;16616:63;;;16635:41;16650:6;16658:9;16669:6;16635:14;:41::i;:::-;16628:48;;;;16616:63;16699:28;16712:6;16720;16699:12;:28::i;:::-;16743:16;:14;:16::i;:::-;16740:35;;;16762:10;:8;:10::i;:::-;16740:35;16807:53;16829:6;16807:53;;;;;;;;;;;;;;;;;:9;:17;16817:6;16807:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16787:9;:17;16797:6;16787:17;;;;;;;;;;;;;;;:73;;;;16873:22;16898:21;16912:6;16898:13;:21::i;:::-;:67;;16959:6;16898:67;;;16922:34;16930:6;16938:9;16949:6;16922:7;:34::i;:::-;16898:67;16873:92;;16999:40;17024:14;16999:9;:20;17009:9;16999:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16976:9;:20;16986:9;16976:20;;;;;;;;;;;;;;;:63;;;;17056:16;:24;17073:6;17056:24;;;;;;;;;;;;;;;;;;;;;;;;;17052:96;;17087:11;;;;;;;;;;;:20;;;17108:6;17116:9;:17;17126:6;17116:17;;;;;;;;;;;;;;;;17087:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17083:63;;;;;;17052:96;17162:16;:27;17179:9;17162:27;;;;;;;;;;;;;;;;;;;;;;;;;17158:105;;17196:11;;;;;;;;;;;:20;;;17217:9;17228;:20;17238:9;17228:20;;;;;;;;;;;;;;;;17196:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17192:69;;;;;;17158:105;17279:11;;;;;;;;;;;:19;;;17299:14;;17279:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17275:51;;;;;;17360:9;17343:43;;17352:6;17343:43;;;17371:14;17343:43;;;;;;;;;;;;;;;;;;17404:4;17397:11;;;16507:909;;;;;;:::o;478:136::-;536:7;563:43;567:1;570;563:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;556:50;;478:136;;;;:::o;291:181::-;349:7;369:9;385:1;381;:5;369:17;;410:1;405;:6;;397:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:1;456:8;;;291:181;;;;:::o;17428:330::-;17521:4;17558:53;17580:6;17558:53;;;;;;;;;;;;;;;;;:9;:17;17568:6;17558:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17538:9;:17;17548:6;17538:17;;;;;;;;;;;;;;;:73;;;;17645:32;17670:6;17645:9;:20;17655:9;17645:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17622:9;:20;17632:9;17622:20;;;;;;;;;;;;;;;:55;;;;17710:9;17693:35;;17702:6;17693:35;;;17721:6;17693:35;;;;;;;;;;;;;;;;;;17746:4;17739:11;;17428:330;;;;;:::o;17766:166::-;17863:12;;17853:6;:22;;:49;;;;17879:15;:23;17895:6;17879:23;;;;;;;;;;;;;;;;;;;;;;;;;17853:49;17845:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17766:166;;:::o;18410:197::-;18459:4;18497;;;;;;;;;;;18483:18;;:10;:18;;;;:38;;;;;18515:6;;;;;;;;;;;18514:7;18483:38;:62;;;;;18534:11;;;;;;;;;;;18483:62;:116;;;;;18586:13;;18558:9;:24;18576:4;18558:24;;;;;;;;;;;;;;;;:41;;18483:116;18476:123;;18410:197;:::o;18615:1474::-;13986:4;13977:6;;:13;;;;;;;;;;;;;;;;;;18664:20:::1;18687:13;;18664:36;;18711:18;18732:48;18771:8;;18732:34;18749:16;18763:1;18749:9;;:13;;:16;;;;:::i;:::-;18732:12;:16;;:34;;;;:::i;:::-;:38;;:48;;;;:::i;:::-;18711:69;;18806:28;18823:10;18806:12;:16;;:28;;;;:::i;:::-;18791:43;;18847:21;18885:1;18871:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18847:40;;18916:4;18898;18903:1;18898:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;18942:4;;;;;;;;;;;18932;18937:1;18932:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;18959:21;18983;18959:45;;19017:6;;;;;;;;;;;:57;;;19089:12;19116:1;19132:4;19159;19179:15;19017:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19218:17;19238:40;19264:13;19238:21;:25;;:40;;;;:::i;:::-;19218:60;;19291:27;19321:64;19354:30;19367:16;19381:1;19367:9;;:13;;:16;;;;:::i;:::-;19354:8;;:12;;:30;;;;:::i;:::-;19321:28;19335:13;;19321:9;:13;;:28;;;;:::i;:::-;:32;;:64;;;;:::i;:::-;19291:94;;19396:26;19425:63;19457:30;19470:16;19484:1;19470:9;;:13;;:16;;;;:::i;:::-;19457:8;;:12;;:30;;;;:::i;:::-;19425:27;19439:12;;19425:9;:13;;:27;;;;:::i;:::-;:31;;:63;;;;:::i;:::-;19396:92;;19499:23;19525:58;19564:18;19525:34;19539:19;19525:9;:13;;:34;;;;:::i;:::-;:38;;:58;;;;:::i;:::-;19499:84;;19600:11;;;;;;;;;;;:19;;;19627;19600:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;19596:65;;;;;;19679:20;;;;;;;;;;;19671:38;;:58;19710:18;19671:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19758:1;19745:10;:14;19742:340;;;19775:6;;;;;;;;;;;:22;;;19805:15;19848:4;19872:10;19901:1;19921::::0;19941:20:::1;;;;;;;;;;;19980:15;19775:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20030:40;20042:15;20059:10;20030:40;;;;;;;;;;;;;;;;;;;;;;;;19742:340;13992:1;;;;;;;;14004:5:::0;13995:6;;:14;;;;;;;;;;;;;;;;;;18615:1474::o;17940:114::-;18002:4;18027:11;:19;18039:6;18027:19;;;;;;;;;;;;;;;;;;;;;;;;;18026:20;18019:27;;17940:114;;;:::o;18062:340::-;18147:7;18167:17;18187:29;18212:3;18187:20;18198:8;;18187:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;18167:49;;18256:39;18285:9;18256;:24;18274:4;18256:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18229:9;:24;18247:4;18229:24;;;;;;;;;;;;;;;:66;;;;18336:4;18311:42;;18320:6;18311:42;;;18343:9;18311:42;;;;;;;;;;;;;;;;;;18373:21;18384:9;18373:6;:10;;:21;;;;:::i;:::-;18366:28;;;18062:340;;;;;:::o;1074:132::-;1132:7;1159:39;1163:1;1166;1159:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1152:46;;1074:132;;;;:::o;818:250::-;876:7;905:1;900;:6;896:47;;;930:1;923:8;;;;896:47;955:9;971:1;967;:5;955:17;;1000:1;995;991;:5;;;;;;:10;983:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:1;1052:8;;;818:250;;;;;:::o;1212:345::-;1298:7;1397:1;1393;:5;1400:12;1385:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1424:9;1440:1;1436;:5;;;;;;1424:17;;1548:1;1541:8;;;1212:345;;;;;:::o
Swarm Source
ipfs://2fe6a7e41ffac9f5926b457a74637c76b78632c925ed0ee24d8065e8cef9cad8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,342.04 | 0.2882 | $963.17 |
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.