More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 70 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 19999369 | 195 days ago | IN | 0 ETH | 0.00055195 | ||||
Approve | 19977078 | 198 days ago | IN | 0 ETH | 0.00056686 | ||||
Approve | 19977057 | 198 days ago | IN | 0 ETH | 0.00053056 | ||||
Approve | 19977041 | 198 days ago | IN | 0 ETH | 0.00052386 | ||||
Approve | 19977027 | 198 days ago | IN | 0 ETH | 0.00052171 | ||||
Approve | 19926938 | 205 days ago | IN | 0 ETH | 0.00067421 | ||||
Approve | 19926610 | 205 days ago | IN | 0 ETH | 0.00104072 | ||||
Approve | 19926587 | 205 days ago | IN | 0 ETH | 0.00104428 | ||||
Approve | 19926584 | 205 days ago | IN | 0 ETH | 0.00084831 | ||||
Approve | 19926537 | 205 days ago | IN | 0 ETH | 0.00109149 | ||||
Approve | 19926513 | 205 days ago | IN | 0 ETH | 0.00109532 | ||||
Approve | 19926500 | 205 days ago | IN | 0 ETH | 0.00100206 | ||||
Approve | 19926496 | 205 days ago | IN | 0 ETH | 0.00111872 | ||||
Approve | 19926496 | 205 days ago | IN | 0 ETH | 0.00111872 | ||||
Approve | 19926494 | 205 days ago | IN | 0 ETH | 0.00123314 | ||||
Approve | 19926492 | 205 days ago | IN | 0 ETH | 0.00104391 | ||||
Approve | 19926491 | 205 days ago | IN | 0 ETH | 0.00112875 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00117352 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 | ||||
Approve | 19926490 | 205 days ago | IN | 0 ETH | 0.00126672 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19977082 | 198 days ago | 0.0092035 ETH | ||||
19977082 | 198 days ago | 0.0092035 ETH | ||||
19977082 | 198 days ago | 0.01840701 ETH | ||||
19977059 | 198 days ago | 0.00979016 ETH | ||||
19977059 | 198 days ago | 0.00979016 ETH | ||||
19977059 | 198 days ago | 0.01958033 ETH | ||||
19977047 | 198 days ago | 0.01043479 ETH | ||||
19977047 | 198 days ago | 0.01043479 ETH | ||||
19977047 | 198 days ago | 0.02086959 ETH | ||||
19967512 | 199 days ago | 0.01316522 ETH | ||||
19967512 | 199 days ago | 0.01316522 ETH | ||||
19967512 | 199 days ago | 0.02633045 ETH | ||||
19967512 | 199 days ago | 0.01391165 ETH | ||||
19967512 | 199 days ago | 0.01391165 ETH | ||||
19967512 | 199 days ago | 0.02782331 ETH | ||||
19926933 | 205 days ago | 0.01439944 ETH | ||||
19926933 | 205 days ago | 0.01439944 ETH | ||||
19926933 | 205 days ago | 0.02879888 ETH | ||||
19926811 | 205 days ago | 0.01525496 ETH | ||||
19926811 | 205 days ago | 0.01525496 ETH | ||||
19926811 | 205 days ago | 0.03050993 ETH | ||||
19926807 | 205 days ago | 0.01618911 ETH | ||||
19926807 | 205 days ago | 0.01618911 ETH | ||||
19926807 | 205 days ago | 0.03237823 ETH | ||||
19926807 | 205 days ago | 0.01721181 ETH |
Loading...
Loading
Contract Name:
NeuroTensor
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-22 */ /* WEB: https://neurotensor.tech/ https://linktr.ee/neurotensor */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; 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); } interface IReceiver { function onTokenReceived(address from, uint256 value, bytes calldata data) external returns (bool); } 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 NeuroTensor is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address private taxWallet1; address private taxWallet2; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 private launchedAt; uint256 private launchedTime; uint256 public deadBlocks; uint256 public buyTotalFees; uint256 private buyMarketingFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; mapping(address => bool) private _isExcludedFromFees; mapping(uint256 => uint256) private swapInBlock; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event walletOneUpdated( address indexed newWallet, address indexed oldWallet ); event walletTwoUpdated( address indexed newWallet, address indexed oldWallet ); event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor() ERC20("NeuroTensor", "NTR") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 100_000_000 * 1e18; maxTransactionAmount = (totalSupply * 2) / 100; maxWallet = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 1) / 10000; taxWallet1 = msg.sender; taxWallet2 = msg.sender; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading(uint256 _deadBlocks) external onlyOwner { deadBlocks = _deadBlocks; tradingActive = true; swapEnabled = true; launchedAt = block.number; launchedTime = block.timestamp; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } 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 maxTransactionAmount lower than 0.1%" ); maxTransactionAmount = 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 whitelistContract(address _whitelist, bool isWL) public onlyOwner { _isExcludedMaxTransactionAmount[_whitelist] = isWL; _isExcludedFromFees[_whitelist] = isWL; } function excludeFromMaxTransaction( address updAds, bool isEx ) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function manualSwap(uint256 amount) external { require(_msgSender() == taxWallet1); require( amount <= balanceOf(address(this)) && amount > 0, "Wrong amount" ); swapTokensForEth(amount); } function manualSend() external { bool success; (success, ) = address(taxWallet1).call{value: address(this).balance}( "" ); } 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 updateBuyFees(uint256 _marketingFee) external onlyOwner { buyMarketingFee = _marketingFee; buyTotalFees = buyMarketingFee; require(buyTotalFees <= 50, "Must keep fees at 50% or less"); } function updateSellFees(uint256 _marketingFee) external onlyOwner { sellMarketingFee = _marketingFee; sellTotalFees = sellMarketingFee; require(sellTotalFees <= 50, "Must keep fees at 50% or less"); } function updateWallets( address newWalletOne, address newWalletTwo ) external onlyOwner { emit walletOneUpdated(newWalletOne, taxWallet1); emit walletTwoUpdated(newWalletTwo, taxWallet2); taxWallet1 = newWalletOne; taxWallet2 = newWalletTwo; } function bulkTransfer(address[] calldata to, uint256[] calldata values) public returns (bool) { require(to.length == values.length, "Mismatched array lengths"); for (uint256 i = 0; i < to.length; i++) { transfer(to[i], values[i]); } return true; } function approveAndCall(address spender, uint256 value, bytes calldata data) public returns (bool) { approve(spender, value); require(IReceiver(spender).onTokenReceived(msg.sender, value, data), "onTokenReceived failed"); return true; } function transferAndCall(address to, uint256 value, bytes calldata data) public returns (bool) { transfer(to, value); require(IReceiver(to).onTokenReceived(msg.sender, value, data), "onTokenReceived failed"); return true; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 blockNum = block.number; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if ((launchedAt + deadBlocks) >= blockNum) { buyMarketingFee = 35; buyTotalFees = buyMarketingFee; sellMarketingFee = 35; sellTotalFees = sellMarketingFee; } else { buyMarketingFee = 35; buyTotalFees = buyMarketingFee; sellMarketingFee = 35; sellTotalFees = sellMarketingFee; } if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && (swapInBlock[blockNum] < 2) && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); ++swapInBlock[blockNum]; swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, 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 == 0) { return; } if (contractBalance > swapTokensAtAmount * 50) { contractBalance = swapTokensAtAmount * 50; } uint256 amountToSwapForETH = contractBalance; swapTokensForEth(amountToSwapForETH); (success, ) = address(taxWallet1).call{ value: address(this).balance / 2 }(""); (success, ) = address(taxWallet2).call{value: address(this).balance}( "" ); } }
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":"walletOneUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"walletTwoUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","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":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","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":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"bulkTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTotalFees","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":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","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":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"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":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","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":"address","name":"newWalletOne","type":"address"},{"internalType":"address","name":"newWalletTwo","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600b805462ffffff191660011790553480156200001f575f80fd5b506040518060400160405280600b81526020016a2732bab937aa32b739b7b960a91b81525060405180604001604052806003815260200162272a2960e91b81525081600390816200007191906200069b565b5060046200008082826200069b565b5050506200009d620000976200034f60201b60201c565b62000353565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000bf816001620003a4565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000108573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012e919062000767565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a0919062000767565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000211919062000767565b6001600160a01b031660a08190526200022c906001620003a4565b60a0516200023c9060016200041c565b6a52b7d2dcc80cd2e4000000606462000257826002620007aa565b620002639190620007ca565b600855606462000275826002620007aa565b620002819190620007ca565b600a5561271062000294826001620007aa565b620002a09190620007ca565b60095560068054336001600160a01b03199182168117909255600780549091169091179055620002e4620002dc6005546001600160a01b031690565b60016200046f565b620002f13060016200046f565b6200030061dead60016200046f565b6200031f620003176005546001600160a01b031690565b6001620003a4565b6200032c306001620003a4565b6200033b61dead6001620003a4565b62000347338262000517565b505062000800565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620003f25760405162461bcd60e51b815260206004820181905260248201525f8051602062002f6e83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004b95760405162461bcd60e51b815260206004820181905260248201525f8051602062002f6e8339815191526044820152606401620003e9565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200056f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003e9565b8060025f828254620005829190620007ea565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005b0908490620007ea565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062757607f821691505b6020821081036200064657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005f957805f5260205f20601f840160051c81016020851015620006735750805b601f840160051c820191505b8181101562000694575f81556001016200067f565b5050505050565b81516001600160401b03811115620006b757620006b7620005fe565b620006cf81620006c8845462000612565b846200064c565b602080601f83116001811462000705575f8415620006ed5750858301515b5f19600386901b1c1916600185901b1785556200075f565b5f85815260208120601f198616915b82811015620007355788860151825594840194600190910190840162000714565b50858210156200075357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000778575f80fd5b81516001600160a01b03811681146200078f575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620007c457620007c462000796565b92915050565b5f82620007e557634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620007c457620007c462000796565b60805160a0516127306200083e5f395f818161045c0152610e6501525f818161034501528181611e0701528181611ebe0152611efa01526127305ff3fe608060405260043610610283575f3560e01c80639213691311610155578063c8c8ebe4116100be578063e8ba854f11610078578063e8ba854f146107cf578063eba4c333146107ee578063f2fde38b1461080d578063f42938901461082c578063f8b45b0514610840578063fabb0b4f14610855575f80fd5b8063c8c8ebe41461070e578063cae9ca5114610723578063d257b34f14610742578063d85ba06314610761578063dd62ed3e14610776578063e2f45605146107ba575f80fd5b8063a9059cbb1161010f578063a9059cbb14610646578063b62496f514610665578063b70143c914610693578063bbc0c742146106b2578063c0246668146106d0578063c18bc195146106ef575f80fd5b806392136913146105a1578063924de9b7146105b657806395d89b41146105d55780639a7a23d6146105e9578063a457c2d714610608578063a672990c14610627575f80fd5b80634000aea0116101f7578063715018a6116101b1578063715018a6146104ff57806371fc468814610513578063751039fc146105325780637571336a1461054657806382aa7c68146105655780638da5cb5b14610584575f80fd5b80634000aea01461042c57806349bd5a5e1461044b5780634a62bb651461047e5780636a486a8e146104975780636ddd1713146104ac57806370a08231146104cb575f80fd5b806318160ddd1161024857806318160ddd1461037f578063203e727e1461039d57806323b872dd146103be57806327c8f835146103dd578063313ce567146103f2578063395093511461040d575f80fd5b806306fdde031461028e578063095ea7b3146102b857806310d5de53146102e7578063153a1f3e146103155780631694505e14610334575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a261086a565b6040516102af91906121c5565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004612225565b6108fa565b60405190151581526020016102af565b3480156102f2575f80fd5b506102d761030136600461224f565b60156020525f908152604090205460ff1681565b348015610320575f80fd5b506102d761032f3660046122b2565b610910565b34801561033f575f80fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102af565b34801561038a575f80fd5b506002545b6040519081526020016102af565b3480156103a8575f80fd5b506103bc6103b7366004612319565b6109cc565b005b3480156103c9575f80fd5b506102d76103d8366004612330565b610aa9565b3480156103e8575f80fd5b5061036761dead81565b3480156103fd575f80fd5b50604051601281526020016102af565b348015610418575f80fd5b506102d7610427366004612225565b610b51565b348015610437575f80fd5b506102d761044636600461236e565b610b8c565b348015610456575f80fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b348015610489575f80fd5b50600b546102d79060ff1681565b3480156104a2575f80fd5b5061038f60115481565b3480156104b7575f80fd5b50600b546102d79062010000900460ff1681565b3480156104d6575f80fd5b5061038f6104e536600461224f565b6001600160a01b03165f9081526020819052604090205490565b34801561050a575f80fd5b506103bc610c4f565b34801561051e575f80fd5b506103bc61052d366004612319565b610c84565b34801561053d575f80fd5b506102d7610d0c565b348015610551575f80fd5b506103bc6105603660046123fd565b610d48565b348015610570575f80fd5b506103bc61057f366004612319565b610d9c565b34801561058f575f80fd5b506005546001600160a01b0316610367565b3480156105ac575f80fd5b5061038f60125481565b3480156105c1575f80fd5b506103bc6105d0366004612434565b610de4565b3480156105e0575f80fd5b506102a2610e2a565b3480156105f4575f80fd5b506103bc6106033660046123fd565b610e39565b348015610613575f80fd5b506102d7610622366004612225565b610f18565b348015610632575f80fd5b506103bc6106413660046123fd565b610fb0565b348015610651575f80fd5b506102d7610660366004612225565b611017565b348015610670575f80fd5b506102d761067f36600461224f565b60166020525f908152604090205460ff1681565b34801561069e575f80fd5b506103bc6106ad366004612319565b611023565b3480156106bd575f80fd5b50600b546102d790610100900460ff1681565b3480156106db575f80fd5b506103bc6106ea3660046123fd565b6110a3565b3480156106fa575f80fd5b506103bc610709366004612319565b61112b565b348015610719575f80fd5b5061038f60085481565b34801561072e575f80fd5b506102d761073d36600461236e565b6111fc565b34801561074d575f80fd5b506102d761075c366004612319565b611207565b34801561076c575f80fd5b5061038f600f5481565b348015610781575f80fd5b5061038f61079036600461244f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c5575f80fd5b5061038f60095481565b3480156107da575f80fd5b506103bc6107e936600461244f565b611358565b3480156107f9575f80fd5b506103bc610808366004612319565b611424565b348015610818575f80fd5b506103bc61082736600461224f565b6114a9565b348015610837575f80fd5b506103bc611541565b34801561084b575f80fd5b5061038f600a5481565b348015610860575f80fd5b5061038f600e5481565b6060600380546108799061247b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a59061247b565b80156108f05780601f106108c7576101008083540402835291602001916108f0565b820191905f5260205f20905b8154815290600101906020018083116108d357829003601f168201915b5050505050905090565b5f610906338484611596565b5060015b92915050565b5f8382146109655760405162461bcd60e51b815260206004820152601860248201527f4d69736d617463686564206172726179206c656e67746873000000000000000060448201526064015b60405180910390fd5b5f5b848110156109c0576109b7868683818110610984576109846124b3565b9050602002016020810190610999919061224f565b8585848181106109ab576109ab6124b3565b90506020020135611017565b50600101610967565b50600195945050505050565b6005546001600160a01b031633146109f65760405162461bcd60e51b815260040161095c906124c7565b670de0b6b3a76400006103e8610a0b60025490565b610a16906001612510565b610a209190612527565b610a2a9190612527565b811015610a915760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b606482015260840161095c565b610aa381670de0b6b3a7640000612510565b60085550565b5f610ab58484846116b9565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610b395760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161095c565b610b468533858403611596565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b87908690612546565b611596565b5f610b978585611017565b50604051635f692aa160e11b81526001600160a01b0386169063bed2554290610bca903390889088908890600401612559565b6020604051808303815f875af1158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a91906125a0565b610b465760405162461bcd60e51b81526020600482015260166024820152751bdb951bdad95b949958d95a5d99590819985a5b195960521b604482015260640161095c565b6005546001600160a01b03163314610c795760405162461bcd60e51b815260040161095c906124c7565b610c825f611d0e565b565b6005546001600160a01b03163314610cae5760405162461bcd60e51b815260040161095c906124c7565b6010819055600f8190556032811115610d095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161095c565b50565b6005545f906001600160a01b03163314610d385760405162461bcd60e51b815260040161095c906124c7565b50600b805460ff19169055600190565b6005546001600160a01b03163314610d725760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610dc65760405162461bcd60e51b815260040161095c906124c7565b600e55600b805462ffff0019166201010017905543600c5542600d55565b6005546001600160a01b03163314610e0e5760405162461bcd60e51b815260040161095c906124c7565b600b8054911515620100000262ff000019909216919091179055565b6060600480546108799061247b565b6005546001600160a01b03163314610e635760405162461bcd60e51b815260040161095c906124c7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610f0a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161095c565b610f148282611d5f565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095c565b610fa63385858403611596565b5060019392505050565b6005546001600160a01b03163314610fda5760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b039091165f908152601560209081526040808320805494151560ff19958616811790915560139092529091208054909216179055565b5f6109063384846116b9565b6006546001600160a01b0316336001600160a01b031614611042575f80fd5b305f90815260208190526040902054811115801561105f57505f81115b61109a5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b604482015260640161095c565b610d0981611db2565b6005546001600160a01b031633146110cd5760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111555760405162461bcd60e51b815260040161095c906124c7565b670de0b6b3a76400006103e861116a60025490565b611175906005612510565b61117f9190612527565b6111899190612527565b8110156111e45760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b606482015260840161095c565b6111f681670de0b6b3a7640000612510565b600a5550565b5f610b9785856108fa565b6005545f906001600160a01b031633146112335760405162461bcd60e51b815260040161095c906124c7565b620186a061124060025490565b61124b906001612510565b6112559190612527565b8210156112c25760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161095c565b6103e86112ce60025490565b6112d9906005612510565b6112e39190612527565b82111561134f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161095c565b50600955600190565b6005546001600160a01b031633146113825760405162461bcd60e51b815260040161095c906124c7565b6006546040516001600160a01b03918216918416907fa99dead445593e0ad945143dc1b0f9b10d5ff5356d423a8428b064c9c9b3f507905f90a36007546040516001600160a01b03918216918316907ffc6e5ad4b1cc83c1340fc759e88f86ea75ce690eaf188413d0cf6b5290cc6334905f90a3600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b0316331461144e5760405162461bcd60e51b815260040161095c906124c7565b601281905560118190556032811115610d095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161095c565b6005546001600160a01b031633146114d35760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095c565b610d0981611d0e565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f811461158b576040519150601f19603f3d011682016040523d82523d5f602084013e611590565b606091505b50505050565b6001600160a01b0383166115f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095c565b6001600160a01b0382166116595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116df5760405162461bcd60e51b815260040161095c906125bb565b6001600160a01b0382166117055760405162461bcd60e51b815260040161095c90612600565b805f0361171c5761171783835f611f68565b505050565b600b54439060ff1615611acf576005546001600160a01b0385811691161480159061175557506005546001600160a01b03848116911614155b801561176957506001600160a01b03831615155b801561178057506001600160a01b03831661dead14155b80156117965750600554600160a01b900460ff16155b15611acf5780600e54600c546117ac9190612546565b106117ca5760236010819055600f81905560128190556011556117df565b60236010819055600f81905560128190556011555b600b54610100900460ff16611870576001600160a01b0384165f9081526013602052604090205460ff168061182b57506001600160a01b0383165f9081526013602052604090205460ff165b6118705760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161095c565b6001600160a01b0384165f9081526016602052604090205460ff1680156118af57506001600160a01b0383165f9081526015602052604090205460ff16155b15611992576008548211156119245760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161095c565b600a546001600160a01b0384165f908152602081905260409020546119499084612546565b111561198d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161095c565b611acf565b6001600160a01b0383165f9081526016602052604090205460ff1680156119d157506001600160a01b0384165f9081526015602052604090205460ff16155b15611a475760085482111561198d5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161095c565b6001600160a01b0383165f9081526015602052604090205460ff16611acf57600a546001600160a01b0384165f90815260208190526040902054611a8b9084612546565b1115611acf5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161095c565b305f9081526020819052604090205460095481108015908190611afa5750600b5462010000900460ff165b8015611b105750600554600160a01b900460ff16155b8015611b2957505f838152601460205260409020546002115b8015611b4d57506001600160a01b0386165f9081526016602052604090205460ff16155b8015611b7157506001600160a01b0386165f9081526013602052604090205460ff16155b8015611b9557506001600160a01b0385165f9081526013602052604090205460ff16155b15611be2576005805460ff60a01b1916600160a01b179055611bb56120bb565b5f8381526014602052604081208054909190611bd090612643565b909155506005805460ff60a01b191690555b6005546001600160a01b0387165f9081526013602052604090205460ff600160a01b909204821615911680611c2e57506001600160a01b0386165f9081526013602052604090205460ff165b15611c3657505f5b5f8115611cf9576001600160a01b0387165f9081526016602052604090205460ff168015611c6557505f601154115b15611c9157611c8a6064611c84601154896121a890919063ffffffff16565b906121ba565b9050611cdb565b6001600160a01b0388165f9081526016602052604090205460ff168015611cb957505f600f54115b15611cdb57611cd86064611c84600f54896121a890919063ffffffff16565b90505b8015611cec57611cec883083611f68565b611cf6818761265b565b95505b611d04888888611f68565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611de557611de56124b3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e85919061266e565b81600181518110611e9857611e986124b3565b60200260200101906001600160a01b031690816001600160a01b031681525050611ee3307f000000000000000000000000000000000000000000000000000000000000000084611596565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611f379085905f90869030904290600401612689565b5f604051808303815f87803b158015611f4e575f80fd5b505af1158015611f60573d5f803e3d5ffd5b505050505050565b6001600160a01b038316611f8e5760405162461bcd60e51b815260040161095c906125bb565b6001600160a01b038216611fb45760405162461bcd60e51b815260040161095c90612600565b6001600160a01b0383165f908152602081905260409020548181101561202b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161095c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612061908490612546565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120ad91815260200190565b60405180910390a350505050565b305f90815260208190526040812054908181036120d6575050565b6009546120e4906032612510565b8211156120fc576009546120f9906032612510565b91505b8161210681611db2565b6006546001600160a01b031661211d600247612527565b6040515f81818185875af1925050503d805f8114612156576040519150601f19603f3d011682016040523d82523d5f602084013e61215b565b606091505b50506007546040519193506001600160a01b03169047905f81818185875af1925050503d805f8114611f60576040519150601f19603f3d011682016040523d82523d5f602084013e611f60565b5f6121b38284612510565b9392505050565b5f6121b38284612527565b5f602080835283518060208501525f5b818110156121f1578581018301518582016040015282016121d5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d09575f80fd5b5f8060408385031215612236575f80fd5b823561224181612211565b946020939093013593505050565b5f6020828403121561225f575f80fd5b81356121b381612211565b5f8083601f84011261227a575f80fd5b50813567ffffffffffffffff811115612291575f80fd5b6020830191508360208260051b85010111156122ab575f80fd5b9250929050565b5f805f80604085870312156122c5575f80fd5b843567ffffffffffffffff808211156122dc575f80fd5b6122e88883890161226a565b90965094506020870135915080821115612300575f80fd5b5061230d8782880161226a565b95989497509550505050565b5f60208284031215612329575f80fd5b5035919050565b5f805f60608486031215612342575f80fd5b833561234d81612211565b9250602084013561235d81612211565b929592945050506040919091013590565b5f805f8060608587031215612381575f80fd5b843561238c81612211565b935060208501359250604085013567ffffffffffffffff808211156123af575f80fd5b818701915087601f8301126123c2575f80fd5b8135818111156123d0575f80fd5b8860208285010111156123e1575f80fd5b95989497505060200194505050565b8015158114610d09575f80fd5b5f806040838503121561240e575f80fd5b823561241981612211565b91506020830135612429816123f0565b809150509250929050565b5f60208284031215612444575f80fd5b81356121b3816123f0565b5f8060408385031215612460575f80fd5b823561246b81612211565b9150602083013561242981612211565b600181811c9082168061248f57607f821691505b6020821081036124ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761090a5761090a6124fc565b5f8261254157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561090a5761090a6124fc565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f602082840312156125b0575f80fd5b81516121b3816123f0565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f60018201612654576126546124fc565b5060010190565b8181038181111561090a5761090a6124fc565b5f6020828403121561267e575f80fd5b81516121b381612211565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156126d95784516001600160a01b0316835293830193918301916001016126b4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ed660dfba75f437e7bb8ab32155ad7c6f0a852413c5fcec309ad31060d7f255664736f6c634300081600334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x608060405260043610610283575f3560e01c80639213691311610155578063c8c8ebe4116100be578063e8ba854f11610078578063e8ba854f146107cf578063eba4c333146107ee578063f2fde38b1461080d578063f42938901461082c578063f8b45b0514610840578063fabb0b4f14610855575f80fd5b8063c8c8ebe41461070e578063cae9ca5114610723578063d257b34f14610742578063d85ba06314610761578063dd62ed3e14610776578063e2f45605146107ba575f80fd5b8063a9059cbb1161010f578063a9059cbb14610646578063b62496f514610665578063b70143c914610693578063bbc0c742146106b2578063c0246668146106d0578063c18bc195146106ef575f80fd5b806392136913146105a1578063924de9b7146105b657806395d89b41146105d55780639a7a23d6146105e9578063a457c2d714610608578063a672990c14610627575f80fd5b80634000aea0116101f7578063715018a6116101b1578063715018a6146104ff57806371fc468814610513578063751039fc146105325780637571336a1461054657806382aa7c68146105655780638da5cb5b14610584575f80fd5b80634000aea01461042c57806349bd5a5e1461044b5780634a62bb651461047e5780636a486a8e146104975780636ddd1713146104ac57806370a08231146104cb575f80fd5b806318160ddd1161024857806318160ddd1461037f578063203e727e1461039d57806323b872dd146103be57806327c8f835146103dd578063313ce567146103f2578063395093511461040d575f80fd5b806306fdde031461028e578063095ea7b3146102b857806310d5de53146102e7578063153a1f3e146103155780631694505e14610334575f80fd5b3661028a57005b5f80fd5b348015610299575f80fd5b506102a261086a565b6040516102af91906121c5565b60405180910390f35b3480156102c3575f80fd5b506102d76102d2366004612225565b6108fa565b60405190151581526020016102af565b3480156102f2575f80fd5b506102d761030136600461224f565b60156020525f908152604090205460ff1681565b348015610320575f80fd5b506102d761032f3660046122b2565b610910565b34801561033f575f80fd5b506103677f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102af565b34801561038a575f80fd5b506002545b6040519081526020016102af565b3480156103a8575f80fd5b506103bc6103b7366004612319565b6109cc565b005b3480156103c9575f80fd5b506102d76103d8366004612330565b610aa9565b3480156103e8575f80fd5b5061036761dead81565b3480156103fd575f80fd5b50604051601281526020016102af565b348015610418575f80fd5b506102d7610427366004612225565b610b51565b348015610437575f80fd5b506102d761044636600461236e565b610b8c565b348015610456575f80fd5b506103677f0000000000000000000000000fe8b993fe1ea280574af3a69b64282d9cf9a0c881565b348015610489575f80fd5b50600b546102d79060ff1681565b3480156104a2575f80fd5b5061038f60115481565b3480156104b7575f80fd5b50600b546102d79062010000900460ff1681565b3480156104d6575f80fd5b5061038f6104e536600461224f565b6001600160a01b03165f9081526020819052604090205490565b34801561050a575f80fd5b506103bc610c4f565b34801561051e575f80fd5b506103bc61052d366004612319565b610c84565b34801561053d575f80fd5b506102d7610d0c565b348015610551575f80fd5b506103bc6105603660046123fd565b610d48565b348015610570575f80fd5b506103bc61057f366004612319565b610d9c565b34801561058f575f80fd5b506005546001600160a01b0316610367565b3480156105ac575f80fd5b5061038f60125481565b3480156105c1575f80fd5b506103bc6105d0366004612434565b610de4565b3480156105e0575f80fd5b506102a2610e2a565b3480156105f4575f80fd5b506103bc6106033660046123fd565b610e39565b348015610613575f80fd5b506102d7610622366004612225565b610f18565b348015610632575f80fd5b506103bc6106413660046123fd565b610fb0565b348015610651575f80fd5b506102d7610660366004612225565b611017565b348015610670575f80fd5b506102d761067f36600461224f565b60166020525f908152604090205460ff1681565b34801561069e575f80fd5b506103bc6106ad366004612319565b611023565b3480156106bd575f80fd5b50600b546102d790610100900460ff1681565b3480156106db575f80fd5b506103bc6106ea3660046123fd565b6110a3565b3480156106fa575f80fd5b506103bc610709366004612319565b61112b565b348015610719575f80fd5b5061038f60085481565b34801561072e575f80fd5b506102d761073d36600461236e565b6111fc565b34801561074d575f80fd5b506102d761075c366004612319565b611207565b34801561076c575f80fd5b5061038f600f5481565b348015610781575f80fd5b5061038f61079036600461244f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156107c5575f80fd5b5061038f60095481565b3480156107da575f80fd5b506103bc6107e936600461244f565b611358565b3480156107f9575f80fd5b506103bc610808366004612319565b611424565b348015610818575f80fd5b506103bc61082736600461224f565b6114a9565b348015610837575f80fd5b506103bc611541565b34801561084b575f80fd5b5061038f600a5481565b348015610860575f80fd5b5061038f600e5481565b6060600380546108799061247b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a59061247b565b80156108f05780601f106108c7576101008083540402835291602001916108f0565b820191905f5260205f20905b8154815290600101906020018083116108d357829003601f168201915b5050505050905090565b5f610906338484611596565b5060015b92915050565b5f8382146109655760405162461bcd60e51b815260206004820152601860248201527f4d69736d617463686564206172726179206c656e67746873000000000000000060448201526064015b60405180910390fd5b5f5b848110156109c0576109b7868683818110610984576109846124b3565b9050602002016020810190610999919061224f565b8585848181106109ab576109ab6124b3565b90506020020135611017565b50600101610967565b50600195945050505050565b6005546001600160a01b031633146109f65760405162461bcd60e51b815260040161095c906124c7565b670de0b6b3a76400006103e8610a0b60025490565b610a16906001612510565b610a209190612527565b610a2a9190612527565b811015610a915760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b606482015260840161095c565b610aa381670de0b6b3a7640000612510565b60085550565b5f610ab58484846116b9565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610b395760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161095c565b610b468533858403611596565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610906918590610b87908690612546565b611596565b5f610b978585611017565b50604051635f692aa160e11b81526001600160a01b0386169063bed2554290610bca903390889088908890600401612559565b6020604051808303815f875af1158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a91906125a0565b610b465760405162461bcd60e51b81526020600482015260166024820152751bdb951bdad95b949958d95a5d99590819985a5b195960521b604482015260640161095c565b6005546001600160a01b03163314610c795760405162461bcd60e51b815260040161095c906124c7565b610c825f611d0e565b565b6005546001600160a01b03163314610cae5760405162461bcd60e51b815260040161095c906124c7565b6010819055600f8190556032811115610d095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161095c565b50565b6005545f906001600160a01b03163314610d385760405162461bcd60e51b815260040161095c906124c7565b50600b805460ff19169055600190565b6005546001600160a01b03163314610d725760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610dc65760405162461bcd60e51b815260040161095c906124c7565b600e55600b805462ffff0019166201010017905543600c5542600d55565b6005546001600160a01b03163314610e0e5760405162461bcd60e51b815260040161095c906124c7565b600b8054911515620100000262ff000019909216919091179055565b6060600480546108799061247b565b6005546001600160a01b03163314610e635760405162461bcd60e51b815260040161095c906124c7565b7f0000000000000000000000000fe8b993fe1ea280574af3a69b64282d9cf9a0c86001600160a01b0316826001600160a01b031603610f0a5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161095c565b610f148282611d5f565b5050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095c565b610fa63385858403611596565b5060019392505050565b6005546001600160a01b03163314610fda5760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b039091165f908152601560209081526040808320805494151560ff19958616811790915560139092529091208054909216179055565b5f6109063384846116b9565b6006546001600160a01b0316336001600160a01b031614611042575f80fd5b305f90815260208190526040902054811115801561105f57505f81115b61109a5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b604482015260640161095c565b610d0981611db2565b6005546001600160a01b031633146110cd5760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b0382165f81815260136020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111555760405162461bcd60e51b815260040161095c906124c7565b670de0b6b3a76400006103e861116a60025490565b611175906005612510565b61117f9190612527565b6111899190612527565b8110156111e45760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b606482015260840161095c565b6111f681670de0b6b3a7640000612510565b600a5550565b5f610b9785856108fa565b6005545f906001600160a01b031633146112335760405162461bcd60e51b815260040161095c906124c7565b620186a061124060025490565b61124b906001612510565b6112559190612527565b8210156112c25760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161095c565b6103e86112ce60025490565b6112d9906005612510565b6112e39190612527565b82111561134f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161095c565b50600955600190565b6005546001600160a01b031633146113825760405162461bcd60e51b815260040161095c906124c7565b6006546040516001600160a01b03918216918416907fa99dead445593e0ad945143dc1b0f9b10d5ff5356d423a8428b064c9c9b3f507905f90a36007546040516001600160a01b03918216918316907ffc6e5ad4b1cc83c1340fc759e88f86ea75ce690eaf188413d0cf6b5290cc6334905f90a3600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b0316331461144e5760405162461bcd60e51b815260040161095c906124c7565b601281905560118190556032811115610d095760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c657373000000604482015260640161095c565b6005546001600160a01b031633146114d35760405162461bcd60e51b815260040161095c906124c7565b6001600160a01b0381166115385760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095c565b610d0981611d0e565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f811461158b576040519150601f19603f3d011682016040523d82523d5f602084013e611590565b606091505b50505050565b6001600160a01b0383166115f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095c565b6001600160a01b0382166116595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116df5760405162461bcd60e51b815260040161095c906125bb565b6001600160a01b0382166117055760405162461bcd60e51b815260040161095c90612600565b805f0361171c5761171783835f611f68565b505050565b600b54439060ff1615611acf576005546001600160a01b0385811691161480159061175557506005546001600160a01b03848116911614155b801561176957506001600160a01b03831615155b801561178057506001600160a01b03831661dead14155b80156117965750600554600160a01b900460ff16155b15611acf5780600e54600c546117ac9190612546565b106117ca5760236010819055600f81905560128190556011556117df565b60236010819055600f81905560128190556011555b600b54610100900460ff16611870576001600160a01b0384165f9081526013602052604090205460ff168061182b57506001600160a01b0383165f9081526013602052604090205460ff165b6118705760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161095c565b6001600160a01b0384165f9081526016602052604090205460ff1680156118af57506001600160a01b0383165f9081526015602052604090205460ff16155b15611992576008548211156119245760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161095c565b600a546001600160a01b0384165f908152602081905260409020546119499084612546565b111561198d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161095c565b611acf565b6001600160a01b0383165f9081526016602052604090205460ff1680156119d157506001600160a01b0384165f9081526015602052604090205460ff16155b15611a475760085482111561198d5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161095c565b6001600160a01b0383165f9081526015602052604090205460ff16611acf57600a546001600160a01b0384165f90815260208190526040902054611a8b9084612546565b1115611acf5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161095c565b305f9081526020819052604090205460095481108015908190611afa5750600b5462010000900460ff165b8015611b105750600554600160a01b900460ff16155b8015611b2957505f838152601460205260409020546002115b8015611b4d57506001600160a01b0386165f9081526016602052604090205460ff16155b8015611b7157506001600160a01b0386165f9081526013602052604090205460ff16155b8015611b9557506001600160a01b0385165f9081526013602052604090205460ff16155b15611be2576005805460ff60a01b1916600160a01b179055611bb56120bb565b5f8381526014602052604081208054909190611bd090612643565b909155506005805460ff60a01b191690555b6005546001600160a01b0387165f9081526013602052604090205460ff600160a01b909204821615911680611c2e57506001600160a01b0386165f9081526013602052604090205460ff165b15611c3657505f5b5f8115611cf9576001600160a01b0387165f9081526016602052604090205460ff168015611c6557505f601154115b15611c9157611c8a6064611c84601154896121a890919063ffffffff16565b906121ba565b9050611cdb565b6001600160a01b0388165f9081526016602052604090205460ff168015611cb957505f600f54115b15611cdb57611cd86064611c84600f54896121a890919063ffffffff16565b90505b8015611cec57611cec883083611f68565b611cf6818761265b565b95505b611d04888888611f68565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260166020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611de557611de56124b3565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e85919061266e565b81600181518110611e9857611e986124b3565b60200260200101906001600160a01b031690816001600160a01b031681525050611ee3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611596565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611f379085905f90869030904290600401612689565b5f604051808303815f87803b158015611f4e575f80fd5b505af1158015611f60573d5f803e3d5ffd5b505050505050565b6001600160a01b038316611f8e5760405162461bcd60e51b815260040161095c906125bb565b6001600160a01b038216611fb45760405162461bcd60e51b815260040161095c90612600565b6001600160a01b0383165f908152602081905260409020548181101561202b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161095c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612061908490612546565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120ad91815260200190565b60405180910390a350505050565b305f90815260208190526040812054908181036120d6575050565b6009546120e4906032612510565b8211156120fc576009546120f9906032612510565b91505b8161210681611db2565b6006546001600160a01b031661211d600247612527565b6040515f81818185875af1925050503d805f8114612156576040519150601f19603f3d011682016040523d82523d5f602084013e61215b565b606091505b50506007546040519193506001600160a01b03169047905f81818185875af1925050503d805f8114611f60576040519150601f19603f3d011682016040523d82523d5f602084013e611f60565b5f6121b38284612510565b9392505050565b5f6121b38284612527565b5f602080835283518060208501525f5b818110156121f1578581018301518582016040015282016121d5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d09575f80fd5b5f8060408385031215612236575f80fd5b823561224181612211565b946020939093013593505050565b5f6020828403121561225f575f80fd5b81356121b381612211565b5f8083601f84011261227a575f80fd5b50813567ffffffffffffffff811115612291575f80fd5b6020830191508360208260051b85010111156122ab575f80fd5b9250929050565b5f805f80604085870312156122c5575f80fd5b843567ffffffffffffffff808211156122dc575f80fd5b6122e88883890161226a565b90965094506020870135915080821115612300575f80fd5b5061230d8782880161226a565b95989497509550505050565b5f60208284031215612329575f80fd5b5035919050565b5f805f60608486031215612342575f80fd5b833561234d81612211565b9250602084013561235d81612211565b929592945050506040919091013590565b5f805f8060608587031215612381575f80fd5b843561238c81612211565b935060208501359250604085013567ffffffffffffffff808211156123af575f80fd5b818701915087601f8301126123c2575f80fd5b8135818111156123d0575f80fd5b8860208285010111156123e1575f80fd5b95989497505060200194505050565b8015158114610d09575f80fd5b5f806040838503121561240e575f80fd5b823561241981612211565b91506020830135612429816123f0565b809150509250929050565b5f60208284031215612444575f80fd5b81356121b3816123f0565b5f8060408385031215612460575f80fd5b823561246b81612211565b9150602083013561242981612211565b600181811c9082168061248f57607f821691505b6020821081036124ad57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761090a5761090a6124fc565b5f8261254157634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561090a5761090a6124fc565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f602082840312156125b0575f80fd5b81516121b3816123f0565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b5f60018201612654576126546124fc565b5060010190565b8181038181111561090a5761090a6124fc565b5f6020828403121561267e575f80fd5b81516121b381612211565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156126d95784516001600160a01b0316835293830193918301916001016126b4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ed660dfba75f437e7bb8ab32155ad7c6f0a852413c5fcec309ad31060d7f255664736f6c63430008160033
Deployed Bytecode Sourcemap
15636:12651:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3993:195;;;;;;;;;;-1:-1:-1;3993:195:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3993:195:0;1023:187:1;16579:63:0;;;;;;;;;;-1:-1:-1;16579:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22319:277;;;;;;;;;;-1:-1:-1;22319:277:0;;;;;:::i;:::-;;:::i;15717:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2808:32:1;;;2790:51;;2778:2;2763:18;15717:51:0;2617:230:1;3334:108:0;;;;;;;;;;-1:-1:-1;3422:12:0;;3334:108;;;2998:25:1;;;2986:2;2971:18;3334:108:0;2852:177:1;19345:277:0;;;;;;;;;;-1:-1:-1;19345:277:0;;;;;:::i;:::-;;:::i;:::-;;4196:529;;;;;;;;;;-1:-1:-1;4196:529:0;;;;;:::i;:::-;;:::i;15820:53::-;;;;;;;;;;;;15866:6;15820:53;;3233:93;;;;;;;;;;-1:-1:-1;3233:93:0;;3316:2;4030:36:1;;4018:2;4003:18;3233:93:0;3888:184:1;4733:290:0;;;;;;;;;;-1:-1:-1;4733:290:0;;;;;:::i;:::-;;:::i;22856:239::-;;;;;;;;;;-1:-1:-1;22856:239:0;;;;;:::i;:::-;;:::i;15775:38::-;;;;;;;;;;;;;;;16095:33;;;;;;;;;;-1:-1:-1;16095:33:0;;;;;;;;16391:28;;;;;;;;;;;;;;;;16175:31;;;;;;;;;;-1:-1:-1;16175:31:0;;;;;;;;;;;3450:143;;;;;;;;;;-1:-1:-1;3450:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;3567:18:0;3540:7;3567:18;;;;;;;;;;;;3450:143;881:103;;;;;;;;;;;;;:::i;21532:227::-;;;;;;;;;;-1:-1:-1;21532:227:0;;;;;:::i;:::-;;:::i;18727:121::-;;;;;;;;;;;;;:::i;20099:170::-;;;;;;;;;;-1:-1:-1;20099:170:0;;;;;:::i;:::-;;:::i;18476:243::-;;;;;;;;;;-1:-1:-1;18476:243:0;;;;;:::i;:::-;;:::i;658:87::-;;;;;;;;;;-1:-1:-1;731:6:0;;-1:-1:-1;;;;;731:6:0;658:87;;16426:31;;;;;;;;;;;;;;;;20283:100;;;;;;;;;;-1:-1:-1;20283:100:0;;;;;:::i;:::-;;:::i;3121:104::-;;;;;;;;;;;;;:::i;21021:307::-;;;;;;;;;;-1:-1:-1;21021:307:0;;;;;:::i;:::-;;:::i;5031:475::-;;;;;;;;;;-1:-1:-1;5031:475:0;;;;;:::i;:::-;;:::i;19896:195::-;;;;;;;;;;-1:-1:-1;19896:195:0;;;;;:::i;:::-;;:::i;3601:200::-;;;;;;;;;;-1:-1:-1;3601:200:0;;;;;:::i;:::-;;:::i;16649:57::-;;;;;;;;;;-1:-1:-1;16649:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20581:255;;;;;;;;;;-1:-1:-1;20581:255:0;;;;;:::i;:::-;;:::i;16135:33::-;;;;;;;;;;-1:-1:-1;16135:33:0;;;;;;;;;;;20391:182;;;;;;;;;;-1:-1:-1;20391:182:0;;;;;:::i;:::-;;:::i;19630:258::-;;;;;;;;;;-1:-1:-1;19630:258:0;;;;;:::i;:::-;;:::i;15980:35::-;;;;;;;;;;;;;;;;22600:252;;;;;;;;;;-1:-1:-1;22600:252:0;;;;;:::i;:::-;;:::i;18856:481::-;;;;;;;;;;-1:-1:-1;18856:481:0;;;;;:::i;:::-;;:::i;16317:27::-;;;;;;;;;;;;;;;;3809:176;;;;;;;;;;-1:-1:-1;3809:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;3950:18:0;;;3923:7;3950:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3809:176;16022:33;;;;;;;;;;;;;;;;22007:308;;;;;;;;;;-1:-1:-1;22007:308:0;;;;;:::i;:::-;;:::i;21767:232::-;;;;;;;;;;-1:-1:-1;21767:232:0;;;;;:::i;:::-;;:::i;992:238::-;;;;;;;;;;-1:-1:-1;992:238:0;;;;;:::i;:::-;;:::i;20844:169::-;;;;;;;;;;;;;:::i;16062:24::-;;;;;;;;;;;;;;;;16283:25;;;;;;;;;;;;;;;;3013:100;3067:13;3100:5;3093:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:100;:::o;3993:195::-;4102:4;4119:39;259:10;4142:7;4151:6;4119:8;:39::i;:::-;-1:-1:-1;4176:4:0;3993:195;;;;;:::o;22319:277::-;22407:4;22428:26;;;22420:63;;;;-1:-1:-1;;;22420:63:0;;6612:2:1;22420:63:0;;;6594:21:1;6651:2;6631:18;;;6624:30;6690:26;6670:18;;;6663:54;6734:18;;22420:63:0;;;;;;;;;22495:9;22490:85;22510:13;;;22490:85;;;22541:26;22550:2;;22553:1;22550:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;22557:6;;22564:1;22557:9;;;;;;;:::i;:::-;;;;;;;22541:8;:26::i;:::-;-1:-1:-1;22525:3:0;;22490:85;;;-1:-1:-1;22588:4:0;;22319:277;-1:-1:-1;;;;;22319:277:0:o;19345:::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;19482:4:::1;19474;19453:13;3422:12:::0;;;3334:108;19453:13:::1;:17;::::0;19469:1:::1;19453:17;:::i;:::-;19452:26;;;;:::i;:::-;19451:35;;;;:::i;:::-;19441:6;:45;;19419:142;;;::::0;-1:-1:-1;;;19419:142:0;;7985:2:1;19419:142:0::1;::::0;::::1;7967:21:1::0;8024:2;8004:18;;;7997:30;8063:34;8043:18;;;8036:62;-1:-1:-1;;;8114:18:1;;;8107:45;8169:19;;19419:142:0::1;7783:411:1::0;19419:142:0::1;19595:19;:6:::0;19605:8:::1;19595:19;:::i;:::-;19572:20;:42:::0;-1:-1:-1;19345:277:0:o;4196:529::-;4336:4;4353:36;4363:6;4371:9;4382:6;4353:9;:36::i;:::-;-1:-1:-1;;;;;4429:19:0;;4402:24;4429:19;;;:11;:19;;;;;;;;259:10;4429:33;;;;;;;;4495:26;;;;4473:116;;;;-1:-1:-1;;;4473:116:0;;8401:2:1;4473:116:0;;;8383:21:1;8440:2;8420:18;;;8413:30;8479:34;8459:18;;;8452:62;-1:-1:-1;;;8530:18:1;;;8523:38;8578:19;;4473:116:0;8199:404:1;4473:116:0;4625:57;4634:6;259:10;4675:6;4656:16;:25;4625:8;:57::i;:::-;-1:-1:-1;4713:4:0;;4196:529;-1:-1:-1;;;;4196:529:0:o;4733:290::-;259:10;4846:4;4935:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4935:34:0;;;;;;;;;;4846:4;;4863:130;;4913:7;;4935:47;;4972:10;;4935:47;:::i;:::-;4863:8;:130::i;22856:239::-;22945:4;22958:19;22967:2;22971:5;22958:8;:19::i;:::-;-1:-1:-1;22992:54:0;;-1:-1:-1;;;22992:54:0;;-1:-1:-1;;;;;22992:29:0;;;;;:54;;23022:10;;23034:5;;23041:4;;;;22992:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22984:89;;;;-1:-1:-1;;;22984:89:0;;9754:2:1;22984:89:0;;;9736:21:1;9793:2;9773:18;;;9766:30;-1:-1:-1;;;9812:18:1;;;9805:52;9874:18;;22984:89:0;9552:346:1;881:103:0;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;946:30:::1;973:1;946:18;:30::i;:::-;881:103::o:0;21532:227::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;21608:15:::1;:31:::0;;;21650:12:::1;:30:::0;;;21715:2:::1;21699:18:::0;::::1;;21691:60;;;::::0;-1:-1:-1;;;21691:60:0;;10105:2:1;21691:60:0::1;::::0;::::1;10087:21:1::0;10144:2;10124:18;;;10117:30;10183:31;10163:18;;;10156:59;10232:18;;21691:60:0::1;9903:353:1::0;21691:60:0::1;21532:227:::0;:::o;18727:121::-;731:6;;18779:4;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;-1:-1:-1;18796:14:0::1;:22:::0;;-1:-1:-1;;18796:22:0::1;::::0;;;18727:121;:::o;20099:170::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20215:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;20215:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20099:170::o;18476:243::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;18550:10:::1;:24:::0;18585:13:::1;:20:::0;;-1:-1:-1;;18616:18:0;;;;;18658:12:::1;18645:10;:25:::0;18696:15:::1;18681:12;:30:::0;18476:243::o;20283:100::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;20354:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20354:21:0;;::::1;::::0;;;::::1;::::0;;20283:100::o;3121:104::-;3177:13;3210:7;3203:14;;;;;:::i;21021:307::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;21168:13:::1;-1:-1:-1::0;;;;;21160:21:0::1;:4;-1:-1:-1::0;;;;;21160:21:0::1;::::0;21138:128:::1;;;::::0;-1:-1:-1;;;21138:128:0;;10463:2:1;21138:128:0::1;::::0;::::1;10445:21:1::0;10502:2;10482:18;;;10475:30;10541:34;10521:18;;;10514:62;10612:27;10592:18;;;10585:55;10657:19;;21138:128:0::1;10261:421:1::0;21138:128:0::1;21279:41;21308:4;21314:5;21279:28;:41::i;:::-;21021:307:::0;;:::o;5031:475::-;259:10;5149:4;5193:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5193:34:0;;;;;;;;;;5260:35;;;;5238:122;;;;-1:-1:-1;;;5238:122:0;;10889:2:1;5238:122:0;;;10871:21:1;10928:2;10908:18;;;10901:30;10967:34;10947:18;;;10940:62;-1:-1:-1;;;11018:18:1;;;11011:35;11063:19;;5238:122:0;10687:401:1;5238:122:0;5396:67;259:10;5419:7;5447:15;5428:16;:34;5396:8;:67::i;:::-;-1:-1:-1;5494:4:0;;5031:475;-1:-1:-1;;;5031:475:0:o;19896:195::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19982:43:0;;::::1;;::::0;;;:31:::1;:43;::::0;;;;;;;:50;;;::::1;;-1:-1:-1::0;;19982:50:0;;::::1;::::0;::::1;::::0;;;20045:19:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;19896:195::o;3601:200::-;3712:4;3729:42;259:10;3753:9;3764:6;3729:9;:42::i;20581:255::-;20661:10;;-1:-1:-1;;;;;20661:10:0;259;-1:-1:-1;;;;;20645:26:0;;20637:35;;;;;;20733:4;3540:7;3567:18;;;;;;;;;;;20705:6;:34;;:48;;;;;20752:1;20743:6;:10;20705:48;20683:110;;;;-1:-1:-1;;;20683:110:0;;11295:2:1;20683:110:0;;;11277:21:1;11334:2;11314:18;;;11307:30;-1:-1:-1;;;11353:18:1;;;11346:42;11405:18;;20683:110:0;11093:336:1;20683:110:0;20804:24;20821:6;20804:16;:24::i;20391:182::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20476:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20476:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20531:34;;1163:41:1;;;20531:34:0::1;::::0;1136:18:1;20531:34:0::1;;;;;;;20391:182:::0;;:::o;19630:258::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;19770:4:::1;19762;19741:13;3422:12:::0;;;3334:108;19741:13:::1;:17;::::0;19757:1:::1;19741:17;:::i;:::-;19740:26;;;;:::i;:::-;19739:35;;;;:::i;:::-;19729:6;:45;;19707:131;;;::::0;-1:-1:-1;;;19707:131:0;;11636:2:1;19707:131:0::1;::::0;::::1;11618:21:1::0;11675:2;11655:18;;;11648:30;11714:34;11694:18;;;11687:62;-1:-1:-1;;;11765:18:1;;;11758:34;11809:19;;19707:131:0::1;11434:400:1::0;19707:131:0::1;19861:19;:6:::0;19871:8:::1;19861:19;:::i;:::-;19849:9;:31:::0;-1:-1:-1;19630:258:0:o;22600:252::-;22693:4;22706:23;22714:7;22723:5;22706:7;:23::i;18856:481::-;731:6;;18953:4;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;19027:6:::1;19006:13;3422:12:::0;;;3334:108;19006:13:::1;:17;::::0;19022:1:::1;19006:17;:::i;:::-;19005:28;;;;:::i;:::-;18992:9;:41;;18970:144;;;::::0;-1:-1:-1;;;18970:144:0;;12041:2:1;18970:144:0::1;::::0;::::1;12023:21:1::0;12080:2;12060:18;;;12053:30;12119:34;12099:18;;;12092:62;-1:-1:-1;;;12170:18:1;;;12163:51;12231:19;;18970:144:0::1;11839:417:1::0;18970:144:0::1;19182:4;19161:13;3422:12:::0;;;3334:108;19161:13:::1;:17;::::0;19177:1:::1;19161:17;:::i;:::-;19160:26;;;;:::i;:::-;19147:9;:39;;19125:141;;;::::0;-1:-1:-1;;;19125:141:0;;12463:2:1;19125:141:0::1;::::0;::::1;12445:21:1::0;12502:2;12482:18;;;12475:30;12541:34;12521:18;;;12514:62;-1:-1:-1;;;12592:18:1;;;12585:50;12652:19;;19125:141:0::1;12261:416:1::0;19125:141:0::1;-1:-1:-1::0;19277:18:0::1;:30:::0;19325:4:::1;::::0;18856:481::o;22007:308::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;22166:10:::1;::::0;22135:42:::1;::::0;-1:-1:-1;;;;;22166:10:0;;::::1;::::0;22135:42;::::1;::::0;::::1;::::0;22166:10:::1;::::0;22135:42:::1;22224:10;::::0;22193:42:::1;::::0;-1:-1:-1;;;;;22224:10:0;;::::1;::::0;22193:42;::::1;::::0;::::1;::::0;22224:10:::1;::::0;22193:42:::1;22246:10;:25:::0;;-1:-1:-1;;;;;22246:25:0;;::::1;-1:-1:-1::0;;;;;;22246:25:0;;::::1;;::::0;;;22282:10:::1;:25:::0;;;;;::::1;::::0;::::1;;::::0;;22007:308::o;21767:232::-;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;21844:16:::1;:32:::0;;;21887:13:::1;:32:::0;;;21955:2:::1;21938:19:::0;::::1;;21930:61;;;::::0;-1:-1:-1;;;21930:61:0;;10105:2:1;21930:61:0::1;::::0;::::1;10087:21:1::0;10144:2;10124:18;;;10117:30;10183:31;10163:18;;;10156:59;10232:18;;21930:61:0::1;9903:353:1::0;992:238:0;731:6;;-1:-1:-1;;;;;731:6:0;259:10;793:23;785:68;;;;-1:-1:-1;;;785:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1095:22:0;::::1;1073:110;;;::::0;-1:-1:-1;;;1073:110:0;;12884:2:1;1073:110:0::1;::::0;::::1;12866:21:1::0;12923:2;12903:18;;;12896:30;12962:34;12942:18;;;12935:62;-1:-1:-1;;;13013:18:1;;;13006:36;13059:19;;1073:110:0::1;12682:402:1::0;1073:110:0::1;1194:28;1213:8;1194:18;:28::i;20844:169::-:0;20931:10;;20923:82;;20886:12;;-1:-1:-1;;;;;20931:10:0;;20955:21;;20886:12;20923:82;20886:12;20923:82;20955:21;20931:10;20923:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20844:169:0:o;7298:380::-;-1:-1:-1;;;;;7434:19:0;;7426:68;;;;-1:-1:-1;;;7426:68:0;;13501:2:1;7426:68:0;;;13483:21:1;13540:2;13520:18;;;13513:30;13579:34;13559:18;;;13552:62;-1:-1:-1;;;13630:18:1;;;13623:34;13674:19;;7426:68:0;13299:400:1;7426:68:0;-1:-1:-1;;;;;7513:21:0;;7505:68;;;;-1:-1:-1;;;7505:68:0;;13906:2:1;7505:68:0;;;13888:21:1;13945:2;13925:18;;;13918:30;13984:34;13964:18;;;13957:62;-1:-1:-1;;;14035:18:1;;;14028:32;14077:19;;7505:68:0;13704:398:1;7505:68:0;-1:-1:-1;;;;;7586:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7638:32;;2998:25:1;;;7638:32:0;;2971:18:1;7638:32:0;;;;;;;7298:380;;;:::o;23103:3932::-;-1:-1:-1;;;;;23237:18:0;;23229:68;;;;-1:-1:-1;;;23229:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23316:16:0;;23308:64;;;;-1:-1:-1;;;23308:64:0;;;;;;;:::i;:::-;23389:6;23399:1;23389:11;23385:93;;23417:28;23433:4;23439:2;23443:1;23417:15;:28::i;:::-;23103:3932;;;:::o;23385:93::-;23538:14;;23509:12;;23538:14;;23534:2175;;;731:6;;-1:-1:-1;;;;;23591:15:0;;;731:6;;23591:15;;;;:49;;-1:-1:-1;731:6:0;;-1:-1:-1;;;;;23627:13:0;;;731:6;;23627:13;;23591:49;:86;;;;-1:-1:-1;;;;;;23661:16:0;;;;23591:86;:128;;;;-1:-1:-1;;;;;;23698:21:0;;23712:6;23698:21;;23591:128;:158;;;;-1:-1:-1;23741:8:0;;-1:-1:-1;;;23741:8:0;;;;23740:9;23591:158;23569:2129;;;23817:8;23802:10;;23789;;:23;;;;:::i;:::-;23788:37;23784:483;;23868:2;23850:15;:20;;;23893:12;:30;;;23948:16;:21;;;23992:13;:32;23784:483;;;24091:2;24073:15;:20;;;24116:12;:30;;;24171:16;:21;;;24215:13;:32;23784:483;24292:13;;;;;;;24287:223;;-1:-1:-1;;;;;24364:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;24393:23:0;;;;;;:19;:23;;;;;;;;24364:52;24330:160;;;;-1:-1:-1;;;24330:160:0;;15119:2:1;24330:160:0;;;15101:21:1;15158:2;15138:18;;;15131:30;-1:-1:-1;;;15177:18:1;;;15170:52;15239:18;;24330:160:0;14917:346:1;24330:160:0;-1:-1:-1;;;;;24574:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;24631:35:0;;;;;;:31;:35;;;;;;;;24630:36;24574:92;24548:1135;;;24753:20;;24743:6;:30;;24709:169;;;;-1:-1:-1;;;24709:169:0;;15470:2:1;24709:169:0;;;15452:21:1;15509:2;15489:18;;;15482:30;15548:34;15528:18;;;15521:62;-1:-1:-1;;;15599:18:1;;;15592:51;15660:19;;24709:169:0;15268:417:1;24709:169:0;24961:9;;-1:-1:-1;;;;;3567:18:0;;3540:7;3567:18;;;;;;;;;;;24935:22;;:6;:22;:::i;:::-;:35;;24901:140;;;;-1:-1:-1;;;24901:140:0;;15892:2:1;24901:140:0;;;15874:21:1;15931:2;15911:18;;;15904:30;-1:-1:-1;;;15950:18:1;;;15943:49;16009:18;;24901:140:0;15690:343:1;24901:140:0;24548:1135;;;-1:-1:-1;;;;;25127:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;25182:37:0;;;;;;:31;:37;;;;;;;;25181:38;25127:92;25101:582;;;25306:20;;25296:6;:30;;25262:170;;;;-1:-1:-1;;;25262:170:0;;16240:2:1;25262:170:0;;;16222:21:1;16279:2;16259:18;;;16252:30;16318:34;16298:18;;;16291:62;-1:-1:-1;;;16369:18:1;;;16362:52;16431:19;;25262:170:0;16038:418:1;25101:582:0;-1:-1:-1;;;;;25463:35:0;;;;;;:31;:35;;;;;;;;25458:225;;25583:9;;-1:-1:-1;;;;;3567:18:0;;3540:7;3567:18;;;;;;;;;;;25557:22;;:6;:22;:::i;:::-;:35;;25523:140;;;;-1:-1:-1;;;25523:140:0;;15892:2:1;25523:140:0;;;15874:21:1;15931:2;15911:18;;;15904:30;-1:-1:-1;;;15950:18:1;;;15943:49;16009:18;;25523:140:0;15690:343:1;25523:140:0;25770:4;25721:28;3567:18;;;;;;;;;;;25828;;25804:42;;;;;;;25877:35;;-1:-1:-1;25901:11:0;;;;;;;25877:35;:61;;;;-1:-1:-1;25930:8:0;;-1:-1:-1;;;25930:8:0;;;;25929:9;25877:61;:105;;;;-1:-1:-1;25956:21:0;;;;:11;:21;;;;;;25980:1;-1:-1:-1;25877:105:0;:154;;;;-1:-1:-1;;;;;;26000:31:0;;;;;;:25;:31;;;;;;;;25999:32;25877:154;:197;;;;-1:-1:-1;;;;;;26049:25:0;;;;;;:19;:25;;;;;;;;26048:26;25877:197;:238;;;;-1:-1:-1;;;;;;26092:23:0;;;;;;:19;:23;;;;;;;;26091:24;25877:238;25859:410;;;26142:8;:15;;-1:-1:-1;;;;26142:15:0;-1:-1:-1;;;26142:15:0;;;26174:10;:8;:10::i;:::-;26203:21;;;;:11;:21;;;;;26201:23;;26203:21;;;26201:23;;;:::i;:::-;;;;-1:-1:-1;26241:8:0;:16;;-1:-1:-1;;;;26241:16:0;;;25859:410;26297:8;;-1:-1:-1;;;;;26330:25:0;;26281:12;26330:25;;;:19;:25;;;;;;26297:8;-1:-1:-1;;;26297:8:0;;;;;26296:9;;26330:25;;:52;;-1:-1:-1;;;;;;26359:23:0;;;;;;:19;:23;;;;;;;;26330:52;26326:100;;;-1:-1:-1;26409:5:0;26326:100;26438:12;26479:7;26475:507;;;-1:-1:-1;;;;;26531:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;26580:1;26564:13;;:17;26531:50;26527:306;;;26609:34;26639:3;26609:25;26620:13;;26609:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;26602:41;;26527:306;;;-1:-1:-1;;;;;26705:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;26755:1;26740:12;;:16;26705:51;26701:132;;;26784:33;26813:3;26784:24;26795:12;;26784:6;:10;;:24;;;;:::i;:33::-;26777:40;;26701:132;26853:8;;26849:91;;26882:42;26898:4;26912;26919;26882:15;:42::i;:::-;26956:14;26966:4;26956:14;;:::i;:::-;;;26475:507;26994:33;27010:4;27016:2;27020:6;26994:15;:33::i;:::-;23218:3817;;;;;23103:3932;;;:::o;1238:191::-;1331:6;;;-1:-1:-1;;;;;1348:17:0;;;-1:-1:-1;;;;;;1348:17:0;;;;;;;1381:40;;1331:6;;;1348:17;1331:6;;1381:40;;1312:16;;1381:40;1301:128;1238:191;:::o;21336:188::-;-1:-1:-1;;;;;21419:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21419:39:0;;;;;;;;;;21476:40;;21419:39;;:31;21476:40;;;21336:188;;:::o;27043:589::-;27193:16;;;27207:1;27193:16;;;;;;;;27169:21;;27193:16;;;;;;;;;;-1:-1:-1;27193:16:0;27169:40;;27238:4;27220;27225:1;27220:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27220:23:0;;;-1:-1:-1;;;;;27220:23:0;;;;;27264:15;-1:-1:-1;;;;;27264:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27254:4;27259:1;27254:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;27254:32:0;;;-1:-1:-1;;;;;27254:32:0;;;;;27299:62;27316:4;27331:15;27349:11;27299:8;:62::i;:::-;27400:224;;-1:-1:-1;;;27400:224:0;;-1:-1:-1;;;;;27400:15:0;:66;;;;:224;;27481:11;;27507:1;;27551:4;;27578;;27598:15;;27400:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27098:534;27043:589;:::o;5514:770::-;-1:-1:-1;;;;;5654:20:0;;5646:70;;;;-1:-1:-1;;;5646:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5735:23:0;;5727:71;;;;-1:-1:-1;;;5727:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5895:17:0;;5871:21;5895:17;;;;;;;;;;;5945:23;;;;5923:111;;;;-1:-1:-1;;;5923:111:0;;18309:2:1;5923:111:0;;;18291:21:1;18348:2;18328:18;;;18321:30;18387:34;18367:18;;;18360:62;-1:-1:-1;;;18438:18:1;;;18431:36;18484:19;;5923:111:0;18107:402:1;5923:111:0;-1:-1:-1;;;;;6070:17:0;;;:9;:17;;;;;;;;;;;6090:22;;;6070:42;;6134:20;;;;;;;;:30;;6106:6;;6070:9;6134:30;;6106:6;;6134:30;:::i;:::-;;;;;;;;6199:9;-1:-1:-1;;;;;6182:35:0;6191:6;-1:-1:-1;;;;;6182:35:0;;6210:6;6182:35;;;;2998:25:1;;2986:2;2971:18;;2852:177;6182:35:0;;;;;;;;5635:649;5514:770;;;:::o;27640:644::-;27723:4;27679:23;3567:18;;;;;;;;;;;;27769:20;;;27765:59;;27806:7;;27640:644::o;27765:59::-;27858:18;;:23;;27879:2;27858:23;:::i;:::-;27840:15;:41;27836:115;;;27916:18;;:23;;27937:2;27916:23;:::i;:::-;27898:41;;27836:115;27992:15;28020:36;27992:15;28020:16;:36::i;:::-;28091:10;;-1:-1:-1;;;;;28091:10:0;28129:25;28153:1;28129:21;:25;:::i;:::-;28083:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28202:10:0;;28194:82;;28069:100;;-1:-1:-1;;;;;;28202:10:0;;28226:21;;28194:82;;;;28226:21;28202:10;28194:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9431:98;9489:7;9516:5;9520:1;9516;:5;:::i;:::-;9509:12;9431:98;-1:-1:-1;;;9431:98:0:o;9537:::-;9595:7;9622:5;9626:1;9622;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1467:367::-;1530:8;1540:6;1594:3;1587:4;1579:6;1575:17;1571:27;1561:55;;1612:1;1609;1602:12;1561:55;-1:-1:-1;1635:20:1;;1678:18;1667:30;;1664:50;;;1710:1;1707;1700:12;1664:50;1747:4;1739:6;1735:17;1723:29;;1807:3;1800:4;1790:6;1787:1;1783:14;1775:6;1771:27;1767:38;1764:47;1761:67;;;1824:1;1821;1814:12;1761:67;1467:367;;;;;:::o;1839:773::-;1961:6;1969;1977;1985;2038:2;2026:9;2017:7;2013:23;2009:32;2006:52;;;2054:1;2051;2044:12;2006:52;2094:9;2081:23;2123:18;2164:2;2156:6;2153:14;2150:34;;;2180:1;2177;2170:12;2150:34;2219:70;2281:7;2272:6;2261:9;2257:22;2219:70;:::i;:::-;2308:8;;-1:-1:-1;2193:96:1;-1:-1:-1;2396:2:1;2381:18;;2368:32;;-1:-1:-1;2412:16:1;;;2409:36;;;2441:1;2438;2431:12;2409:36;;2480:72;2544:7;2533:8;2522:9;2518:24;2480:72;:::i;:::-;1839:773;;;;-1:-1:-1;2571:8:1;-1:-1:-1;;;;1839:773:1:o;3034:180::-;3093:6;3146:2;3134:9;3125:7;3121:23;3117:32;3114:52;;;3162:1;3159;3152:12;3114:52;-1:-1:-1;3185:23:1;;3034:180;-1:-1:-1;3034:180:1:o;3219:456::-;3296:6;3304;3312;3365:2;3353:9;3344:7;3340:23;3336:32;3333:52;;;3381:1;3378;3371:12;3333:52;3420:9;3407:23;3439:31;3464:5;3439:31;:::i;:::-;3489:5;-1:-1:-1;3546:2:1;3531:18;;3518:32;3559:33;3518:32;3559:33;:::i;:::-;3219:456;;3611:7;;-1:-1:-1;;;3665:2:1;3650:18;;;;3637:32;;3219:456::o;4077:794::-;4165:6;4173;4181;4189;4242:2;4230:9;4221:7;4217:23;4213:32;4210:52;;;4258:1;4255;4248:12;4210:52;4297:9;4284:23;4316:31;4341:5;4316:31;:::i;:::-;4366:5;-1:-1:-1;4418:2:1;4403:18;;4390:32;;-1:-1:-1;4473:2:1;4458:18;;4445:32;4496:18;4526:14;;;4523:34;;;4553:1;4550;4543:12;4523:34;4591:6;4580:9;4576:22;4566:32;;4636:7;4629:4;4625:2;4621:13;4617:27;4607:55;;4658:1;4655;4648:12;4607:55;4698:2;4685:16;4724:2;4716:6;4713:14;4710:34;;;4740:1;4737;4730:12;4710:34;4785:7;4780:2;4771:6;4767:2;4763:15;4759:24;4756:37;4753:57;;;4806:1;4803;4796:12;4753:57;4077:794;;;;-1:-1:-1;;4837:2:1;4829:11;;-1:-1:-1;;;4077:794:1:o;4876:118::-;4962:5;4955:13;4948:21;4941:5;4938:32;4928:60;;4984:1;4981;4974:12;4999:382;5064:6;5072;5125:2;5113:9;5104:7;5100:23;5096:32;5093:52;;;5141:1;5138;5131:12;5093:52;5180:9;5167:23;5199:31;5224:5;5199:31;:::i;:::-;5249:5;-1:-1:-1;5306:2:1;5291:18;;5278:32;5319:30;5278:32;5319:30;:::i;:::-;5368:7;5358:17;;;4999:382;;;;;:::o;5386:241::-;5442:6;5495:2;5483:9;5474:7;5470:23;5466:32;5463:52;;;5511:1;5508;5501:12;5463:52;5550:9;5537:23;5569:28;5591:5;5569:28;:::i;5632:388::-;5700:6;5708;5761:2;5749:9;5740:7;5736:23;5732:32;5729:52;;;5777:1;5774;5767:12;5729:52;5816:9;5803:23;5835:31;5860:5;5835:31;:::i;:::-;5885:5;-1:-1:-1;5942:2:1;5927:18;;5914:32;5955:33;5914:32;5955:33;:::i;6025:380::-;6104:1;6100:12;;;;6147;;;6168:61;;6222:4;6214:6;6210:17;6200:27;;6168:61;6275:2;6267:6;6264:14;6244:18;6241:38;6238:161;;6321:10;6316:3;6312:20;6309:1;6302:31;6356:4;6353:1;6346:15;6384:4;6381:1;6374:15;6238:161;;6025:380;;;:::o;6763:127::-;6824:10;6819:3;6815:20;6812:1;6805:31;6855:4;6852:1;6845:15;6879:4;6876:1;6869:15;6895:356;7097:2;7079:21;;;7116:18;;;7109:30;7175:34;7170:2;7155:18;;7148:62;7242:2;7227:18;;6895:356::o;7256:127::-;7317:10;7312:3;7308:20;7305:1;7298:31;7348:4;7345:1;7338:15;7372:4;7369:1;7362:15;7388:168;7461:9;;;7492;;7509:15;;;7503:22;;7489:37;7479:71;;7530:18;;:::i;7561:217::-;7601:1;7627;7617:132;;7671:10;7666:3;7662:20;7659:1;7652:31;7706:4;7703:1;7696:15;7734:4;7731:1;7724:15;7617:132;-1:-1:-1;7763:9:1;;7561:217::o;8608:125::-;8673:9;;;8694:10;;;8691:36;;;8707:18;;:::i;8738:559::-;-1:-1:-1;;;;;8951:32:1;;8933:51;;9015:2;9000:18;;8993:34;;;9063:2;9058;9043:18;;9036:30;;;9082:18;;9075:34;;;9102:6;9152;9146:3;9131:19;;9118:49;9217:1;9187:22;;;9211:3;9183:32;;;9176:43;;;;9280:2;9259:15;;;-1:-1:-1;;9255:29:1;9240:45;9236:55;;8738:559;-1:-1:-1;;;8738:559:1:o;9302:245::-;9369:6;9422:2;9410:9;9401:7;9397:23;9393:32;9390:52;;;9438:1;9435;9428:12;9390:52;9470:9;9464:16;9489:28;9511:5;9489:28;:::i;14107:401::-;14309:2;14291:21;;;14348:2;14328:18;;;14321:30;14387:34;14382:2;14367:18;;14360:62;-1:-1:-1;;;14453:2:1;14438:18;;14431:35;14498:3;14483:19;;14107:401::o;14513:399::-;14715:2;14697:21;;;14754:2;14734:18;;;14727:30;14793:34;14788:2;14773:18;;14766:62;-1:-1:-1;;;14859:2:1;14844:18;;14837:33;14902:3;14887:19;;14513:399::o;16461:135::-;16500:3;16521:17;;;16518:43;;16541:18;;:::i;:::-;-1:-1:-1;16588:1:1;16577:13;;16461:135::o;16601:128::-;16668:9;;;16689:11;;;16686:37;;;16703:18;;:::i;16866:251::-;16936:6;16989:2;16977:9;16968:7;16964:23;16960:32;16957:52;;;17005:1;17002;16995:12;16957:52;17037:9;17031:16;17056:31;17081:5;17056:31;:::i;17122:980::-;17384:4;17432:3;17421:9;17417:19;17463:6;17452:9;17445:25;17489:2;17527:6;17522:2;17511:9;17507:18;17500:34;17570:3;17565:2;17554:9;17550:18;17543:31;17594:6;17629;17623:13;17660:6;17652;17645:22;17698:3;17687:9;17683:19;17676:26;;17737:2;17729:6;17725:15;17711:29;;17758:1;17768:195;17782:6;17779:1;17776:13;17768:195;;;17847:13;;-1:-1:-1;;;;;17843:39:1;17831:52;;17938:15;;;;17903:12;;;;17879:1;17797:9;17768:195;;;-1:-1:-1;;;;;;;18019:32:1;;;;18014:2;17999:18;;17992:60;-1:-1:-1;;;18083:3:1;18068:19;18061:35;17980:3;17122:980;-1:-1:-1;;;17122:980:1:o
Swarm Source
ipfs://ed660dfba75f437e7bb8ab32155ad7c6f0a852413c5fcec309ad31060d7f2556
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.