More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,147 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21053506 | 23 days ago | IN | 0 ETH | 0.00010729 | ||||
Approve | 20491173 | 102 days ago | IN | 0 ETH | 0.00014151 | ||||
Approve | 20484298 | 103 days ago | IN | 0 ETH | 0.0010509 | ||||
Approve | 20470392 | 105 days ago | IN | 0 ETH | 0.00057177 | ||||
Approve | 20409741 | 113 days ago | IN | 0 ETH | 0.00005566 | ||||
Approve | 20372079 | 118 days ago | IN | 0 ETH | 0.00014658 | ||||
Approve | 20325570 | 125 days ago | IN | 0 ETH | 0.00053351 | ||||
Approve | 20311657 | 127 days ago | IN | 0 ETH | 0.00012783 | ||||
Approve | 20174320 | 146 days ago | IN | 0 ETH | 0.00011972 | ||||
Approve | 20169033 | 147 days ago | IN | 0 ETH | 0.00027375 | ||||
Approve | 20167887 | 147 days ago | IN | 0 ETH | 0.00015625 | ||||
Approve | 20164876 | 147 days ago | IN | 0 ETH | 0.00016597 | ||||
Approve | 20163530 | 147 days ago | IN | 0 ETH | 0.00027866 | ||||
Approve | 20160756 | 148 days ago | IN | 0 ETH | 0.00075461 | ||||
Approve | 20152586 | 149 days ago | IN | 0 ETH | 0.0001285 | ||||
Approve | 20111087 | 155 days ago | IN | 0 ETH | 0.00025061 | ||||
Approve | 20027009 | 166 days ago | IN | 0 ETH | 0.00097668 | ||||
Approve | 19993393 | 171 days ago | IN | 0 ETH | 0.00036325 | ||||
Approve | 19982119 | 173 days ago | IN | 0 ETH | 0.00036842 | ||||
Approve | 19930369 | 180 days ago | IN | 0 ETH | 0.00013113 | ||||
Approve | 19930336 | 180 days ago | IN | 0 ETH | 0.00020604 | ||||
Approve | 19921378 | 181 days ago | IN | 0 ETH | 0.00033367 | ||||
Approve | 19899907 | 184 days ago | IN | 0 ETH | 0.00017579 | ||||
Approve | 19890734 | 186 days ago | IN | 0 ETH | 0.0004754 | ||||
Approve | 19874223 | 188 days ago | IN | 0 ETH | 0.0004866 |
Latest 16 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19386592 | 256 days ago | 0.29302448 ETH | ||||
19386592 | 256 days ago | 0.29302448 ETH | ||||
19386565 | 256 days ago | 0.11694117 ETH | ||||
19386565 | 256 days ago | 0.11694117 ETH | ||||
19386555 | 256 days ago | 0.11577076 ETH | ||||
19386555 | 256 days ago | 0.11577076 ETH | ||||
19386547 | 256 days ago | 0.21538898 ETH | ||||
19386547 | 256 days ago | 0.21538898 ETH | ||||
19386541 | 256 days ago | 2.21677016 ETH | ||||
19386541 | 256 days ago | 2.21677016 ETH | ||||
19386535 | 256 days ago | 2.35768321 ETH | ||||
19386535 | 256 days ago | 2.35768321 ETH | ||||
19386532 | 256 days ago | 2.80884212 ETH | ||||
19386532 | 256 days ago | 2.80884212 ETH | ||||
19386531 | 256 days ago | 3.69163384 ETH | ||||
19386531 | 256 days ago | 3.69163384 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Neow
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // NEOWWWWWWWwwwwwwww // WEBSITE: neow.lol pragma solidity ^0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function totalSupply() external view returns (uint256); 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 IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Neow is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public feeWallet; uint256 public maxTx; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; uint256 public buyFee; uint256 public sellFee; mapping(address => bool) private _isBlackList; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedmaxTx; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event feeWalletUpdated( address indexed newWallet, address indexed oldWallet ); constructor() ERC20("Neow", unicode"NEOW") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTx(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTx(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 1_000_000_000 * 1e18; maxTx = 20_000_000 * 1e18; // 2% of total supply maxWallet = 20_000_000 * 1e18; // 2% of total supply swapTokensAtAmount = (totalSupply * 25) / 10000; // 0.25% swap wallet buyFee = 0; sellFee = 40; feeWallet = address(msg.sender); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTx(owner(), true); excludeFromMaxTx(address(this), true); excludeFromMaxTx(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function enableTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTx lower than 0.1%" ); maxTx = newNum * (10**18); } function updatemaxWalletAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newNum * (10**18); } function excludeFromMaxTx(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTx[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateBuyFees( uint256 _buyFee ) external onlyOwner { require(_buyFee <= 40, "Must keep fees at 40% or less"); buyFee = _buyFee; } function updateSellFees( uint256 _sellFee ) external onlyOwner { require(_sellFee <= 40, "Must keep fees at 40% or less"); sellFee = _sellFee; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateFeeWallet(address newWallet) external onlyOwner { emit feeWalletUpdated(newWallet, feeWallet); feeWallet = newWallet; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { if (amount == 0) { super._transfer(from, to, 0); return; } require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!_isBlackList[from], "[from] black list"); require(!_isBlackList[to], "[to] black list"); if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled) { if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedmaxTx[to]) { require(amount <= maxTx, "Buy transfer amount exceeds the maxTx."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTx[from]) { require(amount <= maxTx, "Sell transfer amount exceeds the maxTx."); } else if (!_isExcludedmaxTx[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fee = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellFee > 0) { fee = amount.mul(sellFee).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyFee > 0) { fee = amount.mul(buyFee).div(100); } super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function manualSwap(uint256 amount) external { require(_msgSender() == feeWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance; (success, ) = address(feeWallet).call{value: ethBalance}(""); } }
{ "evmVersion": "paris", "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"feeWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"enableTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055506001600d60006101000a81548160ff0219169083151502179055503480156200007d57600080fd5b506040518060400160405280600481526020017f4e656f77000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e454f57000000000000000000000000000000000000000000000000000000008152508160039081620000fb919062000cb0565b5080600490816200010d919062000cb0565b5050506200013062000124620004f760201b60201c565b620004ff60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200015c816001620005c560201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000202919062000e01565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000290919062000e01565b6040518363ffffffff1660e01b8152600401620002af92919062000e44565b6020604051808303816000875af1158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f5919062000e01565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005c560201b60201c565b6200039f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620006af60201b60201c565b60006b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006008819055506a108b2a2c28029094000000600a81905550612710601982620003e6919062000ea0565b620003f2919062000f1a565b6009819055506000600e819055506028600f8190555033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200046b6200045d6200075060201b60201c565b60016200077a60201b60201c565b6200047e3060016200077a60201b60201c565b6200049361dead60016200077a60201b60201c565b620004b5620004a76200075060201b60201c565b6001620005c560201b60201c565b620004c8306001620005c560201b60201c565b620004dd61dead6001620005c560201b60201c565b620004ef3382620008b460201b60201c565b5050620010ea565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005d5620004f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005fb6200075060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000fb3565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200078a620004f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007b06200075060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008009062000fb3565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008a8919062000ff2565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200091d906200105f565b60405180910390fd5b6200093a6000838362000a2c60201b60201c565b80600260008282546200094e919062001081565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009a5919062001081565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a0c9190620010cd565b60405180910390a362000a286000838362000a3160201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ab857607f821691505b60208210810362000ace5762000acd62000a70565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000af9565b62000b44868362000af9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b9162000b8b62000b858462000b5c565b62000b66565b62000b5c565b9050919050565b6000819050919050565b62000bad8362000b70565b62000bc562000bbc8262000b98565b84845462000b06565b825550505050565b600090565b62000bdc62000bcd565b62000be981848462000ba2565b505050565b5b8181101562000c115762000c0560008262000bd2565b60018101905062000bef565b5050565b601f82111562000c605762000c2a8162000ad4565b62000c358462000ae9565b8101602085101562000c45578190505b62000c5d62000c548562000ae9565b83018262000bee565b50505b505050565b600082821c905092915050565b600062000c856000198460080262000c65565b1980831691505092915050565b600062000ca0838362000c72565b9150826002028217905092915050565b62000cbb8262000a36565b67ffffffffffffffff81111562000cd75762000cd662000a41565b5b62000ce3825462000a9f565b62000cf082828562000c15565b600060209050601f83116001811462000d28576000841562000d13578287015190505b62000d1f858262000c92565b86555062000d8f565b601f19841662000d388662000ad4565b60005b8281101562000d625784890151825560018201915060208501945060208101905062000d3b565b8683101562000d82578489015162000d7e601f89168262000c72565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dc98262000d9c565b9050919050565b62000ddb8162000dbc565b811462000de757600080fd5b50565b60008151905062000dfb8162000dd0565b92915050565b60006020828403121562000e1a5762000e1962000d97565b5b600062000e2a8482850162000dea565b91505092915050565b62000e3e8162000dbc565b82525050565b600060408201905062000e5b600083018562000e33565b62000e6a602083018462000e33565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ead8262000b5c565b915062000eba8362000b5c565b925082820262000eca8162000b5c565b9150828204841483151762000ee45762000ee362000e71565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f278262000b5c565b915062000f348362000b5c565b92508262000f475762000f4662000eeb565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f9b60208362000f52565b915062000fa88262000f63565b602082019050919050565b6000602082019050818103600083015262000fce8162000f8c565b9050919050565b60008115159050919050565b62000fec8162000fd5565b82525050565b600060208201905062001009600083018462000fe1565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001047601f8362000f52565b915062001054826200100f565b602082019050919050565b600060208201905081810360008301526200107a8162001038565b9050919050565b60006200108e8262000b5c565b91506200109b8362000b5c565b9250828201905080821115620010b657620010b562000e71565b5b92915050565b620010c78162000b5c565b82525050565b6000602082019050620010e46000830184620010bc565b92915050565b608051614e4b6200112260003960008181610b49015281816128040152818161320a015281816132eb01526133120152614e4b6000f3fe6080604052600436106102765760003560e01c80638da5cb5b1161014f578063c0246668116100c1578063e6819ba71161007a578063e6819ba714610987578063e884f260146109c4578063eba4c333146109ef578063f25f4b5614610a18578063f2fde38b14610a43578063f8b45b0514610a6c5761027d565b8063c024666814610865578063c876d0b91461088e578063d257b34f146108b9578063d4c989d3146108f6578063dd62ed3e1461091f578063e2f456051461095c5761027d565b8063a9059cbb11610113578063a9059cbb14610745578063a90eab8c14610782578063b5cc50b7146107ab578063b62496f5146107d4578063b70143c914610811578063bbc0c7421461083a5761027d565b80638da5cb5b14610660578063924de9b71461068b57806395d89b41146106b45780639a7a23d6146106df578063a457c2d7146107085761027d565b806349bd5a5e116101e857806370a08231116101ac57806370a0823114610576578063715018a6146105b357806371fc4688146105ca5780637437681e146105f3578063751039fc1461061e5780638a8c523c146106495761027d565b806349bd5a5e1461048f5780634a62bb65146104ba5780634fbee193146104e557806366718524146105225780636ddd17131461054b5761027d565b806323b872dd1161023a57806323b872dd1461036957806327c8f835146103a65780632b14ca56146103d1578063313ce567146103fc578063395093511461042757806347062402146104645761027d565b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102ea57806318160ddd14610315578063203e727e146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a97565b6040516102a491906137c5565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613880565b610b29565b6040516102e191906138db565b60405180910390f35b3480156102f657600080fd5b506102ff610b47565b60405161030c9190613955565b60405180910390f35b34801561032157600080fd5b5061032a610b6b565b604051610337919061397f565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061399a565b610b75565b005b34801561037557600080fd5b50610390600480360381019061038b91906139c7565b610c84565b60405161039d91906138db565b60405180910390f35b3480156103b257600080fd5b506103bb610d7c565b6040516103c89190613a29565b60405180910390f35b3480156103dd57600080fd5b506103e6610d82565b6040516103f3919061397f565b60405180910390f35b34801561040857600080fd5b50610411610d88565b60405161041e9190613a60565b60405180910390f35b34801561043357600080fd5b5061044e60048036038101906104499190613880565b610d91565b60405161045b91906138db565b60405180910390f35b34801561047057600080fd5b50610479610e3d565b604051610486919061397f565b60405180910390f35b34801561049b57600080fd5b506104a4610e43565b6040516104b19190613a29565b60405180910390f35b3480156104c657600080fd5b506104cf610e69565b6040516104dc91906138db565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190613a7b565b610e7c565b60405161051991906138db565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613a7b565b610ed2565b005b34801561055757600080fd5b5061056061100e565b60405161056d91906138db565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190613a7b565b611021565b6040516105aa919061397f565b60405180910390f35b3480156105bf57600080fd5b506105c8611069565b005b3480156105d657600080fd5b506105f160048036038101906105ec919061399a565b6110f1565b005b3480156105ff57600080fd5b506106086111bb565b604051610615919061397f565b60405180910390f35b34801561062a57600080fd5b506106336111c1565b60405161064091906138db565b60405180910390f35b34801561065557600080fd5b5061065e611261565b005b34801561066c57600080fd5b50610675611315565b6040516106829190613a29565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad9190613ad4565b61133f565b005b3480156106c057600080fd5b506106c96113d8565b6040516106d691906137c5565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613b01565b61146a565b005b34801561071457600080fd5b5061072f600480360381019061072a9190613880565b611584565b60405161073c91906138db565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613880565b61166f565b60405161077991906138db565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613ba3565b61168d565b005b3480156107b757600080fd5b506107d260048036038101906107cd919061399a565b611918565b005b3480156107e057600080fd5b506107fb60048036038101906107f69190613a7b565b611a27565b60405161080891906138db565b60405180910390f35b34801561081d57600080fd5b506108386004803603810190610833919061399a565b611a47565b005b34801561084657600080fd5b5061084f611b0b565b60405161085c91906138db565b60405180910390f35b34801561087157600080fd5b5061088c60048036038101906108879190613b01565b611b1e565b005b34801561089a57600080fd5b506108a3611c43565b6040516108b091906138db565b60405180910390f35b3480156108c557600080fd5b506108e060048036038101906108db919061399a565b611c56565b6040516108ed91906138db565b60405180910390f35b34801561090257600080fd5b5061091d60048036038101906109189190613b01565b611dab565b005b34801561092b57600080fd5b5061094660048036038101906109419190613bf6565b611e82565b604051610953919061397f565b60405180910390f35b34801561096857600080fd5b50610971611f09565b60405161097e919061397f565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613a7b565b611f0f565b6040516109bb91906138db565b60405180910390f35b3480156109d057600080fd5b506109d9611f2f565b6040516109e691906138db565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a11919061399a565b611fcf565b005b348015610a2457600080fd5b50610a2d612099565b604051610a3a9190613a29565b60405180910390f35b348015610a4f57600080fd5b50610a6a6004803603810190610a659190613a7b565b6120bf565b005b348015610a7857600080fd5b50610a816121b6565b604051610a8e919061397f565b60405180910390f35b606060038054610aa690613c65565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad290613c65565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b6000610b3d610b366121bc565b84846121c4565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610b7d6121bc565b73ffffffffffffffffffffffffffffffffffffffff16610b9b611315565b73ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890613ce2565b60405180910390fd5b670de0b6b3a76400006103e86001610c07610b6b565b610c119190613d31565b610c1b9190613da2565b610c259190613da2565b811015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90613e1f565b60405180910390fd5b670de0b6b3a764000081610c7b9190613d31565b60088190555050565b6000610c9184848461238d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cdc6121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390613eb1565b60405180910390fd5b610d7085610d686121bc565b8584036121c4565b60019150509392505050565b61dead81565b600f5481565b60006012905090565b6000610e33610d9e6121bc565b848460016000610dac6121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2e9190613ed1565b6121c4565b6001905092915050565b600e5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610eda6121bc565b73ffffffffffffffffffffffffffffffffffffffff16610ef8611315565b73ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613ce2565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5deb5ef622431f0df5a39b72dd556892f68ba42aa0f3aaf0800e166ce866492860405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110716121bc565b73ffffffffffffffffffffffffffffffffffffffff1661108f611315565b73ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613ce2565b60405180910390fd5b6110ef6000613004565b565b6110f96121bc565b73ffffffffffffffffffffffffffffffffffffffff16611117611315565b73ffffffffffffffffffffffffffffffffffffffff161461116d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116490613ce2565b60405180910390fd5b60288111156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890613f51565b60405180910390fd5b80600e8190555050565b60085481565b60006111cb6121bc565b73ffffffffffffffffffffffffffffffffffffffff166111e9611315565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690613ce2565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b6112696121bc565b73ffffffffffffffffffffffffffffffffffffffff16611287611315565b73ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613ce2565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113476121bc565b73ffffffffffffffffffffffffffffffffffffffff16611365611315565b73ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b290613ce2565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546113e790613c65565b80601f016020809104026020016040519081016040528092919081815260200182805461141390613c65565b80156114605780601f1061143557610100808354040283529160200191611460565b820191906000526020600020905b81548152906001019060200180831161144357829003601f168201915b5050505050905090565b6114726121bc565b73ffffffffffffffffffffffffffffffffffffffff16611490611315565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90613ce2565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613fe3565b60405180910390fd5b61158082826130ca565b5050565b600080600160006115936121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164790614075565b60405180910390fd5b61166461165b6121bc565b858584036121c4565b600191505092915050565b600061168361167c6121bc565b848461238d565b6001905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016117409594939291906140a4565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e670000000000000000000000000000000000008152508051906020012060006040516020016117cc939291906140f7565b604051602081830303815290604052805190602001209050600082826040516020016117f99291906141a6565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161183694939291906141dd565b6020604051602081039080840390855afa158015611858573d6000803e3d6000fd5b50505060206040510351905061186c611315565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061426e565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555050505050505050565b6119206121bc565b73ffffffffffffffffffffffffffffffffffffffff1661193e611315565b73ffffffffffffffffffffffffffffffffffffffff1614611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613ce2565b60405180910390fd5b670de0b6b3a76400006103e860056119aa610b6b565b6119b49190613d31565b6119be9190613da2565b6119c89190613da2565b811015611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190614300565b60405180910390fd5b670de0b6b3a764000081611a1e9190613d31565b600a8190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a886121bc565b73ffffffffffffffffffffffffffffffffffffffff1614611aa857600080fd5b611ab130611021565b8111158015611ac05750600081115b611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af69061436c565b60405180910390fd5b611b088161316b565b50565b600b60019054906101000a900460ff1681565b611b266121bc565b73ffffffffffffffffffffffffffffffffffffffff16611b44611315565b73ffffffffffffffffffffffffffffffffffffffff1614611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190613ce2565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611c3791906138db565b60405180910390a25050565b600d60009054906101000a900460ff1681565b6000611c606121bc565b73ffffffffffffffffffffffffffffffffffffffff16611c7e611315565b73ffffffffffffffffffffffffffffffffffffffff1614611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613ce2565b60405180910390fd5b620186a06001611ce2610b6b565b611cec9190613d31565b611cf69190613da2565b821015611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f906143fe565b60405180910390fd5b6103e86005611d45610b6b565b611d4f9190613d31565b611d599190613da2565b821115611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290614490565b60405180910390fd5b8160098190555060019050919050565b611db36121bc565b73ffffffffffffffffffffffffffffffffffffffff16611dd1611315565b73ffffffffffffffffffffffffffffffffffffffff1614611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e90613ce2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b60126020528060005260406000206000915054906101000a900460ff1681565b6000611f396121bc565b73ffffffffffffffffffffffffffffffffffffffff16611f57611315565b73ffffffffffffffffffffffffffffffffffffffff1614611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa490613ce2565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b611fd76121bc565b73ffffffffffffffffffffffffffffffffffffffff16611ff5611315565b73ffffffffffffffffffffffffffffffffffffffff161461204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613ce2565b60405180910390fd5b602881111561208f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208690613f51565b60405180910390fd5b80600f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120c76121bc565b73ffffffffffffffffffffffffffffffffffffffff166120e5611315565b73ffffffffffffffffffffffffffffffffffffffff161461213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613ce2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a190614522565b60405180910390fd5b6121b381613004565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222a906145b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990614646565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612380919061397f565b60405180910390a3505050565b600081036123a6576123a1838360006133a8565b612fff565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240c906146d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247b9061476a565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612508906147d6565b60405180910390fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561259e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259590614842565b60405180910390fd5b600b60009054906101000a900460ff1615612c63576125bb611315565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561262957506125f9611315565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561269c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126b55750600660149054906101000a900460ff16155b15612c6257600b60019054906101000a900460ff166127af57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061276f5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6127ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a5906148ae565b60405180910390fd5b5b600d60009054906101000a900460ff1615612979576127cc611315565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561285357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128ad5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129785743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292a90614966565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a1c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ac357600854811115612a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5d906149f8565b60405180910390fd5b600a54612a7283611021565b82612a7d9190613ed1565b1115612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab590614a64565b60405180910390fd5b612c61565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b665750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bb557600854811115612bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba790614af6565b60405180910390fd5b612c60565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c5f57600a54612c1283611021565b82612c1d9190613ed1565b1115612c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5590614a64565b60405180910390fd5b5b5b5b5b5b6000612c6e30611021565b905060006009548210159050808015612c935750600b60029054906101000a900460ff165b8015612cac5750600660149054906101000a900460ff16155b8015612d025750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d585750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dae5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df2576001600660146101000a81548160ff021916908315150217905550612dd6613627565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ea85750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612eb257600090505b60008115612fef57601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f1557506000600f54115b15612f4957612f426064612f34600f54886136ff90919063ffffffff16565b61371590919063ffffffff16565b9050612fd5565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612fa457506000600e54115b15612fd457612fd16064612fc3600e54886136ff90919063ffffffff16565b61371590919063ffffffff16565b90505b5b612fe08730836133a8565b8085612fec9190614b16565b94505b612ffa8787876133a8565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561318857613187614b4a565b5b6040519080825280602002602001820160405280156131b65781602001602082028036833780820191505090505b50905030816000815181106131ce576131cd614b79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190614bbd565b816001815181106132ab576132aa614b79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613310307f0000000000000000000000000000000000000000000000000000000000000000846121c4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613372959493929190614ce3565b600060405180830381600087803b15801561338c57600080fd5b505af11580156133a0573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340e906146d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347d9061476a565b60405180910390fd5b61349183838361372b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350e90614daf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135aa9190613ed1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161360e919061397f565b60405180910390a3613621848484613730565b50505050565b600061363230611021565b9050600060146009546136459190613d31565b82111561365e57601460095461365b9190613d31565b91505b6136678261316b565b6000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516136b290614e00565b60006040518083038185875af1925050503d80600081146136ef576040519150601f19603f3d011682016040523d82523d6000602084013e6136f4565b606091505b505080925050505050565b6000818361370d9190613d31565b905092915050565b600081836137239190613da2565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561376f578082015181840152602081019050613754565b60008484015250505050565b6000601f19601f8301169050919050565b600061379782613735565b6137a18185613740565b93506137b1818560208601613751565b6137ba8161377b565b840191505092915050565b600060208201905081810360008301526137df818461378c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613817826137ec565b9050919050565b6138278161380c565b811461383257600080fd5b50565b6000813590506138448161381e565b92915050565b6000819050919050565b61385d8161384a565b811461386857600080fd5b50565b60008135905061387a81613854565b92915050565b60008060408385031215613897576138966137e7565b5b60006138a585828601613835565b92505060206138b68582860161386b565b9150509250929050565b60008115159050919050565b6138d5816138c0565b82525050565b60006020820190506138f060008301846138cc565b92915050565b6000819050919050565b600061391b613916613911846137ec565b6138f6565b6137ec565b9050919050565b600061392d82613900565b9050919050565b600061393f82613922565b9050919050565b61394f81613934565b82525050565b600060208201905061396a6000830184613946565b92915050565b6139798161384a565b82525050565b60006020820190506139946000830184613970565b92915050565b6000602082840312156139b0576139af6137e7565b5b60006139be8482850161386b565b91505092915050565b6000806000606084860312156139e0576139df6137e7565b5b60006139ee86828701613835565b93505060206139ff86828701613835565b9250506040613a108682870161386b565b9150509250925092565b613a238161380c565b82525050565b6000602082019050613a3e6000830184613a1a565b92915050565b600060ff82169050919050565b613a5a81613a44565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137e7565b5b6000613a9f84828501613835565b91505092915050565b613ab1816138c0565b8114613abc57600080fd5b50565b600081359050613ace81613aa8565b92915050565b600060208284031215613aea57613ae96137e7565b5b6000613af884828501613abf565b91505092915050565b60008060408385031215613b1857613b176137e7565b5b6000613b2685828601613835565b9250506020613b3785828601613abf565b9150509250929050565b613b4a81613a44565b8114613b5557600080fd5b50565b600081359050613b6781613b41565b92915050565b6000819050919050565b613b8081613b6d565b8114613b8b57600080fd5b50565b600081359050613b9d81613b77565b92915050565b600080600060608486031215613bbc57613bbb6137e7565b5b6000613bca86828701613b58565b9350506020613bdb86828701613b8e565b9250506040613bec86828701613b8e565b9150509250925092565b60008060408385031215613c0d57613c0c6137e7565b5b6000613c1b85828601613835565b9250506020613c2c85828601613835565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c7d57607f821691505b602082108103613c9057613c8f613c36565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ccc602083613740565b9150613cd782613c96565b602082019050919050565b60006020820190508181036000830152613cfb81613cbf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d3c8261384a565b9150613d478361384a565b9250828202613d558161384a565b91508282048414831517613d6c57613d6b613d02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dad8261384a565b9150613db88361384a565b925082613dc857613dc7613d73565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e3125600082015250565b6000613e09602083613740565b9150613e1482613dd3565b602082019050919050565b60006020820190508181036000830152613e3881613dfc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613e9b602883613740565b9150613ea682613e3f565b604082019050919050565b60006020820190508181036000830152613eca81613e8e565b9050919050565b6000613edc8261384a565b9150613ee78361384a565b9250828201905080821115613eff57613efe613d02565b5b92915050565b7f4d757374206b656570206665657320617420343025206f72206c657373000000600082015250565b6000613f3b601d83613740565b9150613f4682613f05565b602082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613fcd603983613740565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061405f602583613740565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b61409e81613b6d565b82525050565b600060a0820190506140b96000830188614095565b6140c66020830187614095565b6140d36040830186614095565b6140e06060830185613970565b6140ed6080830184613a1a565b9695505050505050565b600060608201905061410c6000830186614095565b6141196020830185614095565b6141266040830184613970565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b600061416f60028361412e565b915061417a82614139565b600282019050919050565b6000819050919050565b6141a061419b82613b6d565b614185565b82525050565b60006141b182614162565b91506141bd828561418f565b6020820191506141cd828461418f565b6020820191508190509392505050565b60006080820190506141f26000830187614095565b6141ff6020830186613a51565b61420c6040830185614095565b6142196060830184614095565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000614258601183613740565b915061426382614222565b602082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142ea602483613740565b91506142f58261428e565b604082019050919050565b60006020820190508181036000830152614319816142dd565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000614356600c83613740565b915061436182614320565b602082019050919050565b6000602082019050818103600083015261438581614349565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006143e8603583613740565b91506143f38261438c565b604082019050919050565b60006020820190508181036000830152614417816143db565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061447a603483613740565b91506144858261441e565b604082019050919050565b600060208201905081810360008301526144a98161446d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061450c602683613740565b9150614517826144b0565b604082019050919050565b6000602082019050818103600083015261453b816144ff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061459e602483613740565b91506145a982614542565b604082019050919050565b600060208201905081810360008301526145cd81614591565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614630602283613740565b915061463b826145d4565b604082019050919050565b6000602082019050818103600083015261465f81614623565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146c2602583613740565b91506146cd82614666565b604082019050919050565b600060208201905081810360008301526146f1816146b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614754602383613740565b915061475f826146f8565b604082019050919050565b6000602082019050818103600083015261478381614747565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006147c0601183613740565b91506147cb8261478a565b602082019050919050565b600060208201905081810360008301526147ef816147b3565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b600061482c600f83613740565b9150614837826147f6565b602082019050919050565b6000602082019050818103600083015261485b8161481f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614898601683613740565b91506148a382614862565b602082019050919050565b600060208201905081810360008301526148c78161488b565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614950604983613740565b915061495b826148ce565b606082019050919050565b6000602082019050818103600083015261497f81614943565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b60006149e2602683613740565b91506149ed82614986565b604082019050919050565b60006020820190508181036000830152614a11816149d5565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614a4e601383613740565b9150614a5982614a18565b602082019050919050565b60006020820190508181036000830152614a7d81614a41565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b6000614ae0602783613740565b9150614aeb82614a84565b604082019050919050565b60006020820190508181036000830152614b0f81614ad3565b9050919050565b6000614b218261384a565b9150614b2c8361384a565b9250828203905081811115614b4457614b43613d02565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614bb78161381e565b92915050565b600060208284031215614bd357614bd26137e7565b5b6000614be184828501614ba8565b91505092915050565b6000819050919050565b6000614c0f614c0a614c0584614bea565b6138f6565b61384a565b9050919050565b614c1f81614bf4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c5a8161380c565b82525050565b6000614c6c8383614c51565b60208301905092915050565b6000602082019050919050565b6000614c9082614c25565b614c9a8185614c30565b9350614ca583614c41565b8060005b83811015614cd6578151614cbd8882614c60565b9750614cc883614c78565b925050600181019050614ca9565b5085935050505092915050565b600060a082019050614cf86000830188613970565b614d056020830187614c16565b8181036040830152614d178186614c85565b9050614d266060830185613a1a565b614d336080830184613970565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d99602683613740565b9150614da482614d3d565b604082019050919050565b60006020820190508181036000830152614dc881614d8c565b9050919050565b600081905092915050565b50565b6000614dea600083614dcf565b9150614df582614dda565b600082019050919050565b6000614e0b82614ddd565b915081905091905056fea26469706673582212208ea2bcc08f49f804a67fb90e55f7bfb02139af359d6837b8fea3982c3cfc441c64736f6c63430008170033
Deployed Bytecode
0x6080604052600436106102765760003560e01c80638da5cb5b1161014f578063c0246668116100c1578063e6819ba71161007a578063e6819ba714610987578063e884f260146109c4578063eba4c333146109ef578063f25f4b5614610a18578063f2fde38b14610a43578063f8b45b0514610a6c5761027d565b8063c024666814610865578063c876d0b91461088e578063d257b34f146108b9578063d4c989d3146108f6578063dd62ed3e1461091f578063e2f456051461095c5761027d565b8063a9059cbb11610113578063a9059cbb14610745578063a90eab8c14610782578063b5cc50b7146107ab578063b62496f5146107d4578063b70143c914610811578063bbc0c7421461083a5761027d565b80638da5cb5b14610660578063924de9b71461068b57806395d89b41146106b45780639a7a23d6146106df578063a457c2d7146107085761027d565b806349bd5a5e116101e857806370a08231116101ac57806370a0823114610576578063715018a6146105b357806371fc4688146105ca5780637437681e146105f3578063751039fc1461061e5780638a8c523c146106495761027d565b806349bd5a5e1461048f5780634a62bb65146104ba5780634fbee193146104e557806366718524146105225780636ddd17131461054b5761027d565b806323b872dd1161023a57806323b872dd1461036957806327c8f835146103a65780632b14ca56146103d1578063313ce567146103fc578063395093511461042757806347062402146104645761027d565b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102ea57806318160ddd14610315578063203e727e146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a97565b6040516102a491906137c5565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190613880565b610b29565b6040516102e191906138db565b60405180910390f35b3480156102f657600080fd5b506102ff610b47565b60405161030c9190613955565b60405180910390f35b34801561032157600080fd5b5061032a610b6b565b604051610337919061397f565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061399a565b610b75565b005b34801561037557600080fd5b50610390600480360381019061038b91906139c7565b610c84565b60405161039d91906138db565b60405180910390f35b3480156103b257600080fd5b506103bb610d7c565b6040516103c89190613a29565b60405180910390f35b3480156103dd57600080fd5b506103e6610d82565b6040516103f3919061397f565b60405180910390f35b34801561040857600080fd5b50610411610d88565b60405161041e9190613a60565b60405180910390f35b34801561043357600080fd5b5061044e60048036038101906104499190613880565b610d91565b60405161045b91906138db565b60405180910390f35b34801561047057600080fd5b50610479610e3d565b604051610486919061397f565b60405180910390f35b34801561049b57600080fd5b506104a4610e43565b6040516104b19190613a29565b60405180910390f35b3480156104c657600080fd5b506104cf610e69565b6040516104dc91906138db565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190613a7b565b610e7c565b60405161051991906138db565b60405180910390f35b34801561052e57600080fd5b5061054960048036038101906105449190613a7b565b610ed2565b005b34801561055757600080fd5b5061056061100e565b60405161056d91906138db565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190613a7b565b611021565b6040516105aa919061397f565b60405180910390f35b3480156105bf57600080fd5b506105c8611069565b005b3480156105d657600080fd5b506105f160048036038101906105ec919061399a565b6110f1565b005b3480156105ff57600080fd5b506106086111bb565b604051610615919061397f565b60405180910390f35b34801561062a57600080fd5b506106336111c1565b60405161064091906138db565b60405180910390f35b34801561065557600080fd5b5061065e611261565b005b34801561066c57600080fd5b50610675611315565b6040516106829190613a29565b60405180910390f35b34801561069757600080fd5b506106b260048036038101906106ad9190613ad4565b61133f565b005b3480156106c057600080fd5b506106c96113d8565b6040516106d691906137c5565b60405180910390f35b3480156106eb57600080fd5b5061070660048036038101906107019190613b01565b61146a565b005b34801561071457600080fd5b5061072f600480360381019061072a9190613880565b611584565b60405161073c91906138db565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190613880565b61166f565b60405161077991906138db565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a49190613ba3565b61168d565b005b3480156107b757600080fd5b506107d260048036038101906107cd919061399a565b611918565b005b3480156107e057600080fd5b506107fb60048036038101906107f69190613a7b565b611a27565b60405161080891906138db565b60405180910390f35b34801561081d57600080fd5b506108386004803603810190610833919061399a565b611a47565b005b34801561084657600080fd5b5061084f611b0b565b60405161085c91906138db565b60405180910390f35b34801561087157600080fd5b5061088c60048036038101906108879190613b01565b611b1e565b005b34801561089a57600080fd5b506108a3611c43565b6040516108b091906138db565b60405180910390f35b3480156108c557600080fd5b506108e060048036038101906108db919061399a565b611c56565b6040516108ed91906138db565b60405180910390f35b34801561090257600080fd5b5061091d60048036038101906109189190613b01565b611dab565b005b34801561092b57600080fd5b5061094660048036038101906109419190613bf6565b611e82565b604051610953919061397f565b60405180910390f35b34801561096857600080fd5b50610971611f09565b60405161097e919061397f565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a99190613a7b565b611f0f565b6040516109bb91906138db565b60405180910390f35b3480156109d057600080fd5b506109d9611f2f565b6040516109e691906138db565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a11919061399a565b611fcf565b005b348015610a2457600080fd5b50610a2d612099565b604051610a3a9190613a29565b60405180910390f35b348015610a4f57600080fd5b50610a6a6004803603810190610a659190613a7b565b6120bf565b005b348015610a7857600080fd5b50610a816121b6565b604051610a8e919061397f565b60405180910390f35b606060038054610aa690613c65565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad290613c65565b8015610b1f5780601f10610af457610100808354040283529160200191610b1f565b820191906000526020600020905b815481529060010190602001808311610b0257829003601f168201915b5050505050905090565b6000610b3d610b366121bc565b84846121c4565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610b7d6121bc565b73ffffffffffffffffffffffffffffffffffffffff16610b9b611315565b73ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be890613ce2565b60405180910390fd5b670de0b6b3a76400006103e86001610c07610b6b565b610c119190613d31565b610c1b9190613da2565b610c259190613da2565b811015610c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5e90613e1f565b60405180910390fd5b670de0b6b3a764000081610c7b9190613d31565b60088190555050565b6000610c9184848461238d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cdc6121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390613eb1565b60405180910390fd5b610d7085610d686121bc565b8584036121c4565b60019150509392505050565b61dead81565b600f5481565b60006012905090565b6000610e33610d9e6121bc565b848460016000610dac6121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2e9190613ed1565b6121c4565b6001905092915050565b600e5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610eda6121bc565b73ffffffffffffffffffffffffffffffffffffffff16610ef8611315565b73ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613ce2565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5deb5ef622431f0df5a39b72dd556892f68ba42aa0f3aaf0800e166ce866492860405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110716121bc565b73ffffffffffffffffffffffffffffffffffffffff1661108f611315565b73ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613ce2565b60405180910390fd5b6110ef6000613004565b565b6110f96121bc565b73ffffffffffffffffffffffffffffffffffffffff16611117611315565b73ffffffffffffffffffffffffffffffffffffffff161461116d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116490613ce2565b60405180910390fd5b60288111156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890613f51565b60405180910390fd5b80600e8190555050565b60085481565b60006111cb6121bc565b73ffffffffffffffffffffffffffffffffffffffff166111e9611315565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123690613ce2565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b6112696121bc565b73ffffffffffffffffffffffffffffffffffffffff16611287611315565b73ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613ce2565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113476121bc565b73ffffffffffffffffffffffffffffffffffffffff16611365611315565b73ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b290613ce2565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546113e790613c65565b80601f016020809104026020016040519081016040528092919081815260200182805461141390613c65565b80156114605780601f1061143557610100808354040283529160200191611460565b820191906000526020600020905b81548152906001019060200180831161144357829003601f168201915b5050505050905090565b6114726121bc565b73ffffffffffffffffffffffffffffffffffffffff16611490611315565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90613ce2565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613fe3565b60405180910390fd5b61158082826130ca565b5050565b600080600160006115936121bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164790614075565b60405180910390fd5b61166461165b6121bc565b858584036121c4565b600191505092915050565b600061168361167c6121bc565b848461238d565b6001905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016117409594939291906140a4565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e670000000000000000000000000000000000008152508051906020012060006040516020016117cc939291906140f7565b604051602081830303815290604052805190602001209050600082826040516020016117f99291906141a6565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161183694939291906141dd565b6020604051602081039080840390855afa158015611858573d6000803e3d6000fd5b50505060206040510351905061186c611315565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061426e565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555050505050505050565b6119206121bc565b73ffffffffffffffffffffffffffffffffffffffff1661193e611315565b73ffffffffffffffffffffffffffffffffffffffff1614611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613ce2565b60405180910390fd5b670de0b6b3a76400006103e860056119aa610b6b565b6119b49190613d31565b6119be9190613da2565b6119c89190613da2565b811015611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190614300565b60405180910390fd5b670de0b6b3a764000081611a1e9190613d31565b600a8190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a886121bc565b73ffffffffffffffffffffffffffffffffffffffff1614611aa857600080fd5b611ab130611021565b8111158015611ac05750600081115b611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af69061436c565b60405180910390fd5b611b088161316b565b50565b600b60019054906101000a900460ff1681565b611b266121bc565b73ffffffffffffffffffffffffffffffffffffffff16611b44611315565b73ffffffffffffffffffffffffffffffffffffffff1614611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190613ce2565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611c3791906138db565b60405180910390a25050565b600d60009054906101000a900460ff1681565b6000611c606121bc565b73ffffffffffffffffffffffffffffffffffffffff16611c7e611315565b73ffffffffffffffffffffffffffffffffffffffff1614611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613ce2565b60405180910390fd5b620186a06001611ce2610b6b565b611cec9190613d31565b611cf69190613da2565b821015611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f906143fe565b60405180910390fd5b6103e86005611d45610b6b565b611d4f9190613d31565b611d599190613da2565b821115611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290614490565b60405180910390fd5b8160098190555060019050919050565b611db36121bc565b73ffffffffffffffffffffffffffffffffffffffff16611dd1611315565b73ffffffffffffffffffffffffffffffffffffffff1614611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e90613ce2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b60126020528060005260406000206000915054906101000a900460ff1681565b6000611f396121bc565b73ffffffffffffffffffffffffffffffffffffffff16611f57611315565b73ffffffffffffffffffffffffffffffffffffffff1614611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa490613ce2565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b611fd76121bc565b73ffffffffffffffffffffffffffffffffffffffff16611ff5611315565b73ffffffffffffffffffffffffffffffffffffffff161461204b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204290613ce2565b60405180910390fd5b602881111561208f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208690613f51565b60405180910390fd5b80600f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6120c76121bc565b73ffffffffffffffffffffffffffffffffffffffff166120e5611315565b73ffffffffffffffffffffffffffffffffffffffff161461213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613ce2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a190614522565b60405180910390fd5b6121b381613004565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222a906145b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229990614646565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612380919061397f565b60405180910390a3505050565b600081036123a6576123a1838360006133a8565b612fff565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240c906146d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247b9061476a565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612508906147d6565b60405180910390fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561259e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259590614842565b60405180910390fd5b600b60009054906101000a900460ff1615612c63576125bb611315565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561262957506125f9611315565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126625750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561269c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126b55750600660149054906101000a900460ff16155b15612c6257600b60019054906101000a900460ff166127af57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061276f5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6127ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a5906148ae565b60405180910390fd5b5b600d60009054906101000a900460ff1615612979576127cc611315565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561285357507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128ad5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129785743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292a90614966565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a1c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ac357600854811115612a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5d906149f8565b60405180910390fd5b600a54612a7283611021565b82612a7d9190613ed1565b1115612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab590614a64565b60405180910390fd5b612c61565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b665750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bb557600854811115612bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba790614af6565b60405180910390fd5b612c60565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c5f57600a54612c1283611021565b82612c1d9190613ed1565b1115612c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5590614a64565b60405180910390fd5b5b5b5b5b5b6000612c6e30611021565b905060006009548210159050808015612c935750600b60029054906101000a900460ff165b8015612cac5750600660149054906101000a900460ff16155b8015612d025750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d585750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612dae5750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df2576001600660146101000a81548160ff021916908315150217905550612dd6613627565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ea85750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612eb257600090505b60008115612fef57601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f1557506000600f54115b15612f4957612f426064612f34600f54886136ff90919063ffffffff16565b61371590919063ffffffff16565b9050612fd5565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612fa457506000600e54115b15612fd457612fd16064612fc3600e54886136ff90919063ffffffff16565b61371590919063ffffffff16565b90505b5b612fe08730836133a8565b8085612fec9190614b16565b94505b612ffa8787876133a8565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561318857613187614b4a565b5b6040519080825280602002602001820160405280156131b65781602001602082028036833780820191505090505b50905030816000815181106131ce576131cd614b79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190614bbd565b816001815181106132ab576132aa614b79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613310307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121c4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613372959493929190614ce3565b600060405180830381600087803b15801561338c57600080fd5b505af11580156133a0573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340e906146d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347d9061476a565b60405180910390fd5b61349183838361372b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350e90614daf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135aa9190613ed1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161360e919061397f565b60405180910390a3613621848484613730565b50505050565b600061363230611021565b9050600060146009546136459190613d31565b82111561365e57601460095461365b9190613d31565b91505b6136678261316b565b6000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516136b290614e00565b60006040518083038185875af1925050503d80600081146136ef576040519150601f19603f3d011682016040523d82523d6000602084013e6136f4565b606091505b505080925050505050565b6000818361370d9190613d31565b905092915050565b600081836137239190613da2565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561376f578082015181840152602081019050613754565b60008484015250505050565b6000601f19601f8301169050919050565b600061379782613735565b6137a18185613740565b93506137b1818560208601613751565b6137ba8161377b565b840191505092915050565b600060208201905081810360008301526137df818461378c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613817826137ec565b9050919050565b6138278161380c565b811461383257600080fd5b50565b6000813590506138448161381e565b92915050565b6000819050919050565b61385d8161384a565b811461386857600080fd5b50565b60008135905061387a81613854565b92915050565b60008060408385031215613897576138966137e7565b5b60006138a585828601613835565b92505060206138b68582860161386b565b9150509250929050565b60008115159050919050565b6138d5816138c0565b82525050565b60006020820190506138f060008301846138cc565b92915050565b6000819050919050565b600061391b613916613911846137ec565b6138f6565b6137ec565b9050919050565b600061392d82613900565b9050919050565b600061393f82613922565b9050919050565b61394f81613934565b82525050565b600060208201905061396a6000830184613946565b92915050565b6139798161384a565b82525050565b60006020820190506139946000830184613970565b92915050565b6000602082840312156139b0576139af6137e7565b5b60006139be8482850161386b565b91505092915050565b6000806000606084860312156139e0576139df6137e7565b5b60006139ee86828701613835565b93505060206139ff86828701613835565b9250506040613a108682870161386b565b9150509250925092565b613a238161380c565b82525050565b6000602082019050613a3e6000830184613a1a565b92915050565b600060ff82169050919050565b613a5a81613a44565b82525050565b6000602082019050613a756000830184613a51565b92915050565b600060208284031215613a9157613a906137e7565b5b6000613a9f84828501613835565b91505092915050565b613ab1816138c0565b8114613abc57600080fd5b50565b600081359050613ace81613aa8565b92915050565b600060208284031215613aea57613ae96137e7565b5b6000613af884828501613abf565b91505092915050565b60008060408385031215613b1857613b176137e7565b5b6000613b2685828601613835565b9250506020613b3785828601613abf565b9150509250929050565b613b4a81613a44565b8114613b5557600080fd5b50565b600081359050613b6781613b41565b92915050565b6000819050919050565b613b8081613b6d565b8114613b8b57600080fd5b50565b600081359050613b9d81613b77565b92915050565b600080600060608486031215613bbc57613bbb6137e7565b5b6000613bca86828701613b58565b9350506020613bdb86828701613b8e565b9250506040613bec86828701613b8e565b9150509250925092565b60008060408385031215613c0d57613c0c6137e7565b5b6000613c1b85828601613835565b9250506020613c2c85828601613835565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c7d57607f821691505b602082108103613c9057613c8f613c36565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ccc602083613740565b9150613cd782613c96565b602082019050919050565b60006020820190508181036000830152613cfb81613cbf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d3c8261384a565b9150613d478361384a565b9250828202613d558161384a565b91508282048414831517613d6c57613d6b613d02565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dad8261384a565b9150613db88361384a565b925082613dc857613dc7613d73565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e3125600082015250565b6000613e09602083613740565b9150613e1482613dd3565b602082019050919050565b60006020820190508181036000830152613e3881613dfc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613e9b602883613740565b9150613ea682613e3f565b604082019050919050565b60006020820190508181036000830152613eca81613e8e565b9050919050565b6000613edc8261384a565b9150613ee78361384a565b9250828201905080821115613eff57613efe613d02565b5b92915050565b7f4d757374206b656570206665657320617420343025206f72206c657373000000600082015250565b6000613f3b601d83613740565b9150613f4682613f05565b602082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613fcd603983613740565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061405f602583613740565b915061406a82614003565b604082019050919050565b6000602082019050818103600083015261408e81614052565b9050919050565b61409e81613b6d565b82525050565b600060a0820190506140b96000830188614095565b6140c66020830187614095565b6140d36040830186614095565b6140e06060830185613970565b6140ed6080830184613a1a565b9695505050505050565b600060608201905061410c6000830186614095565b6141196020830185614095565b6141266040830184613970565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b600061416f60028361412e565b915061417a82614139565b600282019050919050565b6000819050919050565b6141a061419b82613b6d565b614185565b82525050565b60006141b182614162565b91506141bd828561418f565b6020820191506141cd828461418f565b6020820191508190509392505050565b60006080820190506141f26000830187614095565b6141ff6020830186613a51565b61420c6040830185614095565b6142196060830184614095565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000614258601183613740565b915061426382614222565b602082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142ea602483613740565b91506142f58261428e565b604082019050919050565b60006020820190508181036000830152614319816142dd565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000614356600c83613740565b915061436182614320565b602082019050919050565b6000602082019050818103600083015261438581614349565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006143e8603583613740565b91506143f38261438c565b604082019050919050565b60006020820190508181036000830152614417816143db565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061447a603483613740565b91506144858261441e565b604082019050919050565b600060208201905081810360008301526144a98161446d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061450c602683613740565b9150614517826144b0565b604082019050919050565b6000602082019050818103600083015261453b816144ff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061459e602483613740565b91506145a982614542565b604082019050919050565b600060208201905081810360008301526145cd81614591565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614630602283613740565b915061463b826145d4565b604082019050919050565b6000602082019050818103600083015261465f81614623565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006146c2602583613740565b91506146cd82614666565b604082019050919050565b600060208201905081810360008301526146f1816146b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614754602383613740565b915061475f826146f8565b604082019050919050565b6000602082019050818103600083015261478381614747565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006147c0601183613740565b91506147cb8261478a565b602082019050919050565b600060208201905081810360008301526147ef816147b3565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b600061482c600f83613740565b9150614837826147f6565b602082019050919050565b6000602082019050818103600083015261485b8161481f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614898601683613740565b91506148a382614862565b602082019050919050565b600060208201905081810360008301526148c78161488b565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614950604983613740565b915061495b826148ce565b606082019050919050565b6000602082019050818103600083015261497f81614943565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b60006149e2602683613740565b91506149ed82614986565b604082019050919050565b60006020820190508181036000830152614a11816149d5565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614a4e601383613740565b9150614a5982614a18565b602082019050919050565b60006020820190508181036000830152614a7d81614a41565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b6000614ae0602783613740565b9150614aeb82614a84565b604082019050919050565b60006020820190508181036000830152614b0f81614ad3565b9050919050565b6000614b218261384a565b9150614b2c8361384a565b9250828203905081811115614b4457614b43613d02565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614bb78161381e565b92915050565b600060208284031215614bd357614bd26137e7565b5b6000614be184828501614ba8565b91505092915050565b6000819050919050565b6000614c0f614c0a614c0584614bea565b6138f6565b61384a565b9050919050565b614c1f81614bf4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c5a8161380c565b82525050565b6000614c6c8383614c51565b60208301905092915050565b6000602082019050919050565b6000614c9082614c25565b614c9a8185614c30565b9350614ca583614c41565b8060005b83811015614cd6578151614cbd8882614c60565b9750614cc883614c78565b925050600181019050614ca9565b5085935050505092915050565b600060a082019050614cf86000830188613970565b614d056020830187614c16565b8181036040830152614d178186614c85565b9050614d266060830185613a1a565b614d336080830184613970565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614d99602683613740565b9150614da482614d3d565b604082019050919050565b60006020820190508181036000830152614dc881614d8c565b9050919050565b600081905092915050565b50565b6000614dea600083614dcf565b9150614df582614dda565b600082019050919050565b6000614e0b82614ddd565b915081905091905056fea26469706673582212208ea2bcc08f49f804a67fb90e55f7bfb02139af359d6837b8fea3982c3cfc441c64736f6c63430008170033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,116.65 | 0.133 | $414.51 |
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.