More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 110 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17855062 | 462 days ago | IN | 0 ETH | 0.00058206 | ||||
Approve | 17808196 | 468 days ago | IN | 0 ETH | 0.0023863 | ||||
Approve | 17808157 | 468 days ago | IN | 0 ETH | 0.00239904 | ||||
Approve | 17807694 | 469 days ago | IN | 0 ETH | 0.00076296 | ||||
Approve | 17807673 | 469 days ago | IN | 0 ETH | 0.00069992 | ||||
Approve | 17807415 | 469 days ago | IN | 0 ETH | 0.00080281 | ||||
Approve | 17807282 | 469 days ago | IN | 0 ETH | 0.00128155 | ||||
Approve | 17804532 | 469 days ago | IN | 0 ETH | 0.00091304 | ||||
Approve | 17801936 | 469 days ago | IN | 0 ETH | 0.00112321 | ||||
Approve | 17801928 | 469 days ago | IN | 0 ETH | 0.00110953 | ||||
Approve | 17795680 | 470 days ago | IN | 0 ETH | 0.00076184 | ||||
Approve | 17795405 | 470 days ago | IN | 0 ETH | 0.00084331 | ||||
Approve | 17786321 | 472 days ago | IN | 0 ETH | 0.00199517 | ||||
Approve | 17780468 | 472 days ago | IN | 0 ETH | 0.00107051 | ||||
Approve | 17764913 | 475 days ago | IN | 0 ETH | 0.00197054 | ||||
Approve | 17764798 | 475 days ago | IN | 0 ETH | 0.00288345 | ||||
Approve | 17758772 | 475 days ago | IN | 0 ETH | 0.00096935 | ||||
Approve | 17746244 | 477 days ago | IN | 0 ETH | 0.00071641 | ||||
Approve | 17732729 | 479 days ago | IN | 0 ETH | 0.00083904 | ||||
Approve | 17720538 | 481 days ago | IN | 0 ETH | 0.0015543 | ||||
Approve | 17720169 | 481 days ago | IN | 0 ETH | 0.0016906 | ||||
Approve | 17693745 | 484 days ago | IN | 0 ETH | 0.00162214 | ||||
Approve | 17692796 | 485 days ago | IN | 0 ETH | 0.0024599 | ||||
Approve | 17681761 | 486 days ago | IN | 0 ETH | 0.00074562 | ||||
Approve | 17681475 | 486 days ago | IN | 0 ETH | 0.00091905 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17807697 | 469 days ago | 0.00585509 ETH | ||||
17807697 | 469 days ago | 0.00195169 ETH | ||||
17807697 | 469 days ago | 0.00780679 ETH | ||||
17807417 | 469 days ago | 0.00733464 ETH | ||||
17807417 | 469 days ago | 0.00244488 ETH | ||||
17807417 | 469 days ago | 0.00977953 ETH | ||||
17795710 | 470 days ago | 0.0124916 ETH | ||||
17795710 | 470 days ago | 0.00416386 ETH | ||||
17795710 | 470 days ago | 0.01665547 ETH | ||||
17764931 | 475 days ago | 0.01163878 ETH | ||||
17764931 | 475 days ago | 0.00387959 ETH | ||||
17764931 | 475 days ago | 0.01551837 ETH | ||||
17764922 | 475 days ago | 0.01163878 ETH | ||||
17764922 | 475 days ago | 0.00387959 ETH | ||||
17764922 | 475 days ago | 0.01551837 ETH | ||||
17702855 | 483 days ago | 0.0161181 ETH | ||||
17702855 | 483 days ago | 0.0053727 ETH | ||||
17702855 | 483 days ago | 0.0214908 ETH | ||||
17653279 | 490 days ago | 0.01872313 ETH | ||||
17653279 | 490 days ago | 0.00624104 ETH | ||||
17653279 | 490 days ago | 0.02496417 ETH | ||||
17632408 | 493 days ago | 0.03234009 ETH | ||||
17632408 | 493 days ago | 0.01078003 ETH | ||||
17632408 | 493 days ago | 0.04312012 ETH | ||||
17610008 | 496 days ago | 0.02751376 ETH |
Loading...
Loading
Contract Name:
ElonWin
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2023-03-16 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; import "./SafeMath.sol"; 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); } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function 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 swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( 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 swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } contract ElonWin is IERC20 { mapping (address => uint256) private _tOwned; mapping (address => bool) lpPairs; uint256 private timeSinceLastPair = 0; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public isBot; uint256 constant private startingSupply = 50_000_000_000; string constant private _name = "ElonWin"; string constant private _symbol = "EWIN"; uint8 constant private _decimals = 18; uint256 constant private _tTotal = startingSupply * 10**_decimals; uint256 public tradingEnabledAt; using SafeMath for uint256; struct Fees { uint16 buyFee; uint16 sellFee; uint16 transferFee; } struct Ratios { uint16 marketing; uint16 jackpot; uint16 totalSwap; } Fees public _taxRates = Fees({ buyFee: 300, sellFee: 300, transferFee: 0 }); Ratios public _ratios = Ratios({ jackpot: 450, marketing: 150, totalSwap: 600 }); uint256 constant public maxBuyTaxes = 2000; uint256 constant public maxSellTaxes = 2000; uint256 constant public maxTransferTaxes = 2000; uint256 constant public maxRoundtripTax = 3000; uint256 constant masterTaxDivisor = 10000; IRouter02 public dexRouter; address public lpPair; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; struct TaxWallets { address payable marketing; address payable jackpot; } TaxWallets public _taxWallets = TaxWallets({ marketing: payable(0x2a7FD1010E4DD155B8eE6B56B69675f17129Baf7), jackpot: payable(0x648E38CF38fb1DBb9D980Efac86C3009277d639d) }); bool inSwap; bool public contractSwapEnabled = false; uint256 public swapThreshold; uint256 public swapAmount; bool public piContractSwapsEnabled; uint256 public piSwapPercent; bool public tradingEnabled = false; bool public _hasLiqBeenAdded = false; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ContractSwapEnabledUpdated(bool enabled); event AutoLiquify(uint256 amountCurrency, uint256 amountTokens); modifier lockTheSwap { inSwap = true; _; inSwap = false; } modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; } constructor () payable { // Set the owner. _owner = msg.sender; _tOwned[_owner] = _tTotal; emit Transfer(address(0), _owner, _tTotal); if (block.chainid == 56) { dexRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { dexRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) { dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Ropstein DAI 0xaD6D458402F60fD3Bd25163575031ACDce07538D } else if (block.chainid == 43114) { dexRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4); } else if (block.chainid == 250) { dexRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29); } else { revert(); } lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); lpPairs[lpPair] = true; _approve(_owner, address(dexRouter), type(uint256).max); _approve(address(this), address(dexRouter), type(uint256).max); _isExcludedFromFees[_owner] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[DEAD] = true; _liquidityHolders[_owner] = true; _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH) _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH) } address private _owner; function transferOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address."); require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address."); _isExcludedFromFees[_owner] = false; _isExcludedFromFees[newOwner] = true; if(balanceOf(_owner) > 0) { _finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true); } address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function renounceOwnership() external onlyOwner { _isExcludedFromFees[_owner] = false; address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred(oldOwner, address(0)); } receive() external payable {} function totalSupply() external pure override returns (uint256) { return _tTotal; } 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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approveContractContingency() public onlyOwner returns (bool) { _approve(address(this), address(dexRouter), type(uint256).max); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function setNewRouter(address newRouter) public onlyOwner { IRouter02 _newRouter = IRouter02(newRouter); address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH()); if (get_pair == address(0)) { lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH()); } else { lpPair = get_pair; } dexRouter = _newRouter; _approve(address(this), address(dexRouter), type(uint256).max); } function setLpPair(address pair, bool enabled) external onlyOwner { if (enabled == false) { lpPairs[pair] = false; } else { if (timeSinceLastPair != 0) { require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!"); } lpPairs[pair] = true; timeSinceLastPair = block.timestamp; } } function addRemoveBots(address[] memory accounts, bool[] memory value) public onlyOwner { require(accounts.length == value.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { isBot[accounts[i]] = value[i]; } } function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner { require(buyFee <= maxBuyTaxes && sellFee <= maxSellTaxes && transferFee <= maxTransferTaxes, "Cannot exceed maximums."); require(buyFee + sellFee <= maxRoundtripTax, "Cannot exceed roundtrip maximum."); _taxRates.buyFee = buyFee; _taxRates.sellFee = sellFee; _taxRates.transferFee = transferFee; } function setRatios(uint16 marketing, uint16 jackpot) external onlyOwner { _ratios.jackpot = jackpot; _ratios.marketing = marketing; _ratios.totalSwap = jackpot + marketing; uint256 total = _taxRates.buyFee + _taxRates.sellFee; require(_ratios.totalSwap <= total, "Cannot exceed sum of buy and sell fees."); } function setWallets(address payable marketing, address payable jackpot) external onlyOwner { _taxWallets.marketing = payable(marketing); _taxWallets.jackpot = payable(jackpot); } function isExcludedFromFees(address account) external view returns(bool) { return _isExcludedFromFees[account]; } function setExcludedFromFees(address account, bool enabled) public onlyOwner { _isExcludedFromFees[account] = enabled; } function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner { swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor; swapAmount = (_tTotal * amountPercent) / amountDivisor; require(swapThreshold <= swapAmount, "Threshold cannot be above amount."); require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI."); require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply."); } function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner { require(priceImpactSwapPercent <= 200, "Cannot set above 2%."); piSwapPercent = priceImpactSwapPercent; } function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner { contractSwapEnabled = swapEnabled; piContractSwapsEnabled = priceImpactSwapEnabled; emit ContractSwapEnabledUpdated(swapEnabled); } function _hasLimits(address from, address to) internal view returns (bool) { return from != _owner && to != _owner && tx.origin != _owner && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function enableTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); require(_hasLiqBeenAdded, "Liquidity must be added."); tradingEnabled = true; tradingEnabledAt = block.timestamp; swapThreshold = (balanceOf(lpPair) * 15) / 10000; swapAmount = (balanceOf(lpPair) * 30) / 10000; } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool buy = false; bool sell = false; bool other = false; if (lpPairs[from]) { buy = true; } else if (lpPairs[to]) { sell = true; } else { other = true; } if(_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } if(tradingEnabled && block.timestamp <= tradingEnabledAt.add(600) && !isBot[to]) { revert("Cannot buy yet"); } } if (sell) { if (!inSwap) { if (contractSwapEnabled) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { uint256 swapAmt = swapAmount; if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; } if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; } contractSwap(contractTokenBalance); } } } } return _finalizeTransfer(from, to, amount, buy, sell, other); } function contractSwap(uint256 contractTokenBalance) internal lockTheSwap { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 amtBalance = address(this).balance; bool success; uint256 jackpotBalance = (amtBalance * ratios.jackpot) / ratios.totalSwap; uint256 marketingBalance = amtBalance - jackpotBalance; if (ratios.marketing > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 35000}(""); } if (ratios.jackpot > 0) { (success,) = _taxWallets.jackpot.call{value: jackpotBalance, gas: 35000}(""); } } function _contractSwap(uint256 contractTokenBalance) external { Ratios memory ratios = _ratios; if (ratios.totalSwap == 0) { return; } if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) { _allowances[address(this)][address(dexRouter)] = type(uint256).max; } address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ); uint256 amtBalance = address(this).balance; bool success; uint256 jackpotBalance = (amtBalance * ratios.jackpot) / ratios.totalSwap; uint256 marketingBalance = amtBalance - jackpotBalance; if (ratios.marketing > 0) { (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 35000}(""); } if (ratios.jackpot > 0) { (success,) = _taxWallets.jackpot.call{value: jackpotBalance, gas: 35000}(""); } } function _checkLiquidityAdd(address from, address to) internal { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == lpPair) { _liquidityHolders[from] = true; _isExcludedFromFees[from] = true; _hasLiqBeenAdded = true; contractSwapEnabled = true; emit ContractSwapEnabledUpdated(true); } } function sweepContingency() external onlyOwner { require(!_hasLiqBeenAdded, "Cannot call after liquidity."); payable(_owner).transfer(address(this).balance); } function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner { require(accounts.length == amounts.length, "Lengths do not match."); for (uint8 i = 0; i < accounts.length; i++) { require(balanceOf(msg.sender) >= amounts[i]); _finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true); } } function _finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) { if (!_hasLiqBeenAdded) { _checkLiquidityAdd(from, to); if (!_hasLiqBeenAdded && _hasLimits(from, to) && !other) { revert("Pre-liquidity transfer protection."); } } bool takeFee = true; if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){ takeFee = false; } _tOwned[from] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount; _tOwned[to] += amountReceived; emit Transfer(from, to, amountReceived); return true; } function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) { uint256 currentFee; if (buy) { currentFee = _taxRates.buyFee; } else if (sell) { currentFee = _taxRates.sellFee; } else { currentFee = _taxRates.transferFee; } uint256 feeAmount = amount * currentFee / masterTaxDivisor; uint256 swapAmt = feeAmount; _tOwned[address(this)] += swapAmt; emit Transfer(from, address(this), swapAmt); return amount - feeAmount; } }
pragma solidity 0.8.20; // SPDX-License-Identifier: MIT 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/OpenZeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"contractTokenBalance","type":"uint256"}],"name":"_contractSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"jackpot","type":"uint16"},{"internalType":"uint16","name":"totalSwap","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"jackpot","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool[]","name":"value","type":"bool[]"}],"name":"addRemoveBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoundtripTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"jackpot","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"jackpot","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f600255604051806060016040528061012c61ffff16815260200161012c61ffff1681526020015f61ffff1681525060085f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff16021790555050506040518060600160405280609661ffff1681526020016101c261ffff16815260200161025861ffff1681525060095f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff16021790555050506040518060400160405280732a7fd1010e4dd155b8ee6b56b69675f17129baf773ffffffffffffffffffffffffffffffffffffffff16815260200173648e38cf38fb1dbb9d980efac86c3009277d639d73ffffffffffffffffffffffffffffffffffffffff16815250600c5f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505f600e60016101000a81548160ff0219169083151502179055505f60135f6101000a81548160ff0219169083151502179055505f601360016101000a81548160ff02191690831515021790555033601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002c4919062000f55565b640ba43b7400620002d6919062000fa5565b5f80601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003b9919062000f55565b640ba43b7400620003cb919062000fa5565b604051620003da919062001000565b60405180910390a36038460362000445577310ed43c718714eb63d5aa57b78b54704e256024e600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005ff565b60614603620004a85773d99d1c33f9fc3444f8101754abc46c52416550d1600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fe565b6001461480620004b85750600446145b80620004c45750600346145b80620004d05750600546145b156200053057737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fd565b61a86a460362000594577360ae616a2155ee3d9a68541ba4544862310933d4600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fc565b60fa4603620005f75773f491e7b69e4244ad4002bc14e878a34207e38c29600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fb565b5f80fd5b5b5b5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200066a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000690919062001080565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000716573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200073c919062001080565b306040518363ffffffff1660e01b81526004016200075c929190620010c1565b6020604051808303815f875af115801562000779573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200079f919062001080565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008c9601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bf860201b60201c565b6200091d30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bf860201b60201c565b600160055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73407993575c91ce7643a4d4ccacc9a98c36ee1bbe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73663a5c229c09b049e36dcc11a9b0d4a8eb9db21473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73dba68f07d1b7ca219f78ae8582c213d975c25caf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200116a565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c60906200114a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000cda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cd1906200114a565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000db6919062001000565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e4d5780860481111562000e255762000e2462000dc3565b5b600185161562000e355780820291505b808102905062000e458562000df0565b945062000e05565b94509492505050565b5f8262000e67576001905062000f39565b8162000e76575f905062000f39565b816001811462000e8f576002811462000e9a5762000ed0565b600191505062000f39565b60ff84111562000eaf5762000eae62000dc3565b5b8360020a91508482111562000ec95762000ec862000dc3565b5b5062000f39565b5060208310610133831016604e8410600b841016171562000f0a5782820a90508381111562000f045762000f0362000dc3565b5b62000f39565b62000f19848484600162000dfc565b9250905081840481111562000f335762000f3262000dc3565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000f618262000f40565b915062000f6e8362000f49565b925062000f9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e56565b905092915050565b5f62000fb18262000f40565b915062000fbe8362000f40565b925082820262000fce8162000f40565b9150828204841483151762000fe85762000fe762000dc3565b5b5092915050565b62000ffa8162000f40565b82525050565b5f602082019050620010155f83018462000fef565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200104a826200101f565b9050919050565b6200105c816200103e565b811462001067575f80fd5b50565b5f815190506200107a8162001051565b92915050565b5f602082840312156200109857620010976200101b565b5b5f620010a7848285016200106a565b91505092915050565b620010bb816200103e565b82525050565b5f604082019050620010d65f830185620010b0565b620010e56020830184620010b0565b9392505050565b5f82825260208201905092915050565b7f45524332303a205a65726f2041646472657373000000000000000000000000005f82015250565b5f62001132601383620010ec565b91506200113f82620010fc565b602082019050919050565b5f6020820190508181035f830152620011638162001124565b9050919050565b615f7680620011785f395ff3fe60806040526004361061028b575f3560e01c80636492048011610159578063b7df8b36116100c0578063dd62ed3e11610079578063dd62ed3e14610982578063eafb5a3c146109be578063ee5d9c2d146109e6578063f94aa1b4146109fc578063fb78680d14610a27578063fdb78c0e14610a4f57610292565b8063b7df8b361461088a578063bcd96a25146108b4578063bfc2fc35146108dc578063c31fe80a14610904578063cf8477061461092e578063d3f6a1571461095a57610292565b80638a8c523c116101125780638a8c523c1461079257806394b954d6146107a857806395d89b41146107d0578063a9059cbb146107fa578063b1b08f7114610836578063b3d514fb1461086057610292565b8063649204801461069c57806370a08231146106c4578063715018a61461070057806380c581d114610716578063893d20e81461073e5780638a63bd9b1461076857610292565b80632e8fa821116101fd5780634ada218b116101b65780634ada218b146105945780634e718e48146105be5780634fb2e45d146105e65780634fbee1931461060e57806350a8e0161461064a578063590ffdce1461067457610292565b80632e8fa82114610488578063313ce567146104b257806332cde664146104dc5780633bbac57914610504578063452ed4f11461054057806346ea7ac81461056a57610292565b8063095ea7b31161024f578063095ea7b31461036a57806318160ddd146103a657806323b872dd146103d05780632610eaca1461040c57806328577751146104345780632b28fc7a1461045e57610292565b806303fd2a45146102965780630445b667146102c0578063069d955f146102ea57806306fdde03146103165780630758d9241461034057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a79565b6040516102b79190614585565b60405180910390f35b3480156102cb575f80fd5b506102d4610a7f565b6040516102e191906145b6565b60405180910390f35b3480156102f5575f80fd5b506102fe610a85565b60405161030d939291906145eb565b60405180910390f35b348015610321575f80fd5b5061032a610ac3565b60405161033791906146aa565b60405180910390f35b34801561034b575f80fd5b50610354610b00565b6040516103619190614725565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b91906147a3565b610b25565b60405161039d91906147fb565b60405180910390f35b3480156103b1575f80fd5b506103ba610b3b565b6040516103c791906145b6565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190614814565b610b5f565b60405161040391906147fb565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190614a64565b610ca2565b005b34801561043f575f80fd5b50610448610e2f565b60405161045591906145b6565b60405180910390f35b348015610469575f80fd5b50610472610e35565b60405161047f91906145b6565b60405180910390f35b348015610493575f80fd5b5061049c610e3b565b6040516104a991906145b6565b60405180910390f35b3480156104bd575f80fd5b506104c6610e41565b6040516104d39190614af5565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190614b38565b610e49565b005b34801561050f575f80fd5b5061052a60048036038101906105259190614b88565b610ffb565b60405161053791906147fb565b60405180910390f35b34801561054b575f80fd5b50610554611018565b6040516105619190614585565b60405180910390f35b348015610575575f80fd5b5061057e61103d565b60405161058b91906145b6565b60405180910390f35b34801561059f575f80fd5b506105a8611043565b6040516105b591906147fb565b60405180910390f35b3480156105c9575f80fd5b506105e460048036038101906105df9190614bb3565b611055565b005b3480156105f1575f80fd5b5061060c60048036038101906106079190614b88565b611133565b005b348015610619575f80fd5b50610634600480360381019061062f9190614b88565b6114c0565b60405161064191906147fb565b60405180910390f35b348015610655575f80fd5b5061065e611512565b60405161066b91906147fb565b60405180910390f35b34801561067f575f80fd5b5061069a60048036038101906106959190614c08565b611525565b005b3480156106a7575f80fd5b506106c260048036038101906106bd9190614bb3565b61160d565b005b3480156106cf575f80fd5b506106ea60048036038101906106e59190614b88565b611b9f565b6040516106f791906145b6565b60405180910390f35b34801561070b575f80fd5b50610714611be4565b005b348015610721575f80fd5b5061073c60048036038101906107379190614c08565b611dae565b005b348015610749575f80fd5b50610752611f5e565b60405161075f9190614585565b60405180910390f35b348015610773575f80fd5b5061077c611f87565b60405161078991906147fb565b60405180910390f35b34801561079d575f80fd5b506107a661206b565b005b3480156107b3575f80fd5b506107ce60048036038101906107c99190614d06565b61224e565b005b3480156107db575f80fd5b506107e46123d6565b6040516107f191906146aa565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b91906147a3565b612413565b60405161082d91906147fb565b60405180910390f35b348015610841575f80fd5b5061084a61242a565b60405161085791906145b6565b60405180910390f35b34801561086b575f80fd5b50610874612430565b60405161088191906145b6565b60405180910390f35b348015610895575f80fd5b5061089e612436565b6040516108ab91906147fb565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d59190614d7c565b612448565b005b3480156108e7575f80fd5b5061090260048036038101906108fd9190614dba565b6125d3565b005b34801561090f575f80fd5b506109186126d1565b60405161092591906145b6565b60405180910390f35b348015610939575f80fd5b506109426126d7565b604051610951939291906145eb565b60405180910390f35b348015610965575f80fd5b50610980600480360381019061097b9190614e33565b612715565b005b34801561098d575f80fd5b506109a860048036038101906109a39190614e71565b61282e565b6040516109b591906145b6565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df9190614b88565b6128b0565b005b3480156109f1575f80fd5b506109fa612d35565b005b348015610a07575f80fd5b50610a10612e7d565b604051610a1e929190614ebe565b60405180910390f35b348015610a32575f80fd5b50610a4d6004803603810190610a489190614ee5565b612ecc565b005b348015610a5a575f80fd5b50610a63613184565b604051610a7091906147fb565b60405180910390f35b61dead81565b600f5481565b6008805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b60606040518060400160405280600781526020017f456c6f6e57696e00000000000000000000000000000000000000000000000000815250905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b31338484613197565b6001905092915050565b5f6012600a610b4a91906150a5565b640ba43b7400610b5a91906150ef565b905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610c8e578160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c869190615130565b925050819055505b610c9984848461335a565b90509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d29906151ad565b60405180910390fd5b8051825114610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90615215565b60405180910390fd5b5f5b82518160ff161015610e2a57818160ff1681518110610d9a57610d99615233565b5b6020026020010151610dab33611b9f565b1015610db5575f80fd5b610e1633848360ff1681518110610dcf57610dce615233565b5b60200260200101516012600a610de591906150a5565b858560ff1681518110610dfb57610dfa615233565b5b6020026020010151610e0d91906150ef565b5f80600161372c565b508080610e2290615260565b915050610d78565b505050565b60125481565b6107d081565b60105481565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed0906151ad565b60405180910390fd5b6107d08361ffff1611158015610ef557506107d08261ffff1611155b8015610f0757506107d08161ffff1611155b610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906152d2565b60405180910390fd5b610bb88284610f5591906152f0565b61ffff161115610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f919061536f565b60405180910390fd5b8260085f015f6101000a81548161ffff021916908361ffff1602179055508160085f0160026101000a81548161ffff021916908361ffff1602179055508060085f0160046101000a81548161ffff021916908361ffff160217905550505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bb881565b60135f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906151ad565b60405180910390fd5b60c8811115611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906153d7565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906151ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890615465565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890615465565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f611398601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b11156113fb576113f9601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826113f0601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b5f80600161372c565b505b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b601360019054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906151ad565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff160361168e5750611b9c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461180d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff81111561182957611828614868565b5b6040519080825280602002602001820160405280156118575781602001602082028036833780820191505090505b50905030815f8151811061186e5761186d615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611912573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119369190615497565b8160018151811061194a57611949615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016119e69594939291906155b2565b5f604051808303815f87803b1580156119fd575f80fd5b505af1158015611a0f573d5f803e3d5ffd5b505050505f4790505f80846040015161ffff16856020015161ffff1684611a3691906150ef565b611a409190615637565b90505f8184611a4f9190615130565b90505f865f015161ffff161115611af257600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b890604051611aab90615694565b5f60405180830381858888f193505050503d805f8114611ae6576040519150601f19603f3d011682016040523d82523d5f602084013e611aeb565b606091505b5050809350505b5f866020015161ffff161115611b9557600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b890604051611b4e90615694565b5f60405180830381858888f193505050503d805f8114611b89576040519150601f19603f3d011682016040523d82523d5f602084013e611b8e565b606091505b5050809350505b5050505050505b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b906151ad565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906151ad565b60405180910390fd5b5f151581151503611ea2575f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611f5a565b5f60025414611efe576203f48060025442611ebd9190615130565b11611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef4906156f2565b60405180910390fd5b5b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550426002819055505b5050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f906151ad565b60405180910390fd5b61206430600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b6001905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f2906151ad565b60405180910390fd5b60135f9054906101000a900460ff161561214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419061575a565b60405180910390fd5b601360019054906101000a900460ff16612199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612190906157c2565b60405180910390fd5b600160135f6101000a81548160ff02191690831515021790555042600781905550612710600f6121e9600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6121f391906150ef565b6121fd9190615637565b600f81905550612710601e612232600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61223c91906150ef565b6122469190615637565b601081905550565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d5906151ad565b60405180910390fd5b8051825114612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990615215565b60405180910390fd5b5f5b82518160ff1610156123d157818160ff168151811061234657612345615233565b5b602002602001015160065f858460ff168151811061236757612366615233565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806123c990615260565b915050612324565b505050565b60606040518060400160405280600481526020017f4557494e00000000000000000000000000000000000000000000000000000000815250905090565b5f61241f33848461335a565b506001905092915050565b6107d081565b6107d081565b60115f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf906151ad565b60405180910390fd5b8060095f0160026101000a81548161ffff021916908361ffff1602179055508160095f015f6101000a81548161ffff021916908361ffff160217905550818161252191906152f0565b60095f0160046101000a81548161ffff021916908361ffff1602179055505f60085f0160029054906101000a900461ffff1660085f015f9054906101000a900461ffff1661256f91906152f0565b61ffff1690508060095f0160049054906101000a900461ffff1661ffff1611156125ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c590615850565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a906151ad565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055508060115f6101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257826040516126c591906147fb565b60405180910390a15050565b60075481565b6009805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906151ad565b60405180910390fd5b81600c5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c6001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612937906151ad565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b29190615497565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3b9190615497565b6040518363ffffffff1660e01b8152600401612a5892919061586e565b602060405180830381865afa158015612a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a979190615497565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c63578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b399190615497565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bc29190615497565b6040518363ffffffff1660e01b8152600401612bdf92919061586e565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190615497565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612ca4565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d3030600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbc906151ad565b60405180910390fd5b601360019054906101000a900460ff1615612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906158df565b60405180910390fd5b601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015612e7a573d5f803e3d5ffd5b50565b600c805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f53906151ad565b60405180910390fd5b82846012600a612f6c91906150a5565b640ba43b7400612f7c91906150ef565b612f8691906150ef565b612f909190615637565b600f8190555080826012600a612fa691906150a5565b640ba43b7400612fb691906150ef565b612fc091906150ef565b612fca9190615637565b601081905550601054600f541115613017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300e9061596d565b60405180910390fd5b6127106096613046600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61305091906150ef565b61305a9190615637565b601054111561309e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613095906159fb565b60405180910390fd5b620f42406012600a6130b091906150a5565b640ba43b74006130c091906150ef565b6130ca9190615637565b601054101561310e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310590615a89565b60405180910390fd5b620f42406012600a61312091906150a5565b640ba43b740061313091906150ef565b61313a9190615637565b600f54101561317e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317590615a89565b60405180910390fd5b50505050565b600e60019054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fc90615af1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326a90615af1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161334d91906145b6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036133c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133c090615b7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342e90615c0d565b60405180910390fd5b5f8211613479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347090615c9b565b60405180910390fd5b5f805f60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134d45760019250613532565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561352c5760019150613531565b600190505b5b61353c8787613996565b156136545760135f9054906101000a900460ff1661358f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358690615d03565b60405180910390fd5b60135f9054906101000a900460ff1680156135c057506135bc610258600754613bf590919063ffffffff16565b4211155b8015613613575060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15613653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364a90615d6b565b60405180910390fd5b5b811561371257600e5f9054906101000a900460ff1661371157600e60019054906101000a900460ff1615613710575f61368c30611b9f565b9050600f54811061370e575f601054905060115f9054906101000a900460ff16156136f8576127106012546136e1600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6136eb91906150ef565b6136f59190615637565b90505b808210613703578091505b61370c82613c52565b505b505b5b5b61372087878786868661372c565b93505050509392505050565b5f601360019054906101000a900460ff166137b95761374b878761421d565b601360019054906101000a900460ff1615801561376e575061376d8787613996565b5b8015613778575081155b156137b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137af90615df9565b60405180910390fd5b5b5f6001905060055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613859575060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613862575f90505b855f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546138ad9190615130565b925050819055505f816138c057866138cd565b6138cc8987878a6143f2565b5b9050805f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461391a9190615e17565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397e91906145b6565b60405180910390a36001925050509695505050505050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a435750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613a9d5750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015613af0575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b43575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b7d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bb557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808284613c039190615e17565b905083811015613c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3f90615e94565b60405180910390fd5b8091505092915050565b6001600e5f6101000a81548160ff0219169083151502179055505f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff1603613ced5750614201565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414613e6c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff811115613e8857613e87614868565b5b604051908082528060200260200182016040528015613eb65781602001602082028036833780820191505090505b50905030815f81518110613ecd57613ecc615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f959190615497565b81600181518110613fa957613fa8615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016140459594939291906155b2565b5f604051808303815f87803b15801561405c575f80fd5b505af192505050801561406d575060015b614078575050614201565b5f4790505f80846040015161ffff16856020015161ffff168461409b91906150ef565b6140a59190615637565b90505f81846140b49190615130565b90505f865f015161ffff16111561415757600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b89060405161411090615694565b5f60405180830381858888f193505050503d805f811461414b576040519150601f19603f3d011682016040523d82523d5f602084013e614150565b606091505b5050809350505b5f866020015161ffff1611156141fa57600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b8906040516141b390615694565b5f60405180830381858888f193505050503d805f81146141ee576040519150601f19603f3d011682016040523d82523d5f602084013e6141f3565b606091505b5050809350505b5050505050505b5f600e5f6101000a81548160ff02191690831515021790555050565b601360019054906101000a900460ff161561426d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426490615f22565b60405180910390fd5b6142778282613996565b1580156142d05750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156143ee57600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325760016040516143e591906147fb565b60405180910390a15b5050565b5f8084156144175760085f015f9054906101000a900461ffff1661ffff169050614456565b831561443b5760085f0160029054906101000a900461ffff1661ffff169050614455565b60085f0160049054906101000a900461ffff1661ffff1690505b5b5f612710828561446691906150ef565b6144709190615637565b90505f819050805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546144c19190615e17565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161452591906145b6565b60405180910390a381856145399190615130565b9350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61456f82614546565b9050919050565b61457f81614565565b82525050565b5f6020820190506145985f830184614576565b92915050565b5f819050919050565b6145b08161459e565b82525050565b5f6020820190506145c95f8301846145a7565b92915050565b5f61ffff82169050919050565b6145e5816145cf565b82525050565b5f6060820190506145fe5f8301866145dc565b61460b60208301856145dc565b61461860408301846145dc565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561465757808201518184015260208101905061463c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61467c82614620565b614686818561462a565b935061469681856020860161463a565b61469f81614662565b840191505092915050565b5f6020820190508181035f8301526146c28184614672565b905092915050565b5f819050919050565b5f6146ed6146e86146e384614546565b6146ca565b614546565b9050919050565b5f6146fe826146d3565b9050919050565b5f61470f826146f4565b9050919050565b61471f81614705565b82525050565b5f6020820190506147385f830184614716565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61475881614565565b8114614762575f80fd5b50565b5f813590506147738161474f565b92915050565b6147828161459e565b811461478c575f80fd5b50565b5f8135905061479d81614779565b92915050565b5f80604083850312156147b9576147b8614747565b5b5f6147c685828601614765565b92505060206147d78582860161478f565b9150509250929050565b5f8115159050919050565b6147f5816147e1565b82525050565b5f60208201905061480e5f8301846147ec565b92915050565b5f805f6060848603121561482b5761482a614747565b5b5f61483886828701614765565b935050602061484986828701614765565b925050604061485a8682870161478f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61489e82614662565b810181811067ffffffffffffffff821117156148bd576148bc614868565b5b80604052505050565b5f6148cf61473e565b90506148db8282614895565b919050565b5f67ffffffffffffffff8211156148fa576148f9614868565b5b602082029050602081019050919050565b5f80fd5b5f61492161491c846148e0565b6148c6565b905080838252602082019050602084028301858111156149445761494361490b565b5b835b8181101561496d57806149598882614765565b845260208401935050602081019050614946565b5050509392505050565b5f82601f83011261498b5761498a614864565b5b813561499b84826020860161490f565b91505092915050565b5f67ffffffffffffffff8211156149be576149bd614868565b5b602082029050602081019050919050565b5f6149e16149dc846149a4565b6148c6565b90508083825260208201905060208402830185811115614a0457614a0361490b565b5b835b81811015614a2d5780614a19888261478f565b845260208401935050602081019050614a06565b5050509392505050565b5f82601f830112614a4b57614a4a614864565b5b8135614a5b8482602086016149cf565b91505092915050565b5f8060408385031215614a7a57614a79614747565b5b5f83013567ffffffffffffffff811115614a9757614a9661474b565b5b614aa385828601614977565b925050602083013567ffffffffffffffff811115614ac457614ac361474b565b5b614ad085828601614a37565b9150509250929050565b5f60ff82169050919050565b614aef81614ada565b82525050565b5f602082019050614b085f830184614ae6565b92915050565b614b17816145cf565b8114614b21575f80fd5b50565b5f81359050614b3281614b0e565b92915050565b5f805f60608486031215614b4f57614b4e614747565b5b5f614b5c86828701614b24565b9350506020614b6d86828701614b24565b9250506040614b7e86828701614b24565b9150509250925092565b5f60208284031215614b9d57614b9c614747565b5b5f614baa84828501614765565b91505092915050565b5f60208284031215614bc857614bc7614747565b5b5f614bd58482850161478f565b91505092915050565b614be7816147e1565b8114614bf1575f80fd5b50565b5f81359050614c0281614bde565b92915050565b5f8060408385031215614c1e57614c1d614747565b5b5f614c2b85828601614765565b9250506020614c3c85828601614bf4565b9150509250929050565b5f67ffffffffffffffff821115614c6057614c5f614868565b5b602082029050602081019050919050565b5f614c83614c7e84614c46565b6148c6565b90508083825260208201905060208402830185811115614ca657614ca561490b565b5b835b81811015614ccf5780614cbb8882614bf4565b845260208401935050602081019050614ca8565b5050509392505050565b5f82601f830112614ced57614cec614864565b5b8135614cfd848260208601614c71565b91505092915050565b5f8060408385031215614d1c57614d1b614747565b5b5f83013567ffffffffffffffff811115614d3957614d3861474b565b5b614d4585828601614977565b925050602083013567ffffffffffffffff811115614d6657614d6561474b565b5b614d7285828601614cd9565b9150509250929050565b5f8060408385031215614d9257614d91614747565b5b5f614d9f85828601614b24565b9250506020614db085828601614b24565b9150509250929050565b5f8060408385031215614dd057614dcf614747565b5b5f614ddd85828601614bf4565b9250506020614dee85828601614bf4565b9150509250929050565b5f614e0282614546565b9050919050565b614e1281614df8565b8114614e1c575f80fd5b50565b5f81359050614e2d81614e09565b92915050565b5f8060408385031215614e4957614e48614747565b5b5f614e5685828601614e1f565b9250506020614e6785828601614e1f565b9150509250929050565b5f8060408385031215614e8757614e86614747565b5b5f614e9485828601614765565b9250506020614ea585828601614765565b9150509250929050565b614eb881614df8565b82525050565b5f604082019050614ed15f830185614eaf565b614ede6020830184614eaf565b9392505050565b5f805f8060808587031215614efd57614efc614747565b5b5f614f0a8782880161478f565b9450506020614f1b8782880161478f565b9350506040614f2c8782880161478f565b9250506060614f3d8782880161478f565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115614fcb57808604811115614fa757614fa6614f49565b5b6001851615614fb65780820291505b8081029050614fc485614f76565b9450614f8b565b94509492505050565b5f82614fe3576001905061509e565b81614ff0575f905061509e565b816001811461500657600281146150105761503f565b600191505061509e565b60ff84111561502257615021614f49565b5b8360020a91508482111561503957615038614f49565b5b5061509e565b5060208310610133831016604e8410600b84101617156150745782820a90508381111561506f5761506e614f49565b5b61509e565b6150818484846001614f82565b9250905081840481111561509857615097614f49565b5b81810290505b9392505050565b5f6150af8261459e565b91506150ba83614ada565b92506150e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614fd4565b905092915050565b5f6150f98261459e565b91506151048361459e565b92508282026151128161459e565b9150828204841483151761512957615128614f49565b5b5092915050565b5f61513a8261459e565b91506151458361459e565b925082820390508181111561515d5761515c614f49565b5b92915050565b7f43616c6c6572203d2f3d206f776e65722e0000000000000000000000000000005f82015250565b5f61519760118361462a565b91506151a282615163565b602082019050919050565b5f6020820190508181035f8301526151c48161518b565b9050919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f6151ff60158361462a565b915061520a826151cb565b602082019050919050565b5f6020820190508181035f83015261522c816151f3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61526a82614ada565b915060ff820361527d5761527c614f49565b5b600182019050919050565b7f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000005f82015250565b5f6152bc60178361462a565b91506152c782615288565b602082019050919050565b5f6020820190508181035f8301526152e9816152b0565b9050919050565b5f6152fa826145cf565b9150615305836145cf565b9250828201905061ffff81111561531f5761531e614f49565b5b92915050565b7f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e5f82015250565b5f61535960208361462a565b915061536482615325565b602082019050919050565b5f6020820190508181035f8301526153868161534d565b9050919050565b7f43616e6e6f74207365742061626f76652032252e0000000000000000000000005f82015250565b5f6153c160148361462a565b91506153cc8261538d565b602082019050919050565b5f6020820190508181035f8301526153ee816153b5565b9050919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f61544f603d8361462a565b915061545a826153f5565b604082019050919050565b5f6020820190508181035f83015261547c81615443565b9050919050565b5f815190506154918161474f565b92915050565b5f602082840312156154ac576154ab614747565b5b5f6154b984828501615483565b91505092915050565b5f819050919050565b5f6154e56154e06154db846154c2565b6146ca565b61459e565b9050919050565b6154f5816154cb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61552d81614565565b82525050565b5f61553e8383615524565b60208301905092915050565b5f602082019050919050565b5f615560826154fb565b61556a8185615505565b935061557583615515565b805f5b838110156155a557815161558c8882615533565b97506155978361554a565b925050600181019050615578565b5085935050505092915050565b5f60a0820190506155c55f8301886145a7565b6155d260208301876154ec565b81810360408301526155e48186615556565b90506155f36060830185614576565b61560060808301846145a7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6156418261459e565b915061564c8361459e565b92508261565c5761565b61560a565b5b828204905092915050565b5f81905092915050565b50565b5f61567f5f83615667565b915061568a82615671565b5f82019050919050565b5f61569e82615674565b9150819050919050565b7f332044617920636f6f6c646f776e2e21000000000000000000000000000000005f82015250565b5f6156dc60108361462a565b91506156e7826156a8565b602082019050919050565b5f6020820190508181035f830152615709816156d0565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642100000000000000005f82015250565b5f61574460188361462a565b915061574f82615710565b602082019050919050565b5f6020820190508181035f83015261577181615738565b9050919050565b7f4c6971756964697479206d7573742062652061646465642e00000000000000005f82015250565b5f6157ac60188361462a565b91506157b782615778565b602082019050919050565b5f6020820190508181035f8301526157d9816157a0565b9050919050565b7f43616e6e6f74206578636565642073756d206f662062757920616e642073656c5f8201527f6c20666565732e00000000000000000000000000000000000000000000000000602082015250565b5f61583a60278361462a565b9150615845826157e0565b604082019050919050565b5f6020820190508181035f8301526158678161582e565b9050919050565b5f6040820190506158815f830185614576565b61588e6020830184614576565b9392505050565b7f43616e6e6f742063616c6c206166746572206c69717569646974792e000000005f82015250565b5f6158c9601c8361462a565b91506158d482615895565b602082019050919050565b5f6020820190508181035f8301526158f6816158bd565b9050919050565b7f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e745f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61595760218361462a565b9150615962826158fd565b604082019050919050565b5f6020820190508181035f8301526159848161594b565b9050919050565b7f43616e6e6f742062652061626f766520312e3525206f662063757272656e74205f8201527f50492e0000000000000000000000000000000000000000000000000000000000602082015250565b5f6159e560238361462a565b91506159f08261598b565b604082019050919050565b5f6020820190508181035f830152615a12816159d9565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f665f8201527f20746f74616c20737570706c792e000000000000000000000000000000000000602082015250565b5f615a73602e8361462a565b9150615a7e82615a19565b604082019050919050565b5f6020820190508181035f830152615aa081615a67565b9050919050565b7f45524332303a205a65726f2041646472657373000000000000000000000000005f82015250565b5f615adb60138361462a565b9150615ae682615aa7565b602082019050919050565b5f6020820190508181035f830152615b0881615acf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f615b6960258361462a565b9150615b7482615b0f565b604082019050919050565b5f6020820190508181035f830152615b9681615b5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f615bf760238361462a565b9150615c0282615b9d565b604082019050919050565b5f6020820190508181035f830152615c2481615beb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f615c8560298361462a565b9150615c9082615c2b565b604082019050919050565b5f6020820190508181035f830152615cb281615c79565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642100000000000000005f82015250565b5f615ced60188361462a565b9150615cf882615cb9565b602082019050919050565b5f6020820190508181035f830152615d1a81615ce1565b9050919050565b7f43616e6e6f7420627579207965740000000000000000000000000000000000005f82015250565b5f615d55600e8361462a565b9150615d6082615d21565b602082019050919050565b5f6020820190508181035f830152615d8281615d49565b9050919050565b7f5072652d6c6971756964697479207472616e736665722070726f74656374696f5f8201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f615de360228361462a565b9150615dee82615d89565b604082019050919050565b5f6020820190508181035f830152615e1081615dd7565b9050919050565b5f615e218261459e565b9150615e2c8361459e565b9250828201905080821115615e4457615e43614f49565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f615e7e601b8361462a565b9150615e8982615e4a565b602082019050919050565b5f6020820190508181035f830152615eab81615e72565b9050919050565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b5f8201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b5f615f0c60238361462a565b9150615f1782615eb2565b604082019050919050565b5f6020820190508181035f830152615f3981615f00565b905091905056fea26469706673582212200af83aac5fb58acfa36257b9bd9943f305a98129487543f93807665a3496612c64736f6c63430008140033
Deployed Bytecode
0x60806040526004361061028b575f3560e01c80636492048011610159578063b7df8b36116100c0578063dd62ed3e11610079578063dd62ed3e14610982578063eafb5a3c146109be578063ee5d9c2d146109e6578063f94aa1b4146109fc578063fb78680d14610a27578063fdb78c0e14610a4f57610292565b8063b7df8b361461088a578063bcd96a25146108b4578063bfc2fc35146108dc578063c31fe80a14610904578063cf8477061461092e578063d3f6a1571461095a57610292565b80638a8c523c116101125780638a8c523c1461079257806394b954d6146107a857806395d89b41146107d0578063a9059cbb146107fa578063b1b08f7114610836578063b3d514fb1461086057610292565b8063649204801461069c57806370a08231146106c4578063715018a61461070057806380c581d114610716578063893d20e81461073e5780638a63bd9b1461076857610292565b80632e8fa821116101fd5780634ada218b116101b65780634ada218b146105945780634e718e48146105be5780634fb2e45d146105e65780634fbee1931461060e57806350a8e0161461064a578063590ffdce1461067457610292565b80632e8fa82114610488578063313ce567146104b257806332cde664146104dc5780633bbac57914610504578063452ed4f11461054057806346ea7ac81461056a57610292565b8063095ea7b31161024f578063095ea7b31461036a57806318160ddd146103a657806323b872dd146103d05780632610eaca1461040c57806328577751146104345780632b28fc7a1461045e57610292565b806303fd2a45146102965780630445b667146102c0578063069d955f146102ea57806306fdde03146103165780630758d9241461034057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a79565b6040516102b79190614585565b60405180910390f35b3480156102cb575f80fd5b506102d4610a7f565b6040516102e191906145b6565b60405180910390f35b3480156102f5575f80fd5b506102fe610a85565b60405161030d939291906145eb565b60405180910390f35b348015610321575f80fd5b5061032a610ac3565b60405161033791906146aa565b60405180910390f35b34801561034b575f80fd5b50610354610b00565b6040516103619190614725565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b91906147a3565b610b25565b60405161039d91906147fb565b60405180910390f35b3480156103b1575f80fd5b506103ba610b3b565b6040516103c791906145b6565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190614814565b610b5f565b60405161040391906147fb565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190614a64565b610ca2565b005b34801561043f575f80fd5b50610448610e2f565b60405161045591906145b6565b60405180910390f35b348015610469575f80fd5b50610472610e35565b60405161047f91906145b6565b60405180910390f35b348015610493575f80fd5b5061049c610e3b565b6040516104a991906145b6565b60405180910390f35b3480156104bd575f80fd5b506104c6610e41565b6040516104d39190614af5565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190614b38565b610e49565b005b34801561050f575f80fd5b5061052a60048036038101906105259190614b88565b610ffb565b60405161053791906147fb565b60405180910390f35b34801561054b575f80fd5b50610554611018565b6040516105619190614585565b60405180910390f35b348015610575575f80fd5b5061057e61103d565b60405161058b91906145b6565b60405180910390f35b34801561059f575f80fd5b506105a8611043565b6040516105b591906147fb565b60405180910390f35b3480156105c9575f80fd5b506105e460048036038101906105df9190614bb3565b611055565b005b3480156105f1575f80fd5b5061060c60048036038101906106079190614b88565b611133565b005b348015610619575f80fd5b50610634600480360381019061062f9190614b88565b6114c0565b60405161064191906147fb565b60405180910390f35b348015610655575f80fd5b5061065e611512565b60405161066b91906147fb565b60405180910390f35b34801561067f575f80fd5b5061069a60048036038101906106959190614c08565b611525565b005b3480156106a7575f80fd5b506106c260048036038101906106bd9190614bb3565b61160d565b005b3480156106cf575f80fd5b506106ea60048036038101906106e59190614b88565b611b9f565b6040516106f791906145b6565b60405180910390f35b34801561070b575f80fd5b50610714611be4565b005b348015610721575f80fd5b5061073c60048036038101906107379190614c08565b611dae565b005b348015610749575f80fd5b50610752611f5e565b60405161075f9190614585565b60405180910390f35b348015610773575f80fd5b5061077c611f87565b60405161078991906147fb565b60405180910390f35b34801561079d575f80fd5b506107a661206b565b005b3480156107b3575f80fd5b506107ce60048036038101906107c99190614d06565b61224e565b005b3480156107db575f80fd5b506107e46123d6565b6040516107f191906146aa565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b91906147a3565b612413565b60405161082d91906147fb565b60405180910390f35b348015610841575f80fd5b5061084a61242a565b60405161085791906145b6565b60405180910390f35b34801561086b575f80fd5b50610874612430565b60405161088191906145b6565b60405180910390f35b348015610895575f80fd5b5061089e612436565b6040516108ab91906147fb565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d59190614d7c565b612448565b005b3480156108e7575f80fd5b5061090260048036038101906108fd9190614dba565b6125d3565b005b34801561090f575f80fd5b506109186126d1565b60405161092591906145b6565b60405180910390f35b348015610939575f80fd5b506109426126d7565b604051610951939291906145eb565b60405180910390f35b348015610965575f80fd5b50610980600480360381019061097b9190614e33565b612715565b005b34801561098d575f80fd5b506109a860048036038101906109a39190614e71565b61282e565b6040516109b591906145b6565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df9190614b88565b6128b0565b005b3480156109f1575f80fd5b506109fa612d35565b005b348015610a07575f80fd5b50610a10612e7d565b604051610a1e929190614ebe565b60405180910390f35b348015610a32575f80fd5b50610a4d6004803603810190610a489190614ee5565b612ecc565b005b348015610a5a575f80fd5b50610a63613184565b604051610a7091906147fb565b60405180910390f35b61dead81565b600f5481565b6008805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b60606040518060400160405280600781526020017f456c6f6e57696e00000000000000000000000000000000000000000000000000815250905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b31338484613197565b6001905092915050565b5f6012600a610b4a91906150a5565b640ba43b7400610b5a91906150ef565b905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610c8e578160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c869190615130565b925050819055505b610c9984848461335a565b90509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d29906151ad565b60405180910390fd5b8051825114610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90615215565b60405180910390fd5b5f5b82518160ff161015610e2a57818160ff1681518110610d9a57610d99615233565b5b6020026020010151610dab33611b9f565b1015610db5575f80fd5b610e1633848360ff1681518110610dcf57610dce615233565b5b60200260200101516012600a610de591906150a5565b858560ff1681518110610dfb57610dfa615233565b5b6020026020010151610e0d91906150ef565b5f80600161372c565b508080610e2290615260565b915050610d78565b505050565b60125481565b6107d081565b60105481565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed0906151ad565b60405180910390fd5b6107d08361ffff1611158015610ef557506107d08261ffff1611155b8015610f0757506107d08161ffff1611155b610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906152d2565b60405180910390fd5b610bb88284610f5591906152f0565b61ffff161115610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f919061536f565b60405180910390fd5b8260085f015f6101000a81548161ffff021916908361ffff1602179055508160085f0160026101000a81548161ffff021916908361ffff1602179055508060085f0160046101000a81548161ffff021916908361ffff160217905550505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bb881565b60135f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906151ad565b60405180910390fd5b60c8811115611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906153d7565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906151ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890615465565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890615465565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f611398601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b11156113fb576113f9601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826113f0601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b5f80600161372c565b505b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b601360019054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906151ad565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff160361168e5750611b9c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461180d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff81111561182957611828614868565b5b6040519080825280602002602001820160405280156118575781602001602082028036833780820191505090505b50905030815f8151811061186e5761186d615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611912573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119369190615497565b8160018151811061194a57611949615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016119e69594939291906155b2565b5f604051808303815f87803b1580156119fd575f80fd5b505af1158015611a0f573d5f803e3d5ffd5b505050505f4790505f80846040015161ffff16856020015161ffff1684611a3691906150ef565b611a409190615637565b90505f8184611a4f9190615130565b90505f865f015161ffff161115611af257600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b890604051611aab90615694565b5f60405180830381858888f193505050503d805f8114611ae6576040519150601f19603f3d011682016040523d82523d5f602084013e611aeb565b606091505b5050809350505b5f866020015161ffff161115611b9557600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b890604051611b4e90615694565b5f60405180830381858888f193505050503d805f8114611b89576040519150601f19603f3d011682016040523d82523d5f602084013e611b8e565b606091505b5050809350505b5050505050505b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b906151ad565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906151ad565b60405180910390fd5b5f151581151503611ea2575f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611f5a565b5f60025414611efe576203f48060025442611ebd9190615130565b11611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef4906156f2565b60405180910390fd5b5b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550426002819055505b5050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f906151ad565b60405180910390fd5b61206430600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b6001905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f2906151ad565b60405180910390fd5b60135f9054906101000a900460ff161561214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419061575a565b60405180910390fd5b601360019054906101000a900460ff16612199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612190906157c2565b60405180910390fd5b600160135f6101000a81548160ff02191690831515021790555042600781905550612710600f6121e9600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6121f391906150ef565b6121fd9190615637565b600f81905550612710601e612232600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61223c91906150ef565b6122469190615637565b601081905550565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d5906151ad565b60405180910390fd5b8051825114612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990615215565b60405180910390fd5b5f5b82518160ff1610156123d157818160ff168151811061234657612345615233565b5b602002602001015160065f858460ff168151811061236757612366615233565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806123c990615260565b915050612324565b505050565b60606040518060400160405280600481526020017f4557494e00000000000000000000000000000000000000000000000000000000815250905090565b5f61241f33848461335a565b506001905092915050565b6107d081565b6107d081565b60115f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf906151ad565b60405180910390fd5b8060095f0160026101000a81548161ffff021916908361ffff1602179055508160095f015f6101000a81548161ffff021916908361ffff160217905550818161252191906152f0565b60095f0160046101000a81548161ffff021916908361ffff1602179055505f60085f0160029054906101000a900461ffff1660085f015f9054906101000a900461ffff1661256f91906152f0565b61ffff1690508060095f0160049054906101000a900461ffff1661ffff1611156125ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c590615850565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a906151ad565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055508060115f6101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257826040516126c591906147fb565b60405180910390a15050565b60075481565b6009805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906151ad565b60405180910390fd5b81600c5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c6001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612937906151ad565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b29190615497565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3b9190615497565b6040518363ffffffff1660e01b8152600401612a5892919061586e565b602060405180830381865afa158015612a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a979190615497565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c63578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b399190615497565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bc29190615497565b6040518363ffffffff1660e01b8152600401612bdf92919061586e565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190615497565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612ca4565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d3030600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbc906151ad565b60405180910390fd5b601360019054906101000a900460ff1615612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906158df565b60405180910390fd5b601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015612e7a573d5f803e3d5ffd5b50565b600c805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f53906151ad565b60405180910390fd5b82846012600a612f6c91906150a5565b640ba43b7400612f7c91906150ef565b612f8691906150ef565b612f909190615637565b600f8190555080826012600a612fa691906150a5565b640ba43b7400612fb691906150ef565b612fc091906150ef565b612fca9190615637565b601081905550601054600f541115613017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300e9061596d565b60405180910390fd5b6127106096613046600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61305091906150ef565b61305a9190615637565b601054111561309e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613095906159fb565b60405180910390fd5b620f42406012600a6130b091906150a5565b640ba43b74006130c091906150ef565b6130ca9190615637565b601054101561310e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310590615a89565b60405180910390fd5b620f42406012600a61312091906150a5565b640ba43b740061313091906150ef565b61313a9190615637565b600f54101561317e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317590615a89565b60405180910390fd5b50505050565b600e60019054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fc90615af1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326a90615af1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161334d91906145b6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036133c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133c090615b7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342e90615c0d565b60405180910390fd5b5f8211613479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347090615c9b565b60405180910390fd5b5f805f60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134d45760019250613532565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561352c5760019150613531565b600190505b5b61353c8787613996565b156136545760135f9054906101000a900460ff1661358f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358690615d03565b60405180910390fd5b60135f9054906101000a900460ff1680156135c057506135bc610258600754613bf590919063ffffffff16565b4211155b8015613613575060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15613653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364a90615d6b565b60405180910390fd5b5b811561371257600e5f9054906101000a900460ff1661371157600e60019054906101000a900460ff1615613710575f61368c30611b9f565b9050600f54811061370e575f601054905060115f9054906101000a900460ff16156136f8576127106012546136e1600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6136eb91906150ef565b6136f59190615637565b90505b808210613703578091505b61370c82613c52565b505b505b5b5b61372087878786868661372c565b93505050509392505050565b5f601360019054906101000a900460ff166137b95761374b878761421d565b601360019054906101000a900460ff1615801561376e575061376d8787613996565b5b8015613778575081155b156137b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137af90615df9565b60405180910390fd5b5b5f6001905060055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613859575060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613862575f90505b855f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546138ad9190615130565b925050819055505f816138c057866138cd565b6138cc8987878a6143f2565b5b9050805f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461391a9190615e17565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397e91906145b6565b60405180910390a36001925050509695505050505050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a435750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613a9d5750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015613af0575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b43575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b7d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bb557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808284613c039190615e17565b905083811015613c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3f90615e94565b60405180910390fd5b8091505092915050565b6001600e5f6101000a81548160ff0219169083151502179055505f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff1603613ced5750614201565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414613e6c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff811115613e8857613e87614868565b5b604051908082528060200260200182016040528015613eb65781602001602082028036833780820191505090505b50905030815f81518110613ecd57613ecc615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f959190615497565b81600181518110613fa957613fa8615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016140459594939291906155b2565b5f604051808303815f87803b15801561405c575f80fd5b505af192505050801561406d575060015b614078575050614201565b5f4790505f80846040015161ffff16856020015161ffff168461409b91906150ef565b6140a59190615637565b90505f81846140b49190615130565b90505f865f015161ffff16111561415757600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b89060405161411090615694565b5f60405180830381858888f193505050503d805f811461414b576040519150601f19603f3d011682016040523d82523d5f602084013e614150565b606091505b5050809350505b5f866020015161ffff1611156141fa57600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b8906040516141b390615694565b5f60405180830381858888f193505050503d805f81146141ee576040519150601f19603f3d011682016040523d82523d5f602084013e6141f3565b606091505b5050809350505b5050505050505b5f600e5f6101000a81548160ff02191690831515021790555050565b601360019054906101000a900460ff161561426d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426490615f22565b60405180910390fd5b6142778282613996565b1580156142d05750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156143ee57600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325760016040516143e591906147fb565b60405180910390a15b5050565b5f8084156144175760085f015f9054906101000a900461ffff1661ffff169050614456565b831561443b5760085f0160029054906101000a900461ffff1661ffff169050614455565b60085f0160049054906101000a900461ffff1661ffff1690505b5b5f612710828561446691906150ef565b6144709190615637565b90505f819050805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546144c19190615e17565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161452591906145b6565b60405180910390a381856145399190615130565b9350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61456f82614546565b9050919050565b61457f81614565565b82525050565b5f6020820190506145985f830184614576565b92915050565b5f819050919050565b6145b08161459e565b82525050565b5f6020820190506145c95f8301846145a7565b92915050565b5f61ffff82169050919050565b6145e5816145cf565b82525050565b5f6060820190506145fe5f8301866145dc565b61460b60208301856145dc565b61461860408301846145dc565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561465757808201518184015260208101905061463c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61467c82614620565b614686818561462a565b935061469681856020860161463a565b61469f81614662565b840191505092915050565b5f6020820190508181035f8301526146c28184614672565b905092915050565b5f819050919050565b5f6146ed6146e86146e384614546565b6146ca565b614546565b9050919050565b5f6146fe826146d3565b9050919050565b5f61470f826146f4565b9050919050565b61471f81614705565b82525050565b5f6020820190506147385f830184614716565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61475881614565565b8114614762575f80fd5b50565b5f813590506147738161474f565b92915050565b6147828161459e565b811461478c575f80fd5b50565b5f8135905061479d81614779565b92915050565b5f80604083850312156147b9576147b8614747565b5b5f6147c685828601614765565b92505060206147d78582860161478f565b9150509250929050565b5f8115159050919050565b6147f5816147e1565b82525050565b5f60208201905061480e5f8301846147ec565b92915050565b5f805f6060848603121561482b5761482a614747565b5b5f61483886828701614765565b935050602061484986828701614765565b925050604061485a8682870161478f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61489e82614662565b810181811067ffffffffffffffff821117156148bd576148bc614868565b5b80604052505050565b5f6148cf61473e565b90506148db8282614895565b919050565b5f67ffffffffffffffff8211156148fa576148f9614868565b5b602082029050602081019050919050565b5f80fd5b5f61492161491c846148e0565b6148c6565b905080838252602082019050602084028301858111156149445761494361490b565b5b835b8181101561496d57806149598882614765565b845260208401935050602081019050614946565b5050509392505050565b5f82601f83011261498b5761498a614864565b5b813561499b84826020860161490f565b91505092915050565b5f67ffffffffffffffff8211156149be576149bd614868565b5b602082029050602081019050919050565b5f6149e16149dc846149a4565b6148c6565b90508083825260208201905060208402830185811115614a0457614a0361490b565b5b835b81811015614a2d5780614a19888261478f565b845260208401935050602081019050614a06565b5050509392505050565b5f82601f830112614a4b57614a4a614864565b5b8135614a5b8482602086016149cf565b91505092915050565b5f8060408385031215614a7a57614a79614747565b5b5f83013567ffffffffffffffff811115614a9757614a9661474b565b5b614aa385828601614977565b925050602083013567ffffffffffffffff811115614ac457614ac361474b565b5b614ad085828601614a37565b9150509250929050565b5f60ff82169050919050565b614aef81614ada565b82525050565b5f602082019050614b085f830184614ae6565b92915050565b614b17816145cf565b8114614b21575f80fd5b50565b5f81359050614b3281614b0e565b92915050565b5f805f60608486031215614b4f57614b4e614747565b5b5f614b5c86828701614b24565b9350506020614b6d86828701614b24565b9250506040614b7e86828701614b24565b9150509250925092565b5f60208284031215614b9d57614b9c614747565b5b5f614baa84828501614765565b91505092915050565b5f60208284031215614bc857614bc7614747565b5b5f614bd58482850161478f565b91505092915050565b614be7816147e1565b8114614bf1575f80fd5b50565b5f81359050614c0281614bde565b92915050565b5f8060408385031215614c1e57614c1d614747565b5b5f614c2b85828601614765565b9250506020614c3c85828601614bf4565b9150509250929050565b5f67ffffffffffffffff821115614c6057614c5f614868565b5b602082029050602081019050919050565b5f614c83614c7e84614c46565b6148c6565b90508083825260208201905060208402830185811115614ca657614ca561490b565b5b835b81811015614ccf5780614cbb8882614bf4565b845260208401935050602081019050614ca8565b5050509392505050565b5f82601f830112614ced57614cec614864565b5b8135614cfd848260208601614c71565b91505092915050565b5f8060408385031215614d1c57614d1b614747565b5b5f83013567ffffffffffffffff811115614d3957614d3861474b565b5b614d4585828601614977565b925050602083013567ffffffffffffffff811115614d6657614d6561474b565b5b614d7285828601614cd9565b9150509250929050565b5f8060408385031215614d9257614d91614747565b5b5f614d9f85828601614b24565b9250506020614db085828601614b24565b9150509250929050565b5f8060408385031215614dd057614dcf614747565b5b5f614ddd85828601614bf4565b9250506020614dee85828601614bf4565b9150509250929050565b5f614e0282614546565b9050919050565b614e1281614df8565b8114614e1c575f80fd5b50565b5f81359050614e2d81614e09565b92915050565b5f8060408385031215614e4957614e48614747565b5b5f614e5685828601614e1f565b9250506020614e6785828601614e1f565b9150509250929050565b5f8060408385031215614e8757614e86614747565b5b5f614e9485828601614765565b9250506020614ea585828601614765565b9150509250929050565b614eb881614df8565b82525050565b5f604082019050614ed15f830185614eaf565b614ede6020830184614eaf565b9392505050565b5f805f8060808587031215614efd57614efc614747565b5b5f614f0a8782880161478f565b9450506020614f1b8782880161478f565b9350506040614f2c8782880161478f565b9250506060614f3d8782880161478f565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115614fcb57808604811115614fa757614fa6614f49565b5b6001851615614fb65780820291505b8081029050614fc485614f76565b9450614f8b565b94509492505050565b5f82614fe3576001905061509e565b81614ff0575f905061509e565b816001811461500657600281146150105761503f565b600191505061509e565b60ff84111561502257615021614f49565b5b8360020a91508482111561503957615038614f49565b5b5061509e565b5060208310610133831016604e8410600b84101617156150745782820a90508381111561506f5761506e614f49565b5b61509e565b6150818484846001614f82565b9250905081840481111561509857615097614f49565b5b81810290505b9392505050565b5f6150af8261459e565b91506150ba83614ada565b92506150e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614fd4565b905092915050565b5f6150f98261459e565b91506151048361459e565b92508282026151128161459e565b9150828204841483151761512957615128614f49565b5b5092915050565b5f61513a8261459e565b91506151458361459e565b925082820390508181111561515d5761515c614f49565b5b92915050565b7f43616c6c6572203d2f3d206f776e65722e0000000000000000000000000000005f82015250565b5f61519760118361462a565b91506151a282615163565b602082019050919050565b5f6020820190508181035f8301526151c48161518b565b9050919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f6151ff60158361462a565b915061520a826151cb565b602082019050919050565b5f6020820190508181035f83015261522c816151f3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61526a82614ada565b915060ff820361527d5761527c614f49565b5b600182019050919050565b7f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000005f82015250565b5f6152bc60178361462a565b91506152c782615288565b602082019050919050565b5f6020820190508181035f8301526152e9816152b0565b9050919050565b5f6152fa826145cf565b9150615305836145cf565b9250828201905061ffff81111561531f5761531e614f49565b5b92915050565b7f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e5f82015250565b5f61535960208361462a565b915061536482615325565b602082019050919050565b5f6020820190508181035f8301526153868161534d565b9050919050565b7f43616e6e6f74207365742061626f76652032252e0000000000000000000000005f82015250565b5f6153c160148361462a565b91506153cc8261538d565b602082019050919050565b5f6020820190508181035f8301526153ee816153b5565b9050919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f61544f603d8361462a565b915061545a826153f5565b604082019050919050565b5f6020820190508181035f83015261547c81615443565b9050919050565b5f815190506154918161474f565b92915050565b5f602082840312156154ac576154ab614747565b5b5f6154b984828501615483565b91505092915050565b5f819050919050565b5f6154e56154e06154db846154c2565b6146ca565b61459e565b9050919050565b6154f5816154cb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61552d81614565565b82525050565b5f61553e8383615524565b60208301905092915050565b5f602082019050919050565b5f615560826154fb565b61556a8185615505565b935061557583615515565b805f5b838110156155a557815161558c8882615533565b97506155978361554a565b925050600181019050615578565b5085935050505092915050565b5f60a0820190506155c55f8301886145a7565b6155d260208301876154ec565b81810360408301526155e48186615556565b90506155f36060830185614576565b61560060808301846145a7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6156418261459e565b915061564c8361459e565b92508261565c5761565b61560a565b5b828204905092915050565b5f81905092915050565b50565b5f61567f5f83615667565b915061568a82615671565b5f82019050919050565b5f61569e82615674565b9150819050919050565b7f332044617920636f6f6c646f776e2e21000000000000000000000000000000005f82015250565b5f6156dc60108361462a565b91506156e7826156a8565b602082019050919050565b5f6020820190508181035f830152615709816156d0565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642100000000000000005f82015250565b5f61574460188361462a565b915061574f82615710565b602082019050919050565b5f6020820190508181035f83015261577181615738565b9050919050565b7f4c6971756964697479206d7573742062652061646465642e00000000000000005f82015250565b5f6157ac60188361462a565b91506157b782615778565b602082019050919050565b5f6020820190508181035f8301526157d9816157a0565b9050919050565b7f43616e6e6f74206578636565642073756d206f662062757920616e642073656c5f8201527f6c20666565732e00000000000000000000000000000000000000000000000000602082015250565b5f61583a60278361462a565b9150615845826157e0565b604082019050919050565b5f6020820190508181035f8301526158678161582e565b9050919050565b5f6040820190506158815f830185614576565b61588e6020830184614576565b9392505050565b7f43616e6e6f742063616c6c206166746572206c69717569646974792e000000005f82015250565b5f6158c9601c8361462a565b91506158d482615895565b602082019050919050565b5f6020820190508181035f8301526158f6816158bd565b9050919050565b7f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e745f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61595760218361462a565b9150615962826158fd565b604082019050919050565b5f6020820190508181035f8301526159848161594b565b9050919050565b7f43616e6e6f742062652061626f766520312e3525206f662063757272656e74205f8201527f50492e0000000000000000000000000000000000000000000000000000000000602082015250565b5f6159e560238361462a565b91506159f08261598b565b604082019050919050565b5f6020820190508181035f830152615a12816159d9565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f665f8201527f20746f74616c20737570706c792e000000000000000000000000000000000000602082015250565b5f615a73602e8361462a565b9150615a7e82615a19565b604082019050919050565b5f6020820190508181035f830152615aa081615a67565b9050919050565b7f45524332303a205a65726f2041646472657373000000000000000000000000005f82015250565b5f615adb60138361462a565b9150615ae682615aa7565b602082019050919050565b5f6020820190508181035f830152615b0881615acf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f615b6960258361462a565b9150615b7482615b0f565b604082019050919050565b5f6020820190508181035f830152615b9681615b5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f615bf760238361462a565b9150615c0282615b9d565b604082019050919050565b5f6020820190508181035f830152615c2481615beb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f615c8560298361462a565b9150615c9082615c2b565b604082019050919050565b5f6020820190508181035f830152615cb281615c79565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642100000000000000005f82015250565b5f615ced60188361462a565b9150615cf882615cb9565b602082019050919050565b5f6020820190508181035f830152615d1a81615ce1565b9050919050565b7f43616e6e6f7420627579207965740000000000000000000000000000000000005f82015250565b5f615d55600e8361462a565b9150615d6082615d21565b602082019050919050565b5f6020820190508181035f830152615d8281615d49565b9050919050565b7f5072652d6c6971756964697479207472616e736665722070726f74656374696f5f8201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f615de360228361462a565b9150615dee82615d89565b604082019050919050565b5f6020820190508181035f830152615e1081615dd7565b9050919050565b5f615e218261459e565b9150615e2c8361459e565b9250828201905080821115615e4457615e43614f49565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f615e7e601b8361462a565b9150615e8982615e4a565b602082019050919050565b5f6020820190508181035f830152615eab81615e72565b9050919050565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b5f8201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b5f615f0c60238361462a565b9150615f1782615eb2565b604082019050919050565b5f6020820190508181035f830152615f3981615f00565b905091905056fea26469706673582212200af83aac5fb58acfa36257b9bd9943f305a98129487543f93807665a3496612c64736f6c63430008140033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.