More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 106 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Max Tx Amount | 14954078 | 843 days ago | IN | 0 ETH | 0.00197618 | ||||
All Sale Fee Per... | 14954075 | 843 days ago | IN | 0 ETH | 0.00163768 | ||||
All Buy Fee Perc... | 14954072 | 843 days ago | IN | 0 ETH | 0.00204632 | ||||
Swap And Liquify... | 14954072 | 843 days ago | IN | 0 ETH | 0.00171565 | ||||
Approve | 14828555 | 863 days ago | IN | 0 ETH | 0.00078767 | ||||
Approve | 14822067 | 864 days ago | IN | 0 ETH | 0.0006381 | ||||
Approve | 14778660 | 871 days ago | IN | 0 ETH | 0.0006809 | ||||
Approve | 14777947 | 872 days ago | IN | 0 ETH | 0.00040524 | ||||
Approve | 14777399 | 872 days ago | IN | 0 ETH | 0.00144702 | ||||
Approve | 14775723 | 872 days ago | IN | 0 ETH | 0.00158879 | ||||
All Sale Fee Per... | 14775040 | 872 days ago | IN | 0 ETH | 0.00087314 | ||||
Approve | 14774590 | 872 days ago | IN | 0 ETH | 0.00176801 | ||||
Approve | 14774311 | 872 days ago | IN | 0 ETH | 0.00200422 | ||||
Approve | 14773204 | 872 days ago | IN | 0 ETH | 0.00186841 | ||||
Approve | 14773112 | 872 days ago | IN | 0 ETH | 0.00126935 | ||||
Approve | 14772963 | 872 days ago | IN | 0 ETH | 0.00147099 | ||||
Liquidity Sell F... | 14772798 | 872 days ago | IN | 0 ETH | 0.00164541 | ||||
All Buy Fee Perc... | 14772791 | 872 days ago | IN | 0 ETH | 0.00300982 | ||||
All Buy Fee Perc... | 14772788 | 872 days ago | IN | 0 ETH | 0.00098672 | ||||
Liquidity Sell F... | 14772786 | 872 days ago | IN | 0 ETH | 0.00122009 | ||||
Marketing Sell F... | 14772771 | 872 days ago | IN | 0 ETH | 0.00109805 | ||||
No Tx Fee Enable... | 14772765 | 872 days ago | IN | 0 ETH | 0.0008452 | ||||
Early Sell | 14772758 | 872 days ago | IN | 0 ETH | 0.00081114 | ||||
Marketing Sell F... | 14772744 | 872 days ago | IN | 0 ETH | 0.00104047 | ||||
All Sale Fee Per... | 14772735 | 872 days ago | IN | 0 ETH | 0.00132699 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14774596 | 872 days ago | 0.00003165 ETH | ||||
14774596 | 872 days ago | 0.00003165 ETH | ||||
14774596 | 872 days ago | 0.00006331 ETH | ||||
14773821 | 872 days ago | 0.00003735 ETH | ||||
14773821 | 872 days ago | 0.00003735 ETH | ||||
14773821 | 872 days ago | 0.0000747 ETH | ||||
14773648 | 872 days ago | 0.00003999 ETH | ||||
14773648 | 872 days ago | 0.00003999 ETH | ||||
14773648 | 872 days ago | 0.00007999 ETH | ||||
14773592 | 872 days ago | 0.00004163 ETH | ||||
14773592 | 872 days ago | 0.00004163 ETH | ||||
14773592 | 872 days ago | 0.00008326 ETH | ||||
14772719 | 872 days ago | 0.00003487 ETH | ||||
14772719 | 872 days ago | 0.00003487 ETH | ||||
14772719 | 872 days ago | 0.00006974 ETH | ||||
14772588 | 872 days ago | 0.00000351 ETH | ||||
14772588 | 872 days ago | 0.00000351 ETH | ||||
14772588 | 872 days ago | 0.00000703 ETH | ||||
14772588 | 872 days ago | 0.00000353 ETH | ||||
14772588 | 872 days ago | 0.00000353 ETH | ||||
14772588 | 872 days ago | 0.00000706 ETH | ||||
14772588 | 872 days ago | 0.00000358 ETH | ||||
14772588 | 872 days ago | 0.00000358 ETH | ||||
14772588 | 872 days ago | 0.00000717 ETH | ||||
14772588 | 872 days ago | 0.00000366 ETH |
Loading...
Loading
Contract Name:
Lionz
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-14 */ // SPDX-License-Identifier: Unlicensed //Website : https://lionzerc.com/ //Telegram : https://t.me/LionzChain //Twitter : https://twitter.com/LionzChain //Whitepaper : https://lionzerc.com/Whitepaper.pdf //$Lionz pragma solidity 0.8.13; abstract contract Context { function _msgSender() internal view virtual returns(address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns(bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns(uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns(uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns(uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns(uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns(uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns(uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns(bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash:= extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount } (""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns(bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns(bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns(bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns(bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns(bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue } (data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size:= mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns(address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns(uint256) { return _lockTime; } function getTime() public view returns(uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime, "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns(address pair); function allPairsLength() external view returns(uint); function createPair(address tokenA, address tokenB) external returns(address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint 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(uint); function balanceOf(address owner) external view returns(uint); function allowance(address owner, address spender) external view returns(uint); function approve(address spender, uint value) external returns(bool); function transfer(address to, uint value) external returns(bool); function transferFrom(address from, address to, uint 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(uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns(uint); 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(uint); function price1CumulativeLast() external view returns(uint); function kLast() external view returns(uint); function burn(address to) external returns(uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns(address); function WETH() external pure returns(address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns(uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns(uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns(uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns(uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns(uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns(uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns(uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns(uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns(uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns(uint[] memory amounts); } // pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns(uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns(uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Lionz is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; address payable public marketingAddress = payable(0x3dd24427c5535846AD9723b28E56762B4Cee82Cd); address public deadWallet = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromWhale; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; mapping(address => bool) private _isExemptFromTxLimit; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1_000_000_000_000 * 10 ** 18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = "Lionz"; string private _symbol = "lionz"; uint8 private _decimals = 18; uint256 public _liquidityFee = 0; uint256 private _previousLiquidityFee = _liquidityFee; uint256 public _marketingFee = 3; uint256 private _previousMarketingFee = _marketingFee; uint256 public _burnFee = 0; uint256 private _previousBurnFee = _burnFee; uint256 _sellLiquidityFee = 0; uint256 _sellMarketingFee = 3; uint256 _sellBurnFee = 0; uint256 public extraEarlySellFee = 25; bool public applyExtraEarlySellFee = false; bool public noTxFee = false; uint256 public _maxTxAmount = _tTotal.div(100).mul(10); //10% uint256 private _minimumTokensBeforeSwap = 1_000_000 * 10 ** 18; uint256 public _walletHoldingMaxLimit = _tTotal.div(100).mul(10); // 10% IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; event RewardLiquidityProviders(uint256 tokenAmount); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { _rOwned[owner()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; emit Transfer(address(0), owner(), _tTotal); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[marketingAddress] = true; _isExemptFromTxLimit[owner()] = true; _isExemptFromTxLimit[address(this)] = true; _isExemptFromTxLimit[marketingAddress] = true; //exlude from whale limit excludeWalletsFromWhales(); } function name() public view returns(string memory) { return _name; } function symbol() public view returns(string memory) { return _symbol; } function decimals() public view returns(uint8) { return _decimals; } function totalSupply() public view override returns(uint256) { return _tTotal; } function balanceOf(address account) public view override returns(uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns(bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns(uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns(bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcludedFromReward(address account) public view returns(bool) { return _isExcluded[account]; } function totalFees() public view returns(uint256) { return _tFeeTotal; } function _minimumTokensBeforeSwapAmount() public view returns(uint256) { return _minimumTokensBeforeSwap; } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function isExcludedFromFee(address account) external view returns(bool) { return _isExcludedFromFee[account]; } function excludeFromFee(address account) external onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) external onlyOwner { _isExcludedFromFee[account] = false; } function _approve(address owner, address spender, uint256 amount) private { 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!_isExemptFromTxLimit[from] && !_isExemptFromTxLimit[to]) { require(amount <= _maxTxAmount, "Exceeds Max Tx Amount"); } checkForWhale(from, to, amount); checkForBlackList(from, to); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap; if (!inSwapAndLiquify && swapAndLiquifyEnabled && from != uniswapV2Pair) { if (overMinimumTokenBalance) { contractTokenBalance = _minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } } if (to == uniswapV2Pair) { SaleFee(); if (applyExtraEarlySellFee) { _sellMarketingFee += extraEarlySellFee; } } bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function ExtraEarlySellFee(uint256 _fee) external onlyOwner { extraEarlySellFee = _fee; require(_fee <= 99, "Too High Fee"); } function EarlySell(bool _enable) external onlyOwner { applyExtraEarlySellFee = _enable; } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 _swapableFee = _liquidityFee.add(_marketingFee); uint256 halfLiquidityTokens = contractTokenBalance.mul(_liquidityFee).div(_swapableFee).div(2); uint256 swapableTokens = contractTokenBalance.sub(halfLiquidityTokens); swapTokensForEth(swapableTokens); uint256 newBalance = address(this).balance; if (_liquidityFee > 0) { uint256 bnbForLiquidity = newBalance.mul(_liquidityFee).div(_swapableFee).div(2); addLiquidity(halfLiquidityTokens, bnbForLiquidity); emit SwapAndLiquify(halfLiquidityTokens, bnbForLiquidity, halfLiquidityTokens); newBalance = newBalance.sub(bnbForLiquidity); } marketingAddress.transfer(newBalance); } 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), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{ value: ethAmount } ( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee || noTxFee == true) { removeAllFee(); } uint256 burnTokens = amount.mul(_burnFee).div(100); amount = amount.sub(burnTokens); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } removeAllFee(); if (burnTokens > 0) { _transferStandard(sender, deadWallet, burnTokens); } restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); emit Transfer(sender, recipient, tTransferAmount); if (tLiquidity > 0) { emit Transfer(sender, address(this), tLiquidity); } } function excludeFromTxLimit(address account, bool _value) external onlyOwner { _isExemptFromTxLimit[account] = _value; } function _getValues(uint256 tAmount) private view returns(uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tLiquidity) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount) = _getRValues(tAmount, tLiquidity, _getRate()); return (rAmount, rTransferAmount, tTransferAmount, tLiquidity); } function _getTValues(uint256 tAmount) private view returns(uint256, uint256) { uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tLiquidity); return (tTransferAmount, tLiquidity); } function _getRValues(uint256 tAmount, uint256 tLiquidity, uint256 currentRate) private pure returns(uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rLiquidity); return (rAmount, rTransferAmount); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeLiquidity(uint256 tLiquidity) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity); if (_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity); } function calculateLiquidityFee(uint256 _amount) private view returns(uint256) { _amount = _amount.mul(100).div(100 - _burnFee); return _amount.mul(_liquidityFee + _marketingFee).div(100); } function removeAllFee() private { _liquidityFee = 0; _marketingFee = 0; _burnFee = 0; } function restoreAllFee() private { _liquidityFee = _previousLiquidityFee; _marketingFee = _previousMarketingFee; _burnFee = _previousBurnFee; } function SaleFee() private { _liquidityFee = _sellLiquidityFee; _marketingFee = _sellMarketingFee; _marketingFee = _sellBurnFee; } event updateBuyFee(uint256 totalFee, uint256 timestamp); function AllBuyFeePercentages(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee) external onlyOwner() { _liquidityFee = liquidityFee; _previousLiquidityFee = liquidityFee; _marketingFee = marketingFee; _previousMarketingFee = marketingFee; _burnFee = burnFee; _previousBurnFee = burnFee; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_burnFee); require(totalFee <= 99, "Too High Fee"); emit updateBuyFee(totalFee, block.timestamp); } function LiquidityBuyFeePercentage(uint256 liquidityFee) external onlyOwner() { _liquidityFee = liquidityFee; _previousLiquidityFee = liquidityFee; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_burnFee); require(totalFee <= 99, "Too High Fee"); emit updateBuyFee(totalFee, block.timestamp); } function MarketingBuyFeePercentage(uint256 marketingFee) external onlyOwner() { _marketingFee = marketingFee; _previousMarketingFee = marketingFee; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_burnFee); require(totalFee <= 99, "Too High Fee"); emit updateBuyFee(totalFee, block.timestamp); } function BurnBuyFeePercentages(uint256 burnFee) external onlyOwner() { _burnFee = burnFee; _previousBurnFee = burnFee; uint256 totalFee = _liquidityFee.add(_marketingFee).add(_burnFee); require(totalFee <= 99, "Too High Fee"); emit updateBuyFee(totalFee, block.timestamp); } event updateSellFee(uint256 totalFee, uint256 timestamp); function AllSaleFeePercentages(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee) external onlyOwner() { _sellLiquidityFee = liquidityFee; _sellMarketingFee = marketingFee; _sellBurnFee = burnFee; uint256 totalFee = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnFee); require(totalFee <= 99, "Too High Fee"); emit updateSellFee(totalFee, block.timestamp); } function LiquiditySellFeePercentage(uint256 liquidityFee) external onlyOwner() { _sellLiquidityFee = liquidityFee; uint256 totalFee = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnFee); require(totalFee <= 99, "Too High Fee"); emit updateSellFee(totalFee, block.timestamp); } function MarketingSellFeePercentages(uint256 marketingFee) external onlyOwner() { _sellMarketingFee = marketingFee; uint256 totalFee = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnFee); require(totalFee <= 99, "Too High Fee"); emit updateSellFee(totalFee, block.timestamp); } function BurnSellFeePercentages(uint256 burnFee) external onlyOwner() { _sellBurnFee = burnFee; uint256 totalFee = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnFee); require(totalFee <= 99, "Too High Fee"); emit updateSellFee(totalFee, block.timestamp); } function MaxTxAmount(uint256 _mount) external onlyOwner() { require(_mount > _tTotal.div(1000), "Too low Txn limit"); // Min 0.1% _maxTxAmount = _mount; } function prepareForPresale() external onlyOwner { noTxFee = true; _maxTxAmount = _tTotal; SwapAndLiquifyEnabled(false); } function afterPresale() external onlyOwner { noTxFee = false; _maxTxAmount = _tTotal.div(100).mul(10); SwapAndLiquifyEnabled(true); } function NumTokensSellToAddToLiquidity(uint256 __minimumTokensBeforeSwap) external onlyOwner() { _minimumTokensBeforeSwap = __minimumTokensBeforeSwap; } function NoTxFeeEnabled(bool _enable) external onlyOwner { noTxFee = _enable; } function MarketingAddress(address _marketingAddress) external onlyOwner() { marketingAddress = payable(_marketingAddress); } function SwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from uniswapV2Router when swaping receive() external payable { } function excludeWalletsFromWhales() private { _isExcludedFromWhale[owner()] = true; _isExcludedFromWhale[address(this)] = true; _isExcludedFromWhale[address(0)] = true; _isExcludedFromWhale[uniswapV2Pair] = true; _isExcludedFromWhale[marketingAddress] = true; } function checkForWhale(address from, address to, uint256 amount) private view { uint256 newBalance = balanceOf(to).add(amount); if (!_isExcludedFromWhale[from] && !_isExcludedFromWhale[to]) { require(newBalance <= _walletHoldingMaxLimit, "Exceeding max tokens limit in the wallet"); } if (from == uniswapV2Pair && !_isExcludedFromWhale[to]) { require(newBalance <= _walletHoldingMaxLimit, "Exceeding max tokens limit in the wallet"); } } function ExcludedFromWhale(address account, bool _enabled) public onlyOwner { _isExcludedFromWhale[account] = _enabled; } function WalletMaxHoldingLimit(uint256 _amount) public onlyOwner { require(_amount > _tTotal.div(10000), "Too less limit"); _walletHoldingMaxLimit = _amount; } /// nobox mapping(address => bool) public _isBlacklisted; event AccountBlacklisted(address _account, bool _value, uint256 timestamp); function botdel(address account, bool value) external onlyOwner { _isBlacklisted[account] = value; emit AccountBlacklisted(account, value, block.timestamp); } function checkForBlackList(address from, address to) private view { require(!_isBlacklisted[from] && !_isBlacklisted[to], 'Blacklisted address'); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AccountBlacklisted","type":"event"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":false,"internalType":"uint256","name":"totalFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"updateBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"updateSellFee","type":"event"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"AllBuyFeePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"AllSaleFeePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"BurnBuyFeePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"BurnSellFeePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"EarlySell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"ExcludedFromWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"ExtraEarlySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"LiquidityBuyFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"LiquiditySellFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"MarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"MarketingBuyFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"MarketingSellFeePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mount","type":"uint256"}],"name":"MaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"NoTxFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__minimumTokensBeforeSwap","type":"uint256"}],"name":"NumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"WalletMaxHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletHoldingMaxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"afterPresale","outputs":[],"stateMutability":"nonpayable","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":[],"name":"applyExtraEarlySellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"botdel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"excludeFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extraEarlySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noTxFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareForPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600380546001600160a01b0319908116733dd24427c5535846ad9723b28e56762b4cee82cd179091556004805490911661dead1790556c0c9f2c9cd04674edea40000000600d8190556200005b9060001962000781565b6200006990600019620007ae565b600e55604080518082019091526005808252642634b7b73d60d91b60209092019182526200009a91601091620006c5565b50604080518082019091526005808252643634b7b73d60d91b6020909201918252620000c991601191620006c5565b506012805460ff191681179055600060138190556014819055600360158190556016819055601782905560188290556019828155601a91909155601b91909155601c55601d805461ffff19169055600d546200014f90600a906200013b906064620004fb602090811b62001d0b17901c565b6200054e60201b62001d4d1790919060201c565b601e5569d3c21bcecceda1000000601f5562000183600a6200013b6064600d54620004fb60201b62001d0b1790919060201c565b6020556021805460ff60a81b19169055348015620001a057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e5460056000620001fc6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e9190620007c8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003129190620007c8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003869190620007c8565b602180546001600160a01b0319166001600160a01b039283161790558116608052620003ba6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516200040291815260200190565b60405180910390a3600160096000620004236000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155600354909116835290822080549093168117909255600b90620004936000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600b909352818320805485166001908117909155600354909116835291208054909216179055620004f4620005dc565b50620008c0565b60006200054583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200068960201b60201c565b90505b92915050565b600082600003620005625750600062000548565b6000620005708385620007f3565b9050826200057f858362000815565b14620005455760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b600160086000620005f56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260089093528183208054851660019081179091557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c78054861682179055602154821684528284208054861682179055600354909116835291208054909216179055565b60008183620006ad5760405162461bcd60e51b8152600401620005d391906200082c565b506000620006bc848662000815565b95945050505050565b828054620006d39062000884565b90600052602060002090601f016020900481019282620006f7576000855562000742565b82601f106200071257805160ff191683800117855562000742565b8280016001018555821562000742579182015b828111156200074257825182559160200191906001019062000725565b506200075092915062000754565b5090565b5b8082111562000750576000815560010162000755565b634e487b7160e01b600052601260045260246000fd5b6000826200079357620007936200076b565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620007c357620007c362000798565b500390565b600060208284031215620007db57600080fd5b81516001600160a01b03811681146200054557600080fd5b600081600019048311821515161562000810576200081062000798565b500290565b6000826200082757620008276200076b565b500490565b600060208083528351808285015260005b818110156200085b578581018301518582016040015282016200083d565b818111156200086e576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c908216806200089957607f821691505b602082108103620008ba57634e487b7160e01b600052602260045260246000fd5b50919050565b6080516134d4620008ff6000396000818161044901528181612929015281816129e201528181612a1e01528181612ac50152612aec01526134d46000f3fe6080604052600436106103b15760003560e01c80637510fd7b116101e7578063b81d54a91161010d578063dd467064116100a0578063ef4629681161006f578063ef46296814610b10578063f2acc19714610b26578063f2fde38b14610b46578063fcd4fa1f14610b6657600080fd5b8063dd46706414610a75578063dd62ed3e14610a95578063de87e0a514610adb578063ea2f0b3714610af057600080fd5b8063c0b0fda2116100dc578063c0b0fda214610a0a578063ce510f8e14610a20578063d31a89e714610a35578063d9e291ec14610a5557600080fd5b8063b81d54a91461098b578063b8bb2471146109aa578063b9afd5aa146109ca578063bb7c8c63146109ea57600080fd5b806395d89b4111610185578063a9059cbb11610154578063a9059cbb1461090b578063adf571d51461092b578063b02b5a351461094b578063b208a3921461096b57600080fd5b806395d89b41146108a1578063a457c2d7146108b6578063a5ece941146108d6578063a69df4b5146108f657600080fd5b806385141a77116101c157806385141a771461081557806388f8202014610835578063899e86891461086e5780638da5cb5b1461088357600080fd5b80637510fd7b146107bf57806377dbe8e0146107df5780637d1db4a5146107ff57600080fd5b80633685d419116102d7578063557ed1ba1161026a5780636bc87c3a116102395780636bc87c3a1461075e57806370a0823114610774578063715018a61461079457806372b28e45146107a957600080fd5b8063557ed1ba146106f6578063602bc62b14610709578063647e6c301461071e57806368c3a4071461073e57600080fd5b806349bd5a5e116102a657806349bd5a5e1461065c5780634a74bb021461067c57806352390c021461069d5780635342acb4146106bd57600080fd5b80633685d419146105e25780633950935114610602578063437823ec146106225780634476f87f1461064257600080fd5b806322976e0d1161034f5780632be673181161031e5780632be67318146105605780632d8381191461058057806330280a71146105a0578063313ce567146105c057600080fd5b806322976e0d146104ea57806323b872dd146105005780632601a1f3146105205780632981d3fb1461054057600080fd5b80631694505e1161038b5780631694505e1461043757806318160ddd1461048357806319d6bb63146104985780631cdd3be3146104ba57600080fd5b806306fdde03146103bd578063095ea7b3146103e857806313114a9d1461041857600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610b86565b6040516103df9190612fc6565b60405180910390f35b3480156103f457600080fd5b50610408610403366004613030565b610c18565b60405190151581526020016103df565b34801561042457600080fd5b50600f545b6040519081526020016103df565b34801561044357600080fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103df565b34801561048f57600080fd5b50600d54610429565b3480156104a457600080fd5b506104b86104b3366004613071565b610c2f565b005b3480156104c657600080fd5b506104086104d53660046130a6565b60226020526000908152604090205460ff1681565b3480156104f657600080fd5b5061042960155481565b34801561050c57600080fd5b5061040861051b3660046130c3565b610c8d565b34801561052c57600080fd5b506104b861053b366004613104565b610cf6565b34801561054c57600080fd5b506104b861055b36600461311d565b610d25565b34801561056c57600080fd5b506104b861057b366004613104565b610d62565b34801561058c57600080fd5b5061042961059b366004613104565b610e0f565b3480156105ac57600080fd5b506104b86105bb366004613071565b610e93565b3480156105cc57600080fd5b5060125460405160ff90911681526020016103df565b3480156105ee57600080fd5b506104b86105fd3660046130a6565b610ee8565b34801561060e57600080fd5b5061040861061d366004613030565b61109e565b34801561062e57600080fd5b506104b861063d3660046130a6565b6110d4565b34801561064e57600080fd5b50601d546104089060ff1681565b34801561066857600080fd5b5060215461046b906001600160a01b031681565b34801561068857600080fd5b5060215461040890600160a81b900460ff1681565b3480156106a957600080fd5b506104b86106b83660046130a6565b611122565b3480156106c957600080fd5b506104086106d83660046130a6565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561070257600080fd5b5042610429565b34801561071557600080fd5b50600254610429565b34801561072a57600080fd5b506104b8610739366004613138565b611275565b34801561074a57600080fd5b506104b861075936600461311d565b611320565b34801561076a57600080fd5b5061042960135481565b34801561078057600080fd5b5061042961078f3660046130a6565b611364565b3480156107a057600080fd5b506104b86113c3565b3480156107b557600080fd5b5061042960205481565b3480156107cb57600080fd5b506104b86107da366004613104565b611425565b3480156107eb57600080fd5b506104b86107fa366004613104565b611478565b34801561080b57600080fd5b50610429601e5481565b34801561082157600080fd5b5060045461046b906001600160a01b031681565b34801561084157600080fd5b506104086108503660046130a6565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561087a57600080fd5b506104b861151c565b34801561088f57600080fd5b506000546001600160a01b031661046b565b3480156108ad57600080fd5b506103d261157b565b3480156108c257600080fd5b506104086108d1366004613030565b61158a565b3480156108e257600080fd5b5060035461046b906001600160a01b031681565b34801561090257600080fd5b506104b86115d9565b34801561091757600080fd5b50610408610926366004613030565b6116df565b34801561093757600080fd5b506104b86109463660046130a6565b6116ec565b34801561095757600080fd5b506104b8610966366004613138565b611738565b34801561097757600080fd5b506104b8610986366004613104565b6117e8565b34801561099757600080fd5b50601d5461040890610100900460ff1681565b3480156109b657600080fd5b506104b86109c5366004613104565b61182e565b3480156109d657600080fd5b506104b86109e5366004613071565b6118ab565b3480156109f657600080fd5b506104b8610a05366004613104565b611938565b348015610a1657600080fd5b5061042960175481565b348015610a2c57600080fd5b50601f54610429565b348015610a4157600080fd5b506104b8610a50366004613104565b611983565b348015610a6157600080fd5b506104b8610a70366004613104565b6119d0565b348015610a8157600080fd5b506104b8610a90366004613104565b611a18565b348015610aa157600080fd5b50610429610ab0366004613164565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610ae757600080fd5b506104b8611a9d565b348015610afc57600080fd5b506104b8610b0b3660046130a6565b611ae6565b348015610b1c57600080fd5b50610429601c5481565b348015610b3257600080fd5b506104b8610b4136600461311d565b611b31565b348015610b5257600080fd5b506104b8610b613660046130a6565b611bb3565b348015610b7257600080fd5b506104b8610b81366004613104565b611c8b565b606060108054610b959061319d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc19061319d565b8015610c0e5780601f10610be357610100808354040283529160200191610c0e565b820191906000526020600020905b815481529060010190602001808311610bf157829003601f168201915b5050505050905090565b6000610c25338484611dcf565b5060015b92915050565b6000546001600160a01b03163314610c625760405162461bcd60e51b8152600401610c59906131d7565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610c9a848484611ef3565b610cec8433610ce785604051806060016040528060288152602001613432602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906121d7565b611dcf565b5060019392505050565b6000546001600160a01b03163314610d205760405162461bcd60e51b8152600401610c59906131d7565b601f55565b6000546001600160a01b03163314610d4f5760405162461bcd60e51b8152600401610c59906131d7565b601d805460ff1916911515919091179055565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b8152600401610c59906131d7565b6019819055601b54601a54600091610daf91610da9908590612211565b90612211565b90506063811115610dd25760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527fbeffc7d4178032027ebba42d427db52b485676d033f1ffbae43c7093e45dd88a91015b60405180910390a15050565b6000600e54821115610e765760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c59565b6000610e80612270565b9050610e8c8382611d0b565b9392505050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b0381166000908152600a602052604090205460ff16610f7a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c59565b60005b600c5481101561109a57816001600160a01b0316600c8281548110610fa457610fa4613232565b6000918252602090912001546001600160a01b03160361108857600c8054610fce9060019061325e565b81548110610fde57610fde613232565b600091825260209091200154600c80546001600160a01b03909216918390811061100a5761100a613232565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600a90925220805460ff19169055600c80548061106257611062613275565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806110928161328b565b915050610f7d565b5050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610c25918590610ce79086612211565b6000546001600160a01b031633146110fe5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b0316331461114c5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b0381166000908152600a602052604090205460ff16156111b55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c59565b6001600160a01b0381166000908152600560205260409020541561120f576001600160a01b0381166000908152600560205260409020546111f590610e0f565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b03166000818152600a60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6000546001600160a01b0316331461129f5760405162461bcd60e51b8152600401610c59906131d7565b6019839055601a829055601b81905560006112be82610da98686612211565b905060638111156112e15760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527fbeffc7d4178032027ebba42d427db52b485676d033f1ffbae43c7093e45dd88a91015b60405180910390a150505050565b6000546001600160a01b0316331461134a5760405162461bcd60e51b8152600401610c59906131d7565b601d80549115156101000261ff0019909216919091179055565b6001600160a01b0381166000908152600a602052604081205460ff16156113a157506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610c2990610e0f565b6000546001600160a01b031633146113ed5760405162461bcd60e51b8152600401610c59906131d7565b600080546040516001600160a01b039091169060008051602061345a833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461144f5760405162461bcd60e51b8152600401610c59906131d7565b601c81905560638111156114755760405162461bcd60e51b8152600401610c599061320c565b50565b6000546001600160a01b031633146114a25760405162461bcd60e51b8152600401610c59906131d7565b601381905560148190556017546015546000916114c491610da9908590612211565b905060638111156114e75760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527f610e34b9a6d597a42f1fa3287be54f91084bc8470a79e360a38d938a8d12c4d59101610e03565b6000546001600160a01b031633146115465760405162461bcd60e51b8152600401610c59906131d7565b601d805461ff0019169055600d5461156c90600a90611566906064611d0b565b90611d4d565b601e556115796001611b31565b565b606060118054610b959061319d565b6000610c253384610ce78560405180606001604052806025815260200161347a602591393360009081526007602090815260408083206001600160a01b038d16845290915290205491906121d7565b6001546001600160a01b0316331461163f5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610c59565b60025442116116905760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c59565b600154600080546040516001600160a01b03938416939091169160008051602061345a83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610c25338484611ef3565b6000546001600160a01b031633146117165760405162461bcd60e51b8152600401610c59906131d7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146117625760405162461bcd60e51b8152600401610c59906131d7565b601383905560148390556015829055601682905560178190556018819055600061179082610da98686612211565b905060638111156117b35760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527f610e34b9a6d597a42f1fa3287be54f91084bc8470a79e360a38d938a8d12c4d59101611312565b6000546001600160a01b031633146118125760405162461bcd60e51b8152600401610c59906131d7565b601a819055601b54601954600091610daf91610da99085612211565b6000546001600160a01b031633146118585760405162461bcd60e51b8152600401610c59906131d7565b600d5461186790612710611d0b565b81116118a65760405162461bcd60e51b815260206004820152600e60248201526d151bdbc81b195cdcc81b1a5b5a5d60921b6044820152606401610c59565b602055565b6000546001600160a01b031633146118d55760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915582519384529083015242908201527f6939dfd500375b74c4a98d82db6e7fa9fa1facbdeb93453f963f7e2a3bca737b90606001610e03565b6000546001600160a01b031633146119625760405162461bcd60e51b8152600401610c59906131d7565b601581905560168190556017546013546000916114c491610da99085612211565b6000546001600160a01b031633146119ad5760405162461bcd60e51b8152600401610c59906131d7565b601781905560188190556015546013546000916114c4918491610da99190612211565b6000546001600160a01b031633146119fa5760405162461bcd60e51b8152600401610c59906131d7565b601b819055601a54601954600091610daf918491610da99190612211565b6000546001600160a01b03163314611a425760405162461bcd60e51b8152600401610c59906131d7565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611a7181426132a4565b600255600080546040516001600160a01b039091169060008051602061345a833981519152908390a350565b6000546001600160a01b03163314611ac75760405162461bcd60e51b8152600401610c59906131d7565b601d805461ff001916610100179055600d54601e556115796000611b31565b6000546001600160a01b03163314611b105760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b03163314611b5b5760405162461bcd60e51b8152600401610c59906131d7565b60218054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611ba890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611bdd5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b038116611c425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c59565b600080546040516001600160a01b038085169392169160008051602061345a83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611cb55760405162461bcd60e51b8152600401610c59906131d7565b600d54611cc4906103e8611d0b565b8111611d065760405162461bcd60e51b8152602060048201526011602482015270151bdbc81b1bddc8151e1b881b1a5b5a5d607a1b6044820152606401610c59565b601e55565b6000610e8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b600082600003611d5f57506000610c29565b6000611d6b83856132bc565b905082611d7885836132db565b14610e8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c59565b6001600160a01b038316611e315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c59565b6001600160a01b038216611e925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c59565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c59565b6001600160a01b038216611fb95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c59565b6000811161201b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c59565b6001600160a01b0383166000908152600b602052604090205460ff1615801561205d57506001600160a01b0382166000908152600b602052604090205460ff16155b156120ac57601e548111156120ac5760405162461bcd60e51b8152602060048201526015602482015274115e18d959591cc813585e08151e08105b5bdd5b9d605a1b6044820152606401610c59565b6120b78383836122c1565b6120c1838361239f565b60006120cc30611364565b601f5460215491925082101590600160a01b900460ff161580156120f95750602154600160a81b900460ff165b801561211357506021546001600160a01b03868116911614155b1561212c57801561212c57601f54915061212c82612423565b6021546001600160a01b039081169085160361217857612153601954601355601b54601555565b601d5460ff161561217857601c54601a600082825461217291906132a4565b90915550505b6001600160a01b03851660009081526009602052604090205460019060ff16806121ba57506001600160a01b03851660009081526009602052604090205460ff165b156121c3575060005b6121cf8686868461255e565b505050505050565b600081848411156121fb5760405162461bcd60e51b8152600401610c599190612fc6565b506000612208848661325e565b95945050505050565b60008061221e83856132a4565b905083811015610e8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c59565b600080600061227d61270e565b909250905061228c8282611d0b565b9250505090565b600081836122b45760405162461bcd60e51b8152600401610c599190612fc6565b50600061220884866132db565b60006122d082610da985611364565b6001600160a01b03851660009081526008602052604090205490915060ff1615801561231557506001600160a01b03831660009081526008602052604090205460ff16155b1561233c5760205481111561233c5760405162461bcd60e51b8152600401610c59906132fd565b6021546001600160a01b03858116911614801561237257506001600160a01b03831660009081526008602052604090205460ff16155b15612399576020548111156123995760405162461bcd60e51b8152600401610c59906132fd565b50505050565b6001600160a01b03821660009081526022602052604090205460ff161580156123e157506001600160a01b03811660009081526022602052604090205460ff16155b61109a5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610c59565b6021805460ff60a01b1916600160a01b1790556015546013546000916124499190612211565b90506000612471600261246b8461246b60135488611d4d90919063ffffffff16565b90611d0b565b9050600061247f8483612890565b905061248a816128d2565b60135447901561250f5760006124b4600261246b8761246b60135487611d4d90919063ffffffff16565b90506124c08482612abf565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a161250b8282612890565b9150505b6003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612549573d6000803e3d6000fd5b50506021805460ff60a01b1916905550505050565b8015806125785750601d5460ff6101009091041615156001145b1561259157612591600060138190556015819055601755565b60006125ad606461246b60175486611d4d90919063ffffffff16565b90506125b98382612890565b6001600160a01b0386166000908152600a602052604090205490935060ff1680156125fd57506001600160a01b0384166000908152600a602052604090205460ff16155b156126125761260d858585612bbe565b6126be565b6001600160a01b0385166000908152600a602052604090205460ff1615801561265357506001600160a01b0384166000908152600a602052604090205460ff165b156126635761260d858585612d17565b6001600160a01b0385166000908152600a602052604090205460ff1680156126a357506001600160a01b0384166000908152600a602052604090205460ff165b156126b35761260d858585612db8565b6126be858585612e23565b6126d2600060138190556015819055601755565b80156126f0576004546126f09086906001600160a01b031683612e23565b612707601454601355601654601555601854601755565b5050505050565b600e54600d546000918291825b600c54811015612860578260056000600c848154811061273d5761273d613232565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806127a857508160066000600c848154811061278157612781613232565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156127be57600e54600d54945094505050509091565b61280460056000600c84815481106127d8576127d8613232565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612890565b925061284c60066000600c848154811061282057612820613232565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612890565b9150806128588161328b565b91505061271b565b50600d54600e5461287091611d0b565b82101561288757600e54600d549350935050509091565b90939092509050565b6000610e8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290757612907613232565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a99190613345565b816001815181106129bc576129bc613232565b60200260200101906001600160a01b031690816001600160a01b031681525050612a07307f000000000000000000000000000000000000000000000000000000000000000084611dcf565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612a5c9085906000908690309042906004016133a6565b600060405180830381600087803b158015612a7657600080fd5b505af1158015612a8a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610e039291906133e2565b612aea307f000000000000000000000000000000000000000000000000000000000000000084611dcf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080612b316000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612b99573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127079190613403565b600080600080612bcd85612e5f565b6001600160a01b038b1660009081526006602052604090205493975091955093509150612bfa9086612890565b6001600160a01b038816600090815260066020908152604080832093909355600590522054612c299085612890565b6001600160a01b038089166000908152600560205260408082209390935590881681522054612c589084612211565b6001600160a01b038716600090815260056020526040902055612c7a81612e9d565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cbf91815260200190565b60405180910390a38015612d0e5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b600080600080612d2685612e5f565b6001600160a01b038b1660009081526005602052604090205493975091955093509150612d539085612890565b6001600160a01b03808916600090815260056020908152604080832094909455918916815260069091522054612d899083612211565b6001600160a01b038716600090815260066020908152604080832093909355600590522054612c589084612211565b600080600080612dc785612e5f565b6001600160a01b038b1660009081526006602052604090205493975091955093509150612df49086612890565b6001600160a01b038816600090815260066020908152604080832093909355600590522054612d539085612890565b600080600080612e3285612e5f565b6001600160a01b038b1660009081526005602052604090205493975091955093509150612c299085612890565b600080600080600080612e7187612f26565b91509150600080612e8a8984612e85612270565b612f4d565b909a909950939750919550919350505050565b6000612ea7612270565b90506000612eb58383611d4d565b30600090815260056020526040902054909150612ed29082612211565b30600090815260056020908152604080832093909355600a9052205460ff1615612f215730600090815260066020526040902054612f109084612211565b306000908152600660205260409020555b505050565b6000806000612f3484612f86565b90506000612f428583612890565b959194509092505050565b60008080612f5b8685611d4d565b90506000612f698686611d4d565b90506000612f778383612890565b92989297509195505050505050565b6000612fa56017546064612f9a919061325e565b61246b846064611d4d565b9150610c29606461246b601554601354612fbf91906132a4565b8590611d4d565b600060208083528351808285015260005b81811015612ff357858101830151858201604001528201612fd7565b81811115613005576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461147557600080fd5b6000806040838503121561304357600080fd5b823561304e8161301b565b946020939093013593505050565b8035801515811461306c57600080fd5b919050565b6000806040838503121561308457600080fd5b823561308f8161301b565b915061309d6020840161305c565b90509250929050565b6000602082840312156130b857600080fd5b8135610e8c8161301b565b6000806000606084860312156130d857600080fd5b83356130e38161301b565b925060208401356130f38161301b565b929592945050506040919091013590565b60006020828403121561311657600080fd5b5035919050565b60006020828403121561312f57600080fd5b610e8c8261305c565b60008060006060848603121561314d57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561317757600080fd5b82356131828161301b565b915060208301356131928161301b565b809150509250929050565b600181811c908216806131b157607f821691505b6020821081036131d157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600c908201526b546f6f20486967682046656560a01b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561327057613270613248565b500390565b634e487b7160e01b600052603160045260246000fd5b60006001820161329d5761329d613248565b5060010190565b600082198211156132b7576132b7613248565b500190565b60008160001904831182151516156132d6576132d6613248565b500290565b6000826132f857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f457863656564696e67206d617820746f6b656e73206c696d697420696e20746860408201526719481dd85b1b195d60c21b606082015260800190565b60006020828403121561335757600080fd5b8151610e8c8161301b565b600081518084526020808501945080840160005b8381101561339b5781516001600160a01b031687529582019590820190600101613376565b509495945050505050565b85815284602082015260a0604082015260006133c560a0830186613362565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006133fb6040830184613362565b949350505050565b60008060006060848603121561341857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f108fca5bb162a9f0ec07a6d638700f74b78993536d38c62c8575e0112188a9064736f6c634300080d0033
Deployed Bytecode
0x6080604052600436106103b15760003560e01c80637510fd7b116101e7578063b81d54a91161010d578063dd467064116100a0578063ef4629681161006f578063ef46296814610b10578063f2acc19714610b26578063f2fde38b14610b46578063fcd4fa1f14610b6657600080fd5b8063dd46706414610a75578063dd62ed3e14610a95578063de87e0a514610adb578063ea2f0b3714610af057600080fd5b8063c0b0fda2116100dc578063c0b0fda214610a0a578063ce510f8e14610a20578063d31a89e714610a35578063d9e291ec14610a5557600080fd5b8063b81d54a91461098b578063b8bb2471146109aa578063b9afd5aa146109ca578063bb7c8c63146109ea57600080fd5b806395d89b4111610185578063a9059cbb11610154578063a9059cbb1461090b578063adf571d51461092b578063b02b5a351461094b578063b208a3921461096b57600080fd5b806395d89b41146108a1578063a457c2d7146108b6578063a5ece941146108d6578063a69df4b5146108f657600080fd5b806385141a77116101c157806385141a771461081557806388f8202014610835578063899e86891461086e5780638da5cb5b1461088357600080fd5b80637510fd7b146107bf57806377dbe8e0146107df5780637d1db4a5146107ff57600080fd5b80633685d419116102d7578063557ed1ba1161026a5780636bc87c3a116102395780636bc87c3a1461075e57806370a0823114610774578063715018a61461079457806372b28e45146107a957600080fd5b8063557ed1ba146106f6578063602bc62b14610709578063647e6c301461071e57806368c3a4071461073e57600080fd5b806349bd5a5e116102a657806349bd5a5e1461065c5780634a74bb021461067c57806352390c021461069d5780635342acb4146106bd57600080fd5b80633685d419146105e25780633950935114610602578063437823ec146106225780634476f87f1461064257600080fd5b806322976e0d1161034f5780632be673181161031e5780632be67318146105605780632d8381191461058057806330280a71146105a0578063313ce567146105c057600080fd5b806322976e0d146104ea57806323b872dd146105005780632601a1f3146105205780632981d3fb1461054057600080fd5b80631694505e1161038b5780631694505e1461043757806318160ddd1461048357806319d6bb63146104985780631cdd3be3146104ba57600080fd5b806306fdde03146103bd578063095ea7b3146103e857806313114a9d1461041857600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610b86565b6040516103df9190612fc6565b60405180910390f35b3480156103f457600080fd5b50610408610403366004613030565b610c18565b60405190151581526020016103df565b34801561042457600080fd5b50600f545b6040519081526020016103df565b34801561044357600080fd5b5061046b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016103df565b34801561048f57600080fd5b50600d54610429565b3480156104a457600080fd5b506104b86104b3366004613071565b610c2f565b005b3480156104c657600080fd5b506104086104d53660046130a6565b60226020526000908152604090205460ff1681565b3480156104f657600080fd5b5061042960155481565b34801561050c57600080fd5b5061040861051b3660046130c3565b610c8d565b34801561052c57600080fd5b506104b861053b366004613104565b610cf6565b34801561054c57600080fd5b506104b861055b36600461311d565b610d25565b34801561056c57600080fd5b506104b861057b366004613104565b610d62565b34801561058c57600080fd5b5061042961059b366004613104565b610e0f565b3480156105ac57600080fd5b506104b86105bb366004613071565b610e93565b3480156105cc57600080fd5b5060125460405160ff90911681526020016103df565b3480156105ee57600080fd5b506104b86105fd3660046130a6565b610ee8565b34801561060e57600080fd5b5061040861061d366004613030565b61109e565b34801561062e57600080fd5b506104b861063d3660046130a6565b6110d4565b34801561064e57600080fd5b50601d546104089060ff1681565b34801561066857600080fd5b5060215461046b906001600160a01b031681565b34801561068857600080fd5b5060215461040890600160a81b900460ff1681565b3480156106a957600080fd5b506104b86106b83660046130a6565b611122565b3480156106c957600080fd5b506104086106d83660046130a6565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561070257600080fd5b5042610429565b34801561071557600080fd5b50600254610429565b34801561072a57600080fd5b506104b8610739366004613138565b611275565b34801561074a57600080fd5b506104b861075936600461311d565b611320565b34801561076a57600080fd5b5061042960135481565b34801561078057600080fd5b5061042961078f3660046130a6565b611364565b3480156107a057600080fd5b506104b86113c3565b3480156107b557600080fd5b5061042960205481565b3480156107cb57600080fd5b506104b86107da366004613104565b611425565b3480156107eb57600080fd5b506104b86107fa366004613104565b611478565b34801561080b57600080fd5b50610429601e5481565b34801561082157600080fd5b5060045461046b906001600160a01b031681565b34801561084157600080fd5b506104086108503660046130a6565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561087a57600080fd5b506104b861151c565b34801561088f57600080fd5b506000546001600160a01b031661046b565b3480156108ad57600080fd5b506103d261157b565b3480156108c257600080fd5b506104086108d1366004613030565b61158a565b3480156108e257600080fd5b5060035461046b906001600160a01b031681565b34801561090257600080fd5b506104b86115d9565b34801561091757600080fd5b50610408610926366004613030565b6116df565b34801561093757600080fd5b506104b86109463660046130a6565b6116ec565b34801561095757600080fd5b506104b8610966366004613138565b611738565b34801561097757600080fd5b506104b8610986366004613104565b6117e8565b34801561099757600080fd5b50601d5461040890610100900460ff1681565b3480156109b657600080fd5b506104b86109c5366004613104565b61182e565b3480156109d657600080fd5b506104b86109e5366004613071565b6118ab565b3480156109f657600080fd5b506104b8610a05366004613104565b611938565b348015610a1657600080fd5b5061042960175481565b348015610a2c57600080fd5b50601f54610429565b348015610a4157600080fd5b506104b8610a50366004613104565b611983565b348015610a6157600080fd5b506104b8610a70366004613104565b6119d0565b348015610a8157600080fd5b506104b8610a90366004613104565b611a18565b348015610aa157600080fd5b50610429610ab0366004613164565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610ae757600080fd5b506104b8611a9d565b348015610afc57600080fd5b506104b8610b0b3660046130a6565b611ae6565b348015610b1c57600080fd5b50610429601c5481565b348015610b3257600080fd5b506104b8610b4136600461311d565b611b31565b348015610b5257600080fd5b506104b8610b613660046130a6565b611bb3565b348015610b7257600080fd5b506104b8610b81366004613104565b611c8b565b606060108054610b959061319d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc19061319d565b8015610c0e5780601f10610be357610100808354040283529160200191610c0e565b820191906000526020600020905b815481529060010190602001808311610bf157829003601f168201915b5050505050905090565b6000610c25338484611dcf565b5060015b92915050565b6000546001600160a01b03163314610c625760405162461bcd60e51b8152600401610c59906131d7565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610c9a848484611ef3565b610cec8433610ce785604051806060016040528060288152602001613432602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906121d7565b611dcf565b5060019392505050565b6000546001600160a01b03163314610d205760405162461bcd60e51b8152600401610c59906131d7565b601f55565b6000546001600160a01b03163314610d4f5760405162461bcd60e51b8152600401610c59906131d7565b601d805460ff1916911515919091179055565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b8152600401610c59906131d7565b6019819055601b54601a54600091610daf91610da9908590612211565b90612211565b90506063811115610dd25760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527fbeffc7d4178032027ebba42d427db52b485676d033f1ffbae43c7093e45dd88a91015b60405180910390a15050565b6000600e54821115610e765760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c59565b6000610e80612270565b9050610e8c8382611d0b565b9392505050565b6000546001600160a01b03163314610ebd5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f125760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b0381166000908152600a602052604090205460ff16610f7a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c59565b60005b600c5481101561109a57816001600160a01b0316600c8281548110610fa457610fa4613232565b6000918252602090912001546001600160a01b03160361108857600c8054610fce9060019061325e565b81548110610fde57610fde613232565b600091825260209091200154600c80546001600160a01b03909216918390811061100a5761100a613232565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600a90925220805460ff19169055600c80548061106257611062613275565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806110928161328b565b915050610f7d565b5050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610c25918590610ce79086612211565b6000546001600160a01b031633146110fe5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b0316331461114c5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b0381166000908152600a602052604090205460ff16156111b55760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c59565b6001600160a01b0381166000908152600560205260409020541561120f576001600160a01b0381166000908152600560205260409020546111f590610e0f565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b03166000818152600a60205260408120805460ff19166001908117909155600c805491820181559091527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169091179055565b6000546001600160a01b0316331461129f5760405162461bcd60e51b8152600401610c59906131d7565b6019839055601a829055601b81905560006112be82610da98686612211565b905060638111156112e15760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527fbeffc7d4178032027ebba42d427db52b485676d033f1ffbae43c7093e45dd88a91015b60405180910390a150505050565b6000546001600160a01b0316331461134a5760405162461bcd60e51b8152600401610c59906131d7565b601d80549115156101000261ff0019909216919091179055565b6001600160a01b0381166000908152600a602052604081205460ff16156113a157506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610c2990610e0f565b6000546001600160a01b031633146113ed5760405162461bcd60e51b8152600401610c59906131d7565b600080546040516001600160a01b039091169060008051602061345a833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461144f5760405162461bcd60e51b8152600401610c59906131d7565b601c81905560638111156114755760405162461bcd60e51b8152600401610c599061320c565b50565b6000546001600160a01b031633146114a25760405162461bcd60e51b8152600401610c59906131d7565b601381905560148190556017546015546000916114c491610da9908590612211565b905060638111156114e75760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527f610e34b9a6d597a42f1fa3287be54f91084bc8470a79e360a38d938a8d12c4d59101610e03565b6000546001600160a01b031633146115465760405162461bcd60e51b8152600401610c59906131d7565b601d805461ff0019169055600d5461156c90600a90611566906064611d0b565b90611d4d565b601e556115796001611b31565b565b606060118054610b959061319d565b6000610c253384610ce78560405180606001604052806025815260200161347a602591393360009081526007602090815260408083206001600160a01b038d16845290915290205491906121d7565b6001546001600160a01b0316331461163f5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610c59565b60025442116116905760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c59565b600154600080546040516001600160a01b03938416939091169160008051602061345a83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610c25338484611ef3565b6000546001600160a01b031633146117165760405162461bcd60e51b8152600401610c59906131d7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146117625760405162461bcd60e51b8152600401610c59906131d7565b601383905560148390556015829055601682905560178190556018819055600061179082610da98686612211565b905060638111156117b35760405162461bcd60e51b8152600401610c599061320c565b604080518281524260208201527f610e34b9a6d597a42f1fa3287be54f91084bc8470a79e360a38d938a8d12c4d59101611312565b6000546001600160a01b031633146118125760405162461bcd60e51b8152600401610c59906131d7565b601a819055601b54601954600091610daf91610da99085612211565b6000546001600160a01b031633146118585760405162461bcd60e51b8152600401610c59906131d7565b600d5461186790612710611d0b565b81116118a65760405162461bcd60e51b815260206004820152600e60248201526d151bdbc81b195cdcc81b1a5b5a5d60921b6044820152606401610c59565b602055565b6000546001600160a01b031633146118d55760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915582519384529083015242908201527f6939dfd500375b74c4a98d82db6e7fa9fa1facbdeb93453f963f7e2a3bca737b90606001610e03565b6000546001600160a01b031633146119625760405162461bcd60e51b8152600401610c59906131d7565b601581905560168190556017546013546000916114c491610da99085612211565b6000546001600160a01b031633146119ad5760405162461bcd60e51b8152600401610c59906131d7565b601781905560188190556015546013546000916114c4918491610da99190612211565b6000546001600160a01b031633146119fa5760405162461bcd60e51b8152600401610c59906131d7565b601b819055601a54601954600091610daf918491610da99190612211565b6000546001600160a01b03163314611a425760405162461bcd60e51b8152600401610c59906131d7565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611a7181426132a4565b600255600080546040516001600160a01b039091169060008051602061345a833981519152908390a350565b6000546001600160a01b03163314611ac75760405162461bcd60e51b8152600401610c59906131d7565b601d805461ff001916610100179055600d54601e556115796000611b31565b6000546001600160a01b03163314611b105760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b03163314611b5b5760405162461bcd60e51b8152600401610c59906131d7565b60218054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611ba890831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611bdd5760405162461bcd60e51b8152600401610c59906131d7565b6001600160a01b038116611c425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c59565b600080546040516001600160a01b038085169392169160008051602061345a83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611cb55760405162461bcd60e51b8152600401610c59906131d7565b600d54611cc4906103e8611d0b565b8111611d065760405162461bcd60e51b8152602060048201526011602482015270151bdbc81b1bddc8151e1b881b1a5b5a5d607a1b6044820152606401610c59565b601e55565b6000610e8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612293565b600082600003611d5f57506000610c29565b6000611d6b83856132bc565b905082611d7885836132db565b14610e8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c59565b6001600160a01b038316611e315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c59565b6001600160a01b038216611e925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c59565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c59565b6001600160a01b038216611fb95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c59565b6000811161201b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c59565b6001600160a01b0383166000908152600b602052604090205460ff1615801561205d57506001600160a01b0382166000908152600b602052604090205460ff16155b156120ac57601e548111156120ac5760405162461bcd60e51b8152602060048201526015602482015274115e18d959591cc813585e08151e08105b5bdd5b9d605a1b6044820152606401610c59565b6120b78383836122c1565b6120c1838361239f565b60006120cc30611364565b601f5460215491925082101590600160a01b900460ff161580156120f95750602154600160a81b900460ff165b801561211357506021546001600160a01b03868116911614155b1561212c57801561212c57601f54915061212c82612423565b6021546001600160a01b039081169085160361217857612153601954601355601b54601555565b601d5460ff161561217857601c54601a600082825461217291906132a4565b90915550505b6001600160a01b03851660009081526009602052604090205460019060ff16806121ba57506001600160a01b03851660009081526009602052604090205460ff165b156121c3575060005b6121cf8686868461255e565b505050505050565b600081848411156121fb5760405162461bcd60e51b8152600401610c599190612fc6565b506000612208848661325e565b95945050505050565b60008061221e83856132a4565b905083811015610e8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c59565b600080600061227d61270e565b909250905061228c8282611d0b565b9250505090565b600081836122b45760405162461bcd60e51b8152600401610c599190612fc6565b50600061220884866132db565b60006122d082610da985611364565b6001600160a01b03851660009081526008602052604090205490915060ff1615801561231557506001600160a01b03831660009081526008602052604090205460ff16155b1561233c5760205481111561233c5760405162461bcd60e51b8152600401610c59906132fd565b6021546001600160a01b03858116911614801561237257506001600160a01b03831660009081526008602052604090205460ff16155b15612399576020548111156123995760405162461bcd60e51b8152600401610c59906132fd565b50505050565b6001600160a01b03821660009081526022602052604090205460ff161580156123e157506001600160a01b03811660009081526022602052604090205460ff16155b61109a5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610c59565b6021805460ff60a01b1916600160a01b1790556015546013546000916124499190612211565b90506000612471600261246b8461246b60135488611d4d90919063ffffffff16565b90611d0b565b9050600061247f8483612890565b905061248a816128d2565b60135447901561250f5760006124b4600261246b8761246b60135487611d4d90919063ffffffff16565b90506124c08482612abf565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a161250b8282612890565b9150505b6003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612549573d6000803e3d6000fd5b50506021805460ff60a01b1916905550505050565b8015806125785750601d5460ff6101009091041615156001145b1561259157612591600060138190556015819055601755565b60006125ad606461246b60175486611d4d90919063ffffffff16565b90506125b98382612890565b6001600160a01b0386166000908152600a602052604090205490935060ff1680156125fd57506001600160a01b0384166000908152600a602052604090205460ff16155b156126125761260d858585612bbe565b6126be565b6001600160a01b0385166000908152600a602052604090205460ff1615801561265357506001600160a01b0384166000908152600a602052604090205460ff165b156126635761260d858585612d17565b6001600160a01b0385166000908152600a602052604090205460ff1680156126a357506001600160a01b0384166000908152600a602052604090205460ff165b156126b35761260d858585612db8565b6126be858585612e23565b6126d2600060138190556015819055601755565b80156126f0576004546126f09086906001600160a01b031683612e23565b612707601454601355601654601555601854601755565b5050505050565b600e54600d546000918291825b600c54811015612860578260056000600c848154811061273d5761273d613232565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806127a857508160066000600c848154811061278157612781613232565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156127be57600e54600d54945094505050509091565b61280460056000600c84815481106127d8576127d8613232565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612890565b925061284c60066000600c848154811061282057612820613232565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612890565b9150806128588161328b565b91505061271b565b50600d54600e5461287091611d0b565b82101561288757600e54600d549350935050509091565b90939092509050565b6000610e8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d7565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290757612907613232565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a99190613345565b816001815181106129bc576129bc613232565b60200260200101906001600160a01b031690816001600160a01b031681525050612a07307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611dcf565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612a5c9085906000908690309042906004016133a6565b600060405180830381600087803b158015612a7657600080fd5b505af1158015612a8a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610e039291906133e2565b612aea307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611dcf565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823085600080612b316000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612b99573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127079190613403565b600080600080612bcd85612e5f565b6001600160a01b038b1660009081526006602052604090205493975091955093509150612bfa9086612890565b6001600160a01b038816600090815260066020908152604080832093909355600590522054612c299085612890565b6001600160a01b038089166000908152600560205260408082209390935590881681522054612c589084612211565b6001600160a01b038716600090815260056020526040902055612c7a81612e9d565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cbf91815260200190565b60405180910390a38015612d0e5760405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505050505050565b600080600080612d2685612e5f565b6001600160a01b038b1660009081526005602052604090205493975091955093509150612d539085612890565b6001600160a01b03808916600090815260056020908152604080832094909455918916815260069091522054612d899083612211565b6001600160a01b038716600090815260066020908152604080832093909355600590522054612c589084612211565b600080600080612dc785612e5f565b6001600160a01b038b1660009081526006602052604090205493975091955093509150612df49086612890565b6001600160a01b038816600090815260066020908152604080832093909355600590522054612d539085612890565b600080600080612e3285612e5f565b6001600160a01b038b1660009081526005602052604090205493975091955093509150612c299085612890565b600080600080600080612e7187612f26565b91509150600080612e8a8984612e85612270565b612f4d565b909a909950939750919550919350505050565b6000612ea7612270565b90506000612eb58383611d4d565b30600090815260056020526040902054909150612ed29082612211565b30600090815260056020908152604080832093909355600a9052205460ff1615612f215730600090815260066020526040902054612f109084612211565b306000908152600660205260409020555b505050565b6000806000612f3484612f86565b90506000612f428583612890565b959194509092505050565b60008080612f5b8685611d4d565b90506000612f698686611d4d565b90506000612f778383612890565b92989297509195505050505050565b6000612fa56017546064612f9a919061325e565b61246b846064611d4d565b9150610c29606461246b601554601354612fbf91906132a4565b8590611d4d565b600060208083528351808285015260005b81811015612ff357858101830151858201604001528201612fd7565b81811115613005576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461147557600080fd5b6000806040838503121561304357600080fd5b823561304e8161301b565b946020939093013593505050565b8035801515811461306c57600080fd5b919050565b6000806040838503121561308457600080fd5b823561308f8161301b565b915061309d6020840161305c565b90509250929050565b6000602082840312156130b857600080fd5b8135610e8c8161301b565b6000806000606084860312156130d857600080fd5b83356130e38161301b565b925060208401356130f38161301b565b929592945050506040919091013590565b60006020828403121561311657600080fd5b5035919050565b60006020828403121561312f57600080fd5b610e8c8261305c565b60008060006060848603121561314d57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561317757600080fd5b82356131828161301b565b915060208301356131928161301b565b809150509250929050565b600181811c908216806131b157607f821691505b6020821081036131d157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600c908201526b546f6f20486967682046656560a01b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561327057613270613248565b500390565b634e487b7160e01b600052603160045260246000fd5b60006001820161329d5761329d613248565b5060010190565b600082198211156132b7576132b7613248565b500190565b60008160001904831182151516156132d6576132d6613248565b500290565b6000826132f857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f457863656564696e67206d617820746f6b656e73206c696d697420696e20746860408201526719481dd85b1b195d60c21b606082015260800190565b60006020828403121561335757600080fd5b8151610e8c8161301b565b600081518084526020808501945080840160005b8381101561339b5781516001600160a01b031687529582019590820190600101613376565b509495945050505050565b85815284602082015260a0604082015260006133c560a0830186613362565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006133fb6040830184613362565b949350505050565b60008060006060848603121561341857600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f108fca5bb162a9f0ec07a6d638700f74b78993536d38c62c8575e0112188a9064736f6c634300080d0033
Deployed Bytecode Sourcemap
14646:23948:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18002:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18907:160;;;;;;;;;;-1:-1:-1;18907:160:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;18907:160:0;1072:187:1;20028:91:0;;;;;;;;;;-1:-1:-1;20101:10:0;;20028:91;;;1410:25:1;;;1398:2;1383:18;20028:91:0;1264:177:1;16460:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:32:1;;;1619:51;;1607:2;1592:18;16460:51:0;1446:230:1;18276:94:0;;;;;;;;;;-1:-1:-1;18355:7:0;;18276:94;;37727:140;;;;;;;;;;-1:-1:-1;37727:140:0;;;;;:::i;:::-;;:::i;:::-;;38091:46;;;;;;;;;;-1:-1:-1;38091:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15809:32;;;;;;;;;;;;;;;;19075:312;;;;;;;;;;-1:-1:-1;19075:312:0;;;;;:::i;:::-;;:::i;36011:171::-;;;;;;;;;;-1:-1:-1;36011:171:0;;;;;:::i;:::-;;:::i;23722:108::-;;;;;;;;;;-1:-1:-1;23722:108:0;;;;;:::i;:::-;;:::i;34452:335::-;;;;;;;;;;-1:-1:-1;34452:335:0;;;;;:::i;:::-;;:::i;20263:257::-;;;;;;;;;;-1:-1:-1;20263:257:0;;;;;:::i;:::-;;:::i;29220:139::-;;;;;;;;;;-1:-1:-1;29220:139:0;;;;;:::i;:::-;;:::i;18186:82::-;;;;;;;;;;-1:-1:-1;18251:9:0;;18186:82;;18251:9;;;;3391:36:1;;3379:2;3364:18;18186:82:0;3249:184:1;20875:479:0;;;;;;;;;;-1:-1:-1;20875:479:0;;;;;:::i;:::-;;:::i;19395:217::-;;;;;;;;;;-1:-1:-1;19395:217:0;;;;;:::i;:::-;;:::i;21497:113::-;;;;;;;;;;-1:-1:-1;21497:113:0;;;;;:::i;:::-;;:::i;16149:42::-;;;;;;;;;;-1:-1:-1;16149:42:0;;;;;;;;16518:28;;;;;;;;;;-1:-1:-1;16518:28:0;;;;-1:-1:-1;;;;;16518:28:0;;;16587:41;;;;;;;;;;-1:-1:-1;16587:41:0;;;;-1:-1:-1;;;16587:41:0;;;;;;20528:339;;;;;;;;;;-1:-1:-1;20528:339:0;;;;;:::i;:::-;;:::i;21364:125::-;;;;;;;;;;-1:-1:-1;21364:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;21454:27:0;21430:4;21454:27;;;:18;:27;;;;;;;;;21364:125;6646:89;;;;;;;;;;-1:-1:-1;6712:15:0;6646:89;;6549;;;;;;;;;;-1:-1:-1;6621:9:0;;6549:89;;33993:447;;;;;;;;;;-1:-1:-1;33993:447:0;;;;;:::i;:::-;;:::i;36192:98::-;;;;;;;;;;-1:-1:-1;36192:98:0;;;;;:::i;:::-;;:::i;15704:32::-;;;;;;;;;;;;;;;;18378:197;;;;;;;;;;-1:-1:-1;18378:197:0;;;;;:::i;:::-;;:::i;6141:148::-;;;;;;;;;;;;;:::i;16380:64::-;;;;;;;;;;;;;;;;23558:154;;;;;;;;;;-1:-1:-1;23558:154:0;;;;;:::i;:::-;;:::i;32813:372::-;;;;;;;;;;-1:-1:-1;32813:372:0;;;;;:::i;:::-;;:::i;16238:54::-;;;;;;;;;;;;;;;;14864:70;;;;;;;;;;-1:-1:-1;14864:70:0;;;;-1:-1:-1;;;;;14864:70:0;;;19896:124;;;;;;;;;;-1:-1:-1;19896:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;19992:20:0;19963:4;19992:20;;;:11;:20;;;;;;;;;19896:124;35831:170;;;;;;;;;;;;;:::i;5921:78::-;;;;;;;;;;-1:-1:-1;5958:7:0;5985:6;-1:-1:-1;;;;;5985:6:0;5921:78;;18092:86;;;;;;;;;;;;;:::i;19620:268::-;;;;;;;;;;-1:-1:-1;19620:268:0;;;;;:::i;:::-;;:::i;14764:93::-;;;;;;;;;;-1:-1:-1;14764:93:0;;;;-1:-1:-1;;;;;14764:93:0;;;6977:304;;;;;;;;;;;;;:::i;18583:166::-;;;;;;;;;;-1:-1:-1;18583:166:0;;;;;:::i;:::-;;:::i;36298:143::-;;;;;;;;;;-1:-1:-1;36298:143:0;;;;;:::i;:::-;;:::i;32239:564::-;;;;;;;;;;-1:-1:-1;32239:564:0;;;;;:::i;:::-;;:::i;34797:336::-;;;;;;;;;;-1:-1:-1;34797:336:0;;;;;:::i;:::-;;:::i;16202:27::-;;;;;;;;;;-1:-1:-1;16202:27:0;;;;;;;;;;;37875:187;;;;;;;;;;-1:-1:-1;37875:187:0;;;;;:::i;:::-;;:::i;38229:186::-;;;;;;;;;;-1:-1:-1;38229:186:0;;;;;:::i;:::-;;:::i;33195:366::-;;;;;;;;;;-1:-1:-1;33195:366:0;;;;;:::i;:::-;;:::i;15910:27::-;;;;;;;;;;;;;;;;20127:126;;;;;;;;;;-1:-1:-1;20221:24:0;;20127:126;;33571:347;;;;;;;;;;-1:-1:-1;33571:347:0;;;;;:::i;:::-;;:::i;35143:316::-;;;;;;;;;;-1:-1:-1;35143:316:0;;;;;:::i;:::-;;:::i;6743:226::-;;;;;;;;;;-1:-1:-1;6743:226:0;;;;;:::i;:::-;;:::i;18757:142::-;;;;;;;;;;-1:-1:-1;18757:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;18864:18:0;;;18837:7;18864:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18757:142;35663:158;;;;;;;;;;;;;:::i;21618:112::-;;;;;;;;;;-1:-1:-1;21618:112:0;;;;;:::i;:::-;;:::i;16105:37::-;;;;;;;;;;;;;;;;36451:173;;;;;;;;;;-1:-1:-1;36451:173:0;;;;;:::i;:::-;;:::i;6297:244::-;;;;;;;;;;-1:-1:-1;6297:244:0;;;;;:::i;:::-;;:::i;35469:182::-;;;;;;;;;;-1:-1:-1;35469:182:0;;;;;:::i;:::-;;:::i;18002:82::-;18038:13;18071:5;18064:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18002:82;:::o;18907:160::-;18981:4;18998:39;375:10;19021:7;19030:6;18998:8;:39::i;:::-;-1:-1:-1;19055:4:0;18907:160;;;;;:::o;37727:140::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;37819:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:40;;-1:-1:-1;;37819:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;37727:140::o;19075:312::-;19172:4;19189:36;19199:6;19207:9;19218:6;19189:9;:36::i;:::-;19236:121;19245:6;375:10;19267:89;19305:6;19267:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19267:19:0;;;;;;:11;:19;;;;;;;;375:10;19267:33;;;;;;;;;;:37;:89::i;:::-;19236:8;:121::i;:::-;-1:-1:-1;19375:4:0;19075:312;;;;;:::o;36011:171::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;36122:24:::1;:52:::0;36011:171::o;23722:108::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;23790:22:::1;:32:::0;;-1:-1:-1;;23790:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23722:108::o;34452:335::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;34553:17:::1;:32:::0;;;34660:12:::1;::::0;34637:17:::1;::::0;34596:16:::1;::::0;34615:58:::1;::::0;:40:::1;::::0;34573:12;;34615:21:::1;:40::i;:::-;:44:::0;::::1;:58::i;:::-;34596:77;;34704:2;34692:8;:14;;34684:39;;;;-1:-1:-1::0;;;34684:39:0::1;;;;;;;:::i;:::-;34739:40;::::0;;5845:25:1;;;34763:15:0::1;5901:2:1::0;5886:18;;5879:34;34739:40:0::1;::::0;5818:18:1;34739:40:0::1;;;;;;;;34542:245;34452:335:::0;:::o;20263:257::-;20329:7;20373;;20362;:18;;20354:73;;;;-1:-1:-1;;;20354:73:0;;6126:2:1;20354:73:0;;;6108:21:1;6165:2;6145:18;;;6138:30;6204:34;6184:18;;;6177:62;-1:-1:-1;;;6255:18:1;;;6248:40;6305:19;;20354:73:0;5924:406:1;20354:73:0;20438:19;20460:10;:8;:10::i;:::-;20438:32;-1:-1:-1;20488:24:0;:7;20438:32;20488:11;:24::i;:::-;20481:31;20263:257;-1:-1:-1;;;20263:257:0:o;29220:139::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29313:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:38;;-1:-1:-1;;29313:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;29220:139::o;20875:479::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20957:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;20949:60;;;::::0;-1:-1:-1;;;20949:60:0;;6537:2:1;20949:60:0::1;::::0;::::1;6519:21:1::0;6576:2;6556:18;;;6549:30;6615:29;6595:18;;;6588:57;6662:18;;20949:60:0::1;6335:351:1::0;20949:60:0::1;21025:9;21020:327;21044:9;:16:::0;21040:20;::::1;21020:327;;;21102:7;-1:-1:-1::0;;;;;21086:23:0::1;:9;21096:1;21086:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;21086:12:0::1;:23:::0;21082:254:::1;;21145:9;21155:16:::0;;:20:::1;::::0;21174:1:::1;::::0;21155:20:::1;:::i;:::-;21145:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;21130:9:::1;:12:::0;;-1:-1:-1;;;;;21145:31:0;;::::1;::::0;21140:1;;21130:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;21130:46:0::1;-1:-1:-1::0;;;;;21130:46:0;;::::1;;::::0;;21195:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;21234:11:::1;:20:::0;;;;:28;;-1:-1:-1;;21234:28:0::1;::::0;;21281:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;21281:15:0;;;;;-1:-1:-1;;;;;;21281:15:0::1;::::0;;;;;21020:327:::1;20875:479:::0;:::o;21082:254::-:1;21062:3:::0;::::1;::::0;::::1;:::i;:::-;;;;21020:327;;;;20875:479:::0;:::o;19395:217::-;375:10;19482:4;19531:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19531:34:0;;;;;;;;;;19482:4;;19499:83;;19522:7;;19531:50;;19570:10;19531:38;:50::i;21497:113::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21568:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;21568:34:0::1;21598:4;21568:34;::::0;;21497:113::o;20528:339::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20616:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;20615:21;20607:61;;;::::0;-1:-1:-1;;;20607:61:0;;6537:2:1;20607:61:0::1;::::0;::::1;6519:21:1::0;6576:2;6556:18;;;6549:30;6615:29;6595:18;;;6588:57;6662:18;;20607:61:0::1;6335:351:1::0;20607:61:0::1;-1:-1:-1::0;;;;;20683:16:0;::::1;20702:1;20683:16:::0;;;:7:::1;:16;::::0;;;;;:20;20679:109:::1;;-1:-1:-1::0;;;;;20759:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;20739:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;20720:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;20679:109:::1;-1:-1:-1::0;;;;;20798:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;20798:27:0::1;20821:4;20798:27:::0;;::::1;::::0;;;20836:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;20836:23:0::1;::::0;;::::1;::::0;;20528:339::o;33993:447::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;34128:17:::1;:32:::0;;;34171:17:::1;:32:::0;;;34214:12:::1;:22:::0;;;-1:-1:-1;34268:58:0::1;34229:7:::0;34268:40:::1;34148:12:::0;34191;34268:21:::1;:40::i;:58::-;34249:77;;34357:2;34345:8;:14;;34337:39;;;;-1:-1:-1::0;;;34337:39:0::1;;;;;;;:::i;:::-;34392:40;::::0;;5845:25:1;;;34416:15:0::1;5901:2:1::0;5886:18;;5879:34;34392:40:0::1;::::0;5818:18:1;34392:40:0::1;;;;;;;;34117:323;33993:447:::0;;;:::o;36192:98::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;36265:7:::1;:17:::0;;;::::1;;;;-1:-1:-1::0;;36265:17:0;;::::1;::::0;;;::::1;::::0;;36192:98::o;18378:197::-;-1:-1:-1;;;;;18467:20:0;;18443:7;18467:20;;;:11;:20;;;;;;;;18463:49;;;-1:-1:-1;;;;;;18496:16:0;;;;;:7;:16;;;;;;;18378:197::o;18463:49::-;-1:-1:-1;;;;;18550:16:0;;;;;;:7;:16;;;;;;18530:37;;:19;:37::i;6141:148::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;6248:1:::1;6232:6:::0;;6211:40:::1;::::0;-1:-1:-1;;;;;6232:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6211:40:0;6248:1;;6211:40:::1;6279:1;6262:19:::0;;-1:-1:-1;;;;;;6262:19:0::1;::::0;;6141:148::o;23558:154::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;23634:17:::1;:24:::0;;;23685:2:::1;23677:10:::0;::::1;;23669:35;;;;-1:-1:-1::0;;;23669:35:0::1;;;;;;;:::i;:::-;23558:154:::0;:::o;32813:372::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;32913:13:::1;:28:::0;;;32952:21:::1;:36:::0;;;33063:8:::1;::::0;33044:13:::1;::::0;-1:-1:-1;;33026:46:0::1;::::0;:32:::1;::::0;32929:12;;33026:17:::1;:32::i;:46::-;33007:65;;33103:2;33091:8;:14;;33083:39;;;;-1:-1:-1::0;;;33083:39:0::1;;;;;;;:::i;:::-;33138;::::0;;5845:25:1;;;33161:15:0::1;5901:2:1::0;5886:18;;5879:34;33138:39:0::1;::::0;5818:18:1;33138:39:0::1;5671:248:1::0;35831:170:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;35890:7:::1;:15:::0;;-1:-1:-1;;35890:15:0::1;::::0;;35931:7:::1;::::0;:24:::1;::::0;35952:2:::1;::::0;35931:16:::1;::::0;35943:3:::1;35931:11;:16::i;:::-;:20:::0;::::1;:24::i;:::-;35916:12;:39:::0;35966:27:::1;35988:4;35966:21;:27::i;:::-;35831:170::o:0;18092:86::-;18130:13;18163:7;18156:14;;;;;:::i;19620:268::-;19712:4;19729:129;375:10;19752:7;19761:96;19800:15;19761:96;;;;;;;;;;;;;;;;;375:10;19761:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19761:34:0;;;;;;;;;;;;:38;:96::i;6977:304::-;7029:14;;-1:-1:-1;;;;;7029:14:0;7047:10;7029:28;7021:76;;;;-1:-1:-1;;;7021:76:0;;7559:2:1;7021:76:0;;;7541:21:1;7598:2;7578:18;;;7571:30;7637:34;7617:18;;;7610:62;-1:-1:-1;;;7688:18:1;;;7681:33;7731:19;;7021:76:0;7357:399:1;7021:76:0;7134:9;;7116:15;:27;7108:71;;;;-1:-1:-1;;;7108:71:0;;7963:2:1;7108:71:0;;;7945:21:1;8002:2;7982:18;;;7975:30;8041:33;8021:18;;;8014:61;8092:18;;7108:71:0;7761:355:1;7108:71:0;7224:14;;;7216:6;;7195:44;;-1:-1:-1;;;;;7224:14:0;;;;7216:6;;;;-1:-1:-1;;;;;;;;;;;7195:44:0;;7259:14;;;7250:23;;-1:-1:-1;;;;;;7250:23:0;-1:-1:-1;;;;;7259:14:0;;;7250:23;;;;;;6977:304::o;18583:166::-;18660:4;18677:42;375:10;18701:9;18712:6;18677:9;:42::i;36298:143::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;36388:16:::1;:45:::0;;-1:-1:-1;;;;;;36388:45:0::1;-1:-1:-1::0;;;;;36388:45:0;;;::::1;::::0;;;::::1;::::0;;36298:143::o;32239:564::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;32373:13:::1;:28:::0;;;32412:21:::1;:36:::0;;;32461:13:::1;:28:::0;;;32500:21:::1;:36:::0;;;32549:8:::1;:18:::0;;;32578:16:::1;:26:::0;;;-1:-1:-1;32644:46:0::1;32560:7:::0;32644:32:::1;32389:12:::0;32477;32644:17:::1;:32::i;:46::-;32625:65;;32721:2;32709:8;:14;;32701:39;;;;-1:-1:-1::0;;;32701:39:0::1;;;;;;;:::i;:::-;32756;::::0;;5845:25:1;;;32779:15:0::1;5901:2:1::0;5886:18;;5879:34;32756:39:0::1;::::0;5818:18:1;32756:39:0::1;5671:248:1::0;34797:336:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;34899:17:::1;:32:::0;;;35006:12:::1;::::0;34961:17:::1;::::0;34942:16:::1;::::0;34961:58:::1;::::0;:40:::1;::::0;34919:12;34961:21:::1;:40::i;37875:187::-:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;37974:7:::1;::::0;:18:::1;::::0;37986:5:::1;37974:11;:18::i;:::-;37964:7;:28;37956:55;;;::::0;-1:-1:-1;;;37956:55:0;;8323:2:1;37956:55:0::1;::::0;::::1;8305:21:1::0;8362:2;8342:18;;;8335:30;-1:-1:-1;;;8381:18:1;;;8374:44;8435:18;;37956:55:0::1;8121:338:1::0;37956:55:0::1;38022:22;:32:::0;37875:187::o;38229:186::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38309:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;;;;:31;;-1:-1:-1;;38309:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;38356:51;;8660::1;;;8727:18;;;8720:50;38391:15:0::1;8786:18:1::0;;;8779:34;38356:51:0::1;::::0;8648:2:1;8633:18;38356:51:0::1;8464:355:1::0;33195:366:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;33295:13:::1;:28:::0;;;33334:21:::1;:36:::0;;;33439:8:::1;::::0;33402:13:::1;::::0;-1:-1:-1;;33402:46:0::1;::::0;:32:::1;::::0;33311:12;33402:17:::1;:32::i;33571:347::-:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;33664:8:::1;:18:::0;;;33693:16:::1;:26:::0;;;33777:13:::1;::::0;33759::::1;::::0;-1:-1:-1;;33759:46:0::1;::::0;33675:7;;33759:32:::1;::::0;:13;:17:::1;:32::i;35143:316::-:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;35235:12:::1;:22:::0;;;35309:17:::1;::::0;35287::::1;::::0;35268:16:::1;::::0;35287:58:::1;::::0;35250:7;;35287:40:::1;::::0;:17;:21:::1;:40::i;6743:226::-:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;6824:6:::1;::::0;;;6807:23;;-1:-1:-1;;;;;;6807:23:0;;::::1;-1:-1:-1::0;;;;;6824:6:0;::::1;6807:23;::::0;;;6841:19:::1;::::0;;6883:22:::1;6901:4:::0;6883:15:::1;:22;:::i;:::-;6871:9;:34:::0;6958:1:::1;6942:6:::0;;6921:40:::1;::::0;-1:-1:-1;;;;;6942:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6921:40:0;6958:1;;6921:40:::1;6743:226:::0;:::o;35663:158::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;35727:7:::1;:14:::0;;-1:-1:-1;;35727:14:0::1;;;::::0;;35767:7:::1;::::0;35752:12:::1;:22:::0;35785:28:::1;35727:14:::0;35785:21:::1;:28::i;21618:112::-:0;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21687:27:0::1;21717:5;21687:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;21687:35:0::1;::::0;;21618:112::o;36451:173::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;36530:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;36530:32:0::1;-1:-1:-1::0;;;;36530:32:0;;::::1;;::::0;;36578:38:::1;::::0;::::1;::::0;::::1;::::0;36554:8;1237:14:1;1230:22;1212:41;;1200:2;1185:18;;1072:187;36578:38:0::1;;;;;;;;36451:173:::0;:::o;6297:244::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6386:22:0;::::1;6378:73;;;::::0;-1:-1:-1;;;6378:73:0;;9159:2:1;6378:73:0::1;::::0;::::1;9141:21:1::0;9198:2;9178:18;;;9171:30;9237:34;9217:18;;;9210:62;-1:-1:-1;;;9288:18:1;;;9281:36;9334:19;;6378:73:0::1;8957:402:1::0;6378:73:0::1;6488:6;::::0;;6467:38:::1;::::0;-1:-1:-1;;;;;6467:38:0;;::::1;::::0;6488:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6467:38:0;::::1;6516:6;:17:::0;;-1:-1:-1;;;;;;6516:17:0::1;-1:-1:-1::0;;;;;6516:17:0;;;::::1;::::0;;;::::1;::::0;;6297:244::o;35469:182::-;6054:6;;-1:-1:-1;;;;;6054:6:0;375:10;6054:22;6046:67;;;;-1:-1:-1;;;6046:67:0;;;;;;;:::i;:::-;35560:7:::1;::::0;:17:::1;::::0;35572:4:::1;35560:11;:17::i;:::-;35551:6;:26;35543:56;;;::::0;-1:-1:-1;;;35543:56:0;;9566:2:1;35543:56:0::1;::::0;::::1;9548:21:1::0;9605:2;9585:18;;;9578:30;-1:-1:-1;;;9624:18:1;;;9617:47;9681:18;;35543:56:0::1;9364:341:1::0;35543:56:0::1;35622:12;:21:::0;35469:182::o;2101:131::-;2158:7;2185:39;2189:1;2192;2185:39;;;;;;;;;;;;;;;;;:3;:39::i;1846:245::-;1903:7;1927:1;1932;1927:6;1923:47;;-1:-1:-1;1957:1:0;1950:8;;1923:47;1980:9;1992:5;1996:1;1992;:5;:::i;:::-;1980:17;-1:-1:-1;2025:1:0;2016:5;2020:1;1980:17;2016:5;:::i;:::-;:10;2008:56;;;;-1:-1:-1;;;2008:56:0;;10307:2:1;2008:56:0;;;10289:21:1;10346:2;10326:18;;;10319:30;10385:34;10365:18;;;10358:62;-1:-1:-1;;;10436:18:1;;;10429:31;10477:19;;2008:56:0;10105:397:1;21740:337:0;-1:-1:-1;;;;;21833:19:0;;21825:68;;;;-1:-1:-1;;;21825:68:0;;10709:2:1;21825:68:0;;;10691:21:1;10748:2;10728:18;;;10721:30;10787:34;10767:18;;;10760:62;-1:-1:-1;;;10838:18:1;;;10831:34;10882:19;;21825:68:0;10507:400:1;21825:68:0;-1:-1:-1;;;;;21912:21:0;;21904:68;;;;-1:-1:-1;;;21904:68:0;;11114:2:1;21904:68:0;;;11096:21:1;11153:2;11133:18;;;11126:30;11192:34;11172:18;;;11165:62;-1:-1:-1;;;11243:18:1;;;11236:32;11285:19;;21904:68:0;10912:398:1;21904:68:0;-1:-1:-1;;;;;21985:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22037:32;;1410:25:1;;;22037:32:0;;1383:18:1;22037:32:0;;;;;;;21740:337;;;:::o;22085:1465::-;-1:-1:-1;;;;;22178:18:0;;22170:68;;;;-1:-1:-1;;;22170:68:0;;11517:2:1;22170:68:0;;;11499:21:1;11556:2;11536:18;;;11529:30;11595:34;11575:18;;;11568:62;-1:-1:-1;;;11646:18:1;;;11639:35;11691:19;;22170:68:0;11315:401:1;22170:68:0;-1:-1:-1;;;;;22257:16:0;;22249:64;;;;-1:-1:-1;;;22249:64:0;;11923:2:1;22249:64:0;;;11905:21:1;11962:2;11942:18;;;11935:30;12001:34;11981:18;;;11974:62;-1:-1:-1;;;12052:18:1;;;12045:33;12095:19;;22249:64:0;11721:399:1;22249:64:0;22341:1;22332:6;:10;22324:64;;;;-1:-1:-1;;;22324:64:0;;12327:2:1;22324:64:0;;;12309:21:1;12366:2;12346:18;;;12339:30;12405:34;12385:18;;;12378:62;-1:-1:-1;;;12456:18:1;;;12449:39;12505:19;;22324:64:0;12125:405:1;22324:64:0;-1:-1:-1;;;;;22406:26:0;;;;;;:20;:26;;;;;;;;22405:27;:56;;;;-1:-1:-1;;;;;;22437:24:0;;;;;;:20;:24;;;;;;;;22436:25;22405:56;22401:145;;;22496:12;;22486:6;:22;;22478:56;;;;-1:-1:-1;;;22478:56:0;;12737:2:1;22478:56:0;;;12719:21:1;12776:2;12756:18;;;12749:30;-1:-1:-1;;;12795:18:1;;;12788:51;12856:18;;22478:56:0;12535:345:1;22478:56:0;22558:31;22572:4;22578:2;22582:6;22558:13;:31::i;:::-;22600:27;22618:4;22624:2;22600:17;:27::i;:::-;22640:28;22671:24;22689:4;22671:9;:24::i;:::-;22761;;22803:16;;22640:55;;-1:-1:-1;22737:48:0;;;;-1:-1:-1;;;22803:16:0;;;;22802:17;:42;;;;-1:-1:-1;22823:21:0;;-1:-1:-1;;;22823:21:0;;;;22802:42;:67;;;;-1:-1:-1;22856:13:0;;-1:-1:-1;;;;;22848:21:0;;;22856:13;;22848:21;;22802:67;22798:265;;;22890:23;22886:166;;;22957:24;;22934:47;;23000:36;23015:20;23000:14;:36::i;:::-;23085:13;;-1:-1:-1;;;;;23085:13:0;;;23079:19;;;;23075:178;;23115:9;32055:17;;32039:13;:33;32143:12;;32083:13;32127:28;31996:167;23115:9;23145:22;;;;23141:101;;;23209:17;;23188;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;23141:101:0;-1:-1:-1;;;;;23393:24:0;;23275:12;23393:24;;;:18;:24;;;;;;23290:4;;23393:24;;;:50;;-1:-1:-1;;;;;;23421:22:0;;;;;;:18;:22;;;;;;;;23393:50;23389:98;;;-1:-1:-1;23470:5:0;23389:98;23499:41;23514:4;23520:2;23524:6;23532:7;23499:14;:41::i;:::-;22159:1391;;;22085:1465;;;:::o;1647:191::-;1732:7;1768:12;1760:6;;;;1752:29;;;;-1:-1:-1;;;1752:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1792:9:0;1804:5;1808:1;1804;:5;:::i;:::-;1792:17;1647:191;-1:-1:-1;;;;;1647:191:0:o;1318:178::-;1375:7;;1407:5;1411:1;1407;:5;:::i;:::-;1395:17;;1436:1;1431;:6;;1423:46;;;;-1:-1:-1;;;1423:46:0;;13087:2:1;1423:46:0;;;13069:21:1;13126:2;13106:18;;;13099:30;13165:29;13145:18;;;13138:57;13212:18;;1423:46:0;12885:351:1;30348:163:0;30389:7;30410:15;30427;30446:19;:17;:19::i;:::-;30409:56;;-1:-1:-1;30409:56:0;-1:-1:-1;30483:20:0;30409:56;;30483:11;:20::i;:::-;30476:27;;;;30348:163;:::o;2240:277::-;2325:7;2360:12;2353:5;2345:28;;;;-1:-1:-1;;;2345:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2384:9:0;2396:5;2400:1;2396;:5;:::i;37193:524::-;37293:18;37314:25;37332:6;37314:13;37324:2;37314:9;:13::i;:25::-;-1:-1:-1;;;;;37355:26:0;;;;;;:20;:26;;;;;;37293:46;;-1:-1:-1;37355:26:0;;37354:27;:56;;;;-1:-1:-1;;;;;;37386:24:0;;;;;;:20;:24;;;;;;;;37385:25;37354:56;37350:178;;;37449:22;;37435:10;:36;;37427:89;;;;-1:-1:-1;;;37427:89:0;;;;;;;:::i;:::-;37550:13;;-1:-1:-1;;;;;37542:21:0;;;37550:13;;37542:21;:50;;;;-1:-1:-1;;;;;;37568:24:0;;;;;;:20;:24;;;;;;;;37567:25;37542:50;37538:172;;;37631:22;;37617:10;:36;;37609:89;;;;-1:-1:-1;;;37609:89:0;;;;;;;:::i;:::-;37282:435;37193:524;;;:::o;38425:166::-;-1:-1:-1;;;;;38516:20:0;;;;;;:14;:20;;;;;;;;38515:21;:44;;;;-1:-1:-1;;;;;;38541:18:0;;;;;;:14;:18;;;;;;;;38540:19;38515:44;38507:76;;;;-1:-1:-1;;;38507:76:0;;13852:2:1;38507:76:0;;;13834:21:1;13891:2;13871:18;;;13864:30;-1:-1:-1;;;13910:18:1;;;13903:49;13969:18;;38507:76:0;13650:343:1;23838:841:0;17115:16;:23;;-1:-1:-1;;;;17115:23:0;-1:-1:-1;;;17115:23:0;;;23969:13:::1;::::0;23951::::1;::::0;17115:23;;23951:32:::1;::::0;:13;:17:::1;:32::i;:::-;23928:55;;23994:27;24024:64;24086:1;24024:57;24068:12;24024:39;24049:13;;24024:20;:24;;:39;;;;:::i;:::-;:43:::0;::::1;:57::i;:64::-;23994:94:::0;-1:-1:-1;24099:22:0::1;24124:45;:20:::0;23994:94;24124:24:::1;:45::i;:::-;24099:70;;24180:32;24197:14;24180:16;:32::i;:::-;24283:13;::::0;24245:21:::1;::::0;24283:17;24279:345:::1;;24316:23;24342:54;24394:1;24342:47;24376:12;24342:29;24357:13;;24342:10;:14;;:29;;;;:::i;:54::-;24316:80;;24411:50;24424:19;24445:15;24411:12;:50::i;:::-;24480:73;::::0;;14200:25:1;;;14256:2;14241:18;;14234:34;;;14284:18;;;14277:34;;;24480:73:0::1;::::0;14188:2:1;14173:18;24480:73:0::1;;;;;;;24581:31;:10:::0;24596:15;24581:14:::1;:31::i;:::-;24568:44;;24302:322;24279:345;24634:16;::::0;:37:::1;::::0;-1:-1:-1;;;;;24634:16:0;;::::1;::::0;:37;::::1;;;::::0;24660:10;;24634:16:::1;:37:::0;:16;:37;24660:10;24634:16;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17161:16:0;:24;;-1:-1:-1;;;;17161:24:0;;;-1:-1:-1;;;;23838:841:0:o;25893:922::-;26013:7;26012:8;:27;;;-1:-1:-1;26024:7:0;;;;;;;;:15;;:7;:15;26012:27;26008:52;;;26043:14;31740:1;31724:13;:17;;;31752:13;:17;;;31780:8;:12;31676:124;26043:14;26072:18;26093:29;26118:3;26093:20;26104:8;;26093:6;:10;;:20;;;;:::i;:29::-;26072:50;-1:-1:-1;26142:22:0;:6;26072:50;26142:10;:22::i;:::-;-1:-1:-1;;;;;26181:19:0;;;;;;:11;:19;;;;;;26133:31;;-1:-1:-1;26181:19:0;;:46;;;;-1:-1:-1;;;;;;26205:22:0;;;;;;:11;:22;;;;;;;;26204:23;26181:46;26177:494;;;26244:48;26266:6;26274:9;26285:6;26244:21;:48::i;:::-;26177:494;;;-1:-1:-1;;;;;26324:19:0;;;;;;:11;:19;;;;;;;;26323:20;:46;;;;-1:-1:-1;;;;;;26347:22:0;;;;;;:11;:22;;;;;;;;26323:46;26319:352;;;26386:46;26406:6;26414:9;26425:6;26386:19;:46::i;26319:352::-;-1:-1:-1;;;;;26463:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;26486:22:0;;;;;;:11;:22;;;;;;;;26463:45;26459:212;;;26525:48;26547:6;26555:9;26566:6;26525:21;:48::i;26459:212::-;26615:44;26633:6;26641:9;26652:6;26615:17;:44::i;:::-;26683:14;31740:1;31724:13;:17;;;31752:13;:17;;;31780:8;:12;31676:124;26683:14;26712;;26708:74;;26756:10;;26730:49;;26748:6;;-1:-1:-1;;;;;26756:10:0;26768;26730:17;:49::i;:::-;26792:15;31873:21;;31857:13;:37;31921:21;;31905:13;:37;31964:16;;31953:8;:27;31808:180;26792:15;25995:820;25893:922;;;;:::o;30519:555::-;30616:7;;30652;;30569;;;;;30670:289;30694:9;:16;30690:20;;30670:289;;;30760:7;30736;:21;30744:9;30754:1;30744:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30744:12:0;30736:21;;;;;;;;;;;;;:31;;:66;;;30795:7;30771;:21;30779:9;30789:1;30779:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30779:12:0;30771:21;;;;;;;;;;;;;:31;30736:66;30732:97;;;30812:7;;30821;;30804:25;;;;;;;30519:555;;:::o;30732:97::-;30854:34;30866:7;:21;30874:9;30884:1;30874:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30874:12:0;30866:21;;;;;;;;;;;;;30854:7;;:11;:34::i;:::-;30844:44;;30913:34;30925:7;:21;30933:9;30943:1;30933:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;30933:12:0;30925:21;;;;;;;;;;;;;30913:7;;:11;:34::i;:::-;30903:44;-1:-1:-1;30712:3:0;;;;:::i;:::-;;;;30670:289;;;-1:-1:-1;30995:7:0;;30983;;:20;;:11;:20::i;:::-;30973:7;:30;30969:61;;;31013:7;;31022;;31005:25;;;;;;30519:555;;:::o;30969:61::-;31049:7;;31058;;-1:-1:-1;30519:555:0;-1:-1:-1;30519:555:0:o;1504:135::-;1561:7;1588:43;1592:1;1595;1588:43;;;;;;;;;;;;;;;;;:3;:43::i;24693:666::-;24843:16;;;24857:1;24843:16;;;;;;;;24819:21;;24843:16;;;;;;;;;;-1:-1:-1;24843:16:0;24819:40;;24888:4;24870;24875:1;24870:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24870:23:0;;;-1:-1:-1;;;;;24870:23:0;;;;;24914:15;-1:-1:-1;;;;;24914:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24904:4;24909:1;24904:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24904:32:0;;;-1:-1:-1;;;;;24904:32:0;;;;;24949:62;24966:4;24981:15;24999:11;24949:8;:62::i;:::-;25050:240;;-1:-1:-1;;;25050:240:0;;-1:-1:-1;;;;;25050:15:0;:66;;;;:240;;25131:11;;25157:1;;25201:4;;25228;;25264:15;;25050:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25316:35;25333:11;25346:4;25316:35;;;;;;;:::i;25369:516::-;25517:62;25534:4;25549:15;25567:11;25517:8;:62::i;:::-;25622:15;-1:-1:-1;;;;;25622:31:0;;25662:9;25697:4;25717:11;25743:1;25786;25829:7;5958;5985:6;-1:-1:-1;;;;;5985:6:0;;5921:78;25829:7;25622:255;;;;;;-1:-1:-1;;;;;;25622:255:0;;;-1:-1:-1;;;;;16459:15:1;;;25622:255:0;;;16441:34:1;16491:18;;;16484:34;;;;16534:18;;;16527:34;;;;16577:18;;;16570:34;16641:15;;;16620:19;;;16613:44;25851:15:0;16673:19:1;;;16666:35;16375:19;;25622:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;27963:584::-;28066:15;28083:23;28108;28133:18;28155:19;28166:7;28155:10;:19::i;:::-;-1:-1:-1;;;;;28203:15:0;;;;;;:7;:15;;;;;;28065:109;;-1:-1:-1;28065:109:0;;-1:-1:-1;28065:109:0;-1:-1:-1;28065:109:0;-1:-1:-1;28203:28:0;;28223:7;28203:19;:28::i;:::-;-1:-1:-1;;;;;28185:15:0;;;;;;:7;:15;;;;;;;;:46;;;;28260:7;:15;;;;:28;;28280:7;28260:19;:28::i;:::-;-1:-1:-1;;;;;28242:15:0;;;;;;;:7;:15;;;;;;:46;;;;28320:18;;;;;;;:39;;28343:15;28320:22;:39::i;:::-;-1:-1:-1;;;;;28299:18:0;;;;;;:7;:18;;;;;:60;28370:26;28385:10;28370:14;:26::i;:::-;28429:9;-1:-1:-1;;;;;28412:44:0;28421:6;-1:-1:-1;;;;;28412:44:0;;28440:15;28412:44;;;;1410:25:1;;1398:2;1383:18;;1264:177;28412:44:0;;;;;;;;28471:14;;28467:73;;28494:43;;1410:25:1;;;28519:4:0;;-1:-1:-1;;;;;28494:43:0;;;;;1398:2:1;1383:18;28494:43:0;;;;;;;28467:73;28054:493;;;;27963:584;;;:::o;27359:596::-;27460:15;27477:23;27502;27527:18;27549:19;27560:7;27549:10;:19::i;:::-;-1:-1:-1;;;;;27597:15:0;;;;;;:7;:15;;;;;;27459:109;;-1:-1:-1;27459:109:0;;-1:-1:-1;27459:109:0;-1:-1:-1;27459:109:0;-1:-1:-1;27597:28:0;;27459:109;27597:19;:28::i;:::-;-1:-1:-1;;;;;27579:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;27657:18;;;;;:7;:18;;;;;:39;;27680:15;27657:22;:39::i;:::-;-1:-1:-1;;;;;27636:18:0;;;;;;:7;:18;;;;;;;;:60;;;;27728:7;:18;;;;:39;;27751:15;27728:22;:39::i;28555:655::-;28658:15;28675:23;28700;28725:18;28747:19;28758:7;28747:10;:19::i;:::-;-1:-1:-1;;;;;28795:15:0;;;;;;:7;:15;;;;;;28657:109;;-1:-1:-1;28657:109:0;;-1:-1:-1;28657:109:0;-1:-1:-1;28657:109:0;-1:-1:-1;28795:28:0;;28815:7;28795:19;:28::i;:::-;-1:-1:-1;;;;;28777:15:0;;;;;;:7;:15;;;;;;;;:46;;;;28852:7;:15;;;;:28;;28872:7;28852:19;:28::i;26823:528::-;26927:15;26944:23;26969;26994:18;27016:19;27027:7;27016:10;:19::i;:::-;-1:-1:-1;;;;;27064:15:0;;;;;;:7;:15;;;;;;26926:109;;-1:-1:-1;26926:109:0;;-1:-1:-1;26926:109:0;-1:-1:-1;26926:109:0;-1:-1:-1;27064:28:0;;26926:109;27064:19;:28::i;29369:359::-;29427:7;29436;29445;29454;29480:23;29505:18;29527:20;29539:7;29527:11;:20::i;:::-;29479:68;;;;29559:15;29576:23;29603:44;29615:7;29624:10;29636;:8;:10::i;:::-;29603:11;:44::i;:::-;29558:89;;;;-1:-1:-1;29692:15:0;;-1:-1:-1;29709:10:0;;-1:-1:-1;29369:359:0;;-1:-1:-1;;;;29369:359:0:o;31084:355::-;31147:19;31169:10;:8;:10::i;:::-;31147:32;-1:-1:-1;31190:18:0;31211:27;:10;31147:32;31211:14;:27::i;:::-;31290:4;31274:22;;;;:7;:22;;;;;;31190:48;;-1:-1:-1;31274:38:0;;31190:48;31274:26;:38::i;:::-;31265:4;31249:22;;;;:7;:22;;;;;;;;:63;;;;31327:11;:26;;;;;;31323:108;;;31409:4;31393:22;;;;:7;:22;;;;;;:38;;31420:10;31393:26;:38::i;:::-;31384:4;31368:22;;;;:7;:22;;;;;:63;31323:108;31136:303;;31084:355;:::o;29736:254::-;29795:7;29804;29824:18;29845:30;29867:7;29845:21;:30::i;:::-;29824:51;-1:-1:-1;29886:23:0;29912;:7;29824:51;29912:11;:23::i;:::-;29886:49;29971:10;;-1:-1:-1;29736:254:0;;-1:-1:-1;;;29736:254:0:o;29998:342::-;30098:7;;;30145:24;:7;30157:11;30145;:24::i;:::-;30127:42;-1:-1:-1;30180:18:0;30201:27;:10;30216:11;30201:14;:27::i;:::-;30180:48;-1:-1:-1;30239:23:0;30265;:7;30180:48;30265:11;:23::i;:::-;30307:7;;;;-1:-1:-1;29998:342:0;;-1:-1:-1;;;;;;29998:342:0:o;31449:217::-;31518:7;31553:36;31580:8;;31574:3;:14;;;;:::i;:::-;31553:16;:7;31565:3;31553:11;:16::i;:36::-;31543:46;;31607:51;31654:3;31607:42;31635:13;;31619;;:29;;;;:::i;:::-;31607:7;;:11;:42::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1681:160::-;1746:20;;1802:13;;1795:21;1785:32;;1775:60;;1831:1;1828;1821:12;1775:60;1681:160;;;:::o;1846:315::-;1911:6;1919;1972:2;1960:9;1951:7;1947:23;1943:32;1940:52;;;1988:1;1985;1978:12;1940:52;2027:9;2014:23;2046:31;2071:5;2046:31;:::i;:::-;2096:5;-1:-1:-1;2120:35:1;2151:2;2136:18;;2120:35;:::i;:::-;2110:45;;1846:315;;;;;:::o;2166:247::-;2225:6;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;2418:456::-;2495:6;2503;2511;2564:2;2552:9;2543:7;2539:23;2535:32;2532:52;;;2580:1;2577;2570:12;2532:52;2619:9;2606:23;2638:31;2663:5;2638:31;:::i;:::-;2688:5;-1:-1:-1;2745:2:1;2730:18;;2717:32;2758:33;2717:32;2758:33;:::i;:::-;2418:456;;2810:7;;-1:-1:-1;;;2864:2:1;2849:18;;;;2836:32;;2418:456::o;2879:180::-;2938:6;2991:2;2979:9;2970:7;2966:23;2962:32;2959:52;;;3007:1;3004;2997:12;2959:52;-1:-1:-1;3030:23:1;;2879:180;-1:-1:-1;2879:180:1:o;3064:::-;3120:6;3173:2;3161:9;3152:7;3148:23;3144:32;3141:52;;;3189:1;3186;3179:12;3141:52;3212:26;3228:9;3212:26;:::i;3646:316::-;3723:6;3731;3739;3792:2;3780:9;3771:7;3767:23;3763:32;3760:52;;;3808:1;3805;3798:12;3760:52;-1:-1:-1;;3831:23:1;;;3901:2;3886:18;;3873:32;;-1:-1:-1;3952:2:1;3937:18;;;3924:32;;3646:316;-1:-1:-1;3646:316:1:o;4191:388::-;4259:6;4267;4320:2;4308:9;4299:7;4295:23;4291:32;4288:52;;;4336:1;4333;4326:12;4288:52;4375:9;4362:23;4394:31;4419:5;4394:31;:::i;:::-;4444:5;-1:-1:-1;4501:2:1;4486:18;;4473:32;4514:33;4473:32;4514:33;:::i;:::-;4566:7;4556:17;;;4191:388;;;;;:::o;4584:380::-;4663:1;4659:12;;;;4706;;;4727:61;;4781:4;4773:6;4769:17;4759:27;;4727:61;4834:2;4826:6;4823:14;4803:18;4800:38;4797:161;;4880:10;4875:3;4871:20;4868:1;4861:31;4915:4;4912:1;4905:15;4943:4;4940:1;4933:15;4797:161;;4584:380;;;:::o;4969:356::-;5171:2;5153:21;;;5190:18;;;5183:30;5249:34;5244:2;5229:18;;5222:62;5316:2;5301:18;;4969:356::o;5330:336::-;5532:2;5514:21;;;5571:2;5551:18;;;5544:30;-1:-1:-1;;;5605:2:1;5590:18;;5583:42;5657:2;5642:18;;5330:336::o;6691:127::-;6752:10;6747:3;6743:20;6740:1;6733:31;6783:4;6780:1;6773:15;6807:4;6804:1;6797:15;6823:127;6884:10;6879:3;6875:20;6872:1;6865:31;6915:4;6912:1;6905:15;6939:4;6936:1;6929:15;6955:125;6995:4;7023:1;7020;7017:8;7014:34;;;7028:18;;:::i;:::-;-1:-1:-1;7065:9:1;;6955:125::o;7085:127::-;7146:10;7141:3;7137:20;7134:1;7127:31;7177:4;7174:1;7167:15;7201:4;7198:1;7191:15;7217:135;7256:3;7277:17;;;7274:43;;7297:18;;:::i;:::-;-1:-1:-1;7344:1:1;7333:13;;7217:135::o;8824:128::-;8864:3;8895:1;8891:6;8888:1;8885:13;8882:39;;;8901:18;;:::i;:::-;-1:-1:-1;8937:9:1;;8824:128::o;9710:168::-;9750:7;9816:1;9812;9808:6;9804:14;9801:1;9798:21;9793:1;9786:9;9779:17;9775:45;9772:71;;;9823:18;;:::i;:::-;-1:-1:-1;9863:9:1;;9710:168::o;9883:217::-;9923:1;9949;9939:132;;9993:10;9988:3;9984:20;9981:1;9974:31;10028:4;10025:1;10018:15;10056:4;10053:1;10046:15;9939:132;-1:-1:-1;10085:9:1;;9883:217::o;13241:404::-;13443:2;13425:21;;;13482:2;13462:18;;;13455:30;13521:34;13516:2;13501:18;;13494:62;-1:-1:-1;;;13587:2:1;13572:18;;13565:38;13635:3;13620:19;;13241:404::o;14454:251::-;14524:6;14577:2;14565:9;14556:7;14552:23;14548:32;14545:52;;;14593:1;14590;14583:12;14545:52;14625:9;14619:16;14644:31;14669:5;14644:31;:::i;14710:461::-;14763:3;14801:5;14795:12;14828:6;14823:3;14816:19;14854:4;14883:2;14878:3;14874:12;14867:19;;14920:2;14913:5;14909:14;14941:1;14951:195;14965:6;14962:1;14959:13;14951:195;;;15030:13;;-1:-1:-1;;;;;15026:39:1;15014:52;;15086:12;;;;15121:15;;;;15062:1;14980:9;14951:195;;;-1:-1:-1;15162:3:1;;14710:461;-1:-1:-1;;;;;14710:461:1:o;15176:582::-;15475:6;15464:9;15457:25;15518:6;15513:2;15502:9;15498:18;15491:34;15561:3;15556:2;15545:9;15541:18;15534:31;15438:4;15582:57;15634:3;15623:9;15619:19;15611:6;15582:57;:::i;:::-;-1:-1:-1;;;;;15675:32:1;;;;15670:2;15655:18;;15648:60;-1:-1:-1;15739:3:1;15724:19;15717:35;15574:65;15176:582;-1:-1:-1;;;15176:582:1:o;15763:332::-;15970:6;15959:9;15952:25;16013:2;16008;15997:9;15993:18;15986:30;15933:4;16033:56;16085:2;16074:9;16070:18;16062:6;16033:56;:::i;:::-;16025:64;15763:332;-1:-1:-1;;;;15763:332:1:o;16712:306::-;16800:6;16808;16816;16869:2;16857:9;16848:7;16844:23;16840:32;16837:52;;;16885:1;16882;16875:12;16837:52;16914:9;16908:16;16898:26;;16964:2;16953:9;16949:18;16943:25;16933:35;;17008:2;16997:9;16993:18;16987:25;16977:35;;16712:306;;;;;:::o
Swarm Source
ipfs://f108fca5bb162a9f0ec07a6d638700f74b78993536d38c62c8575e0112188a90
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.