Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 DDC
Holders
98
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,590,466,267.002524822 DDCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DeepDefiCapital
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-01 */ /** DeepDefiCapital.com t.me/DeepDefiCapital https://twitter.com/DeepDefiCapital https://medium.com/@deepdeficapital/deep-defi-capital-634bffd1299c Deep Defi Capital is an alternative investment firm with a key focus in decentralised investments. By operating within the defi space, all investors can partake within the protocol with anonymity, flexibility and accessibility. */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.6.12; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly 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 () internal { 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 geUnlockTime() public view returns (uint256) { return _lockTime; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = now + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(now > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } 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; } 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 Mint(address indexed sender, uint amount0, uint amount1); 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 mint(address to) external returns (uint liquidity); 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; } 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); } 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 DeepDefiCapital is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'DeepDefiCapital'; string private _symbol = 'DDC'; uint8 private _decimals = 9; uint256 private _taxFee = 10; uint256 private _teamFee = 10; uint256 private _previousTaxFee = _taxFee; uint256 private _previousTeamFee = _teamFee; address payable public _PrincipalProtectionWalletAddress; address payable public _YieldFarmingWalletAddress; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwap = false; bool public swapEnabled = true; uint256 private _maxTxAmount = 1000000000000 * 10**9; uint256 private _numOfTokensToExchangeForTeam = 5 * 10**3 * 10**9; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapEnabledUpdated(bool enabled); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (address payable PrincipalProtectionWalletAddress, address payable YieldFarmingWalletAddress) public { _PrincipalProtectionWalletAddress = PrincipalProtectionWalletAddress; _YieldFarmingWalletAddress = YieldFarmingWalletAddress; _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2 for Ethereum network uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function setExcludeFromFee(address account, bool excluded) external onlyOwner() { _isExcludedFromFee[account] = excluded; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } 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 excludeAccount(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(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 removeAllFee() private { if(_taxFee == 0 && _teamFee == 0) return; _previousTaxFee = _taxFee; _previousTeamFee = _teamFee; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _teamFee = _previousTeamFee; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } 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 sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(sender != owner() && recipient != owner()) require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForTeam; if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToTeam(address(this).balance); } } bool takeFee = true; if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){ takeFee = false; } _tokenTransfer(sender,recipient,amount,takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{ address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToTeam(uint256 amount) private { _PrincipalProtectionWalletAddress.transfer(amount.div(2)); _YieldFarmingWalletAddress.transfer(amount.div(2)); } function manualSwap() external onlyOwner() { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualSend() external onlyOwner() { uint256 contractETHBalance = address(this).balance; sendETHToTeam(contractETHBalance); } function setSwapEnabled(bool enabled) external onlyOwner(){ swapEnabled = enabled; } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if(!takeFee) removeAllFee(); 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]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if(!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _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); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); if(_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(teamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); return (rAmount, rTransferAmount, rFee); } 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 _getTaxFee() private view returns(uint256) { return _taxFee; } function _getMaxTxAmount() private view returns(uint256) { return _maxTxAmount; } function _getETHBalance() public view returns(uint256 balance) { return address(this).balance; } function _setTaxFee(uint256 taxFee) external onlyOwner() { require(taxFee >= 1 && taxFee <= 25, 'taxFee should be in 1 - 25'); _taxFee = taxFee; } function _setTeamFee(uint256 teamFee) external onlyOwner() { require(teamFee >= 1 && teamFee <= 25, 'teamFee should be in 1 - 25'); _teamFee = teamFee; } function BridgingSetMaxTx(uint256 maxTxAmount) external onlyOwner() { require(maxTxAmount <= 1000000000000 * 10**9, 'maxTxAmount should be greater than 100000000000000e9'); _maxTxAmount = maxTxAmount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"PrincipalProtectionWalletAddress","type":"address"},{"internalType":"address payable","name":"YieldFarmingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"BridgingSetMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_PrincipalProtectionWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_YieldFarmingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getETHBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"teamFee","type":"uint256"}],"name":"_setTeamFee","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":[{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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
60c0604052683635c9adc5dea00000600955600954600019816200001f57fe5b0660001903600a556040518060400160405280600f81526020017f44656570446566694361706974616c0000000000000000000000000000000000815250600c908051906020019062000074929190620006d7565b506040518060400160405280600381526020017f4444430000000000000000000000000000000000000000000000000000000000815250600d9080519060200190620000c2929190620006d7565b506009600e60006101000a81548160ff021916908360ff160217905550600a600f55600a601055600f5460115560105460125560006014806101000a81548160ff0219169083151502179055506001601460156101000a81548160ff021916908315150217905550683635c9adc5dea0000060155565048c273950006016553480156200014e57600080fd5b50604051620057a2380380620057a2833981810160405260408110156200017457600080fd5b8101908080519060200190929190805190602001909291905050506000620001a1620006a660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5460036000620002d8620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037657600080fd5b505afa1580156200038b573d6000803e3d6000fd5b505050506040513d6020811015620003a257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041657600080fd5b505afa1580156200042b573d6000803e3d6000fd5b505050506040513d60208110156200044257600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620004bd57600080fd5b505af1158015620004d2573d6000803e3d6000fd5b505050506040513d6020811015620004e957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506001600660006200057d620006ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000636620006a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040518082815260200191505060405180910390a35050506200077d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071a57805160ff19168380011785556200074b565b828001600101855582156200074b579182015b828111156200074a5782518255916020019190600101906200072d565b5b5090506200075a91906200075e565b5090565b5b80821115620007795760008160009055506001016200075f565b5090565b60805160601c60a05160601c614fe7620007bb6000398061144d5280613250525080610e3452806136aa528061379652806137bd5250614fe76000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063cba0e996116100ab578063f2cc0c181161006f578063f2cc0c1814610c33578063f2fde38b14610c84578063f429389014610cd5578063f815a84214610cec578063f84354f114610d1757610230565b8063cba0e99614610a8e578063dd46706414610af5578063dd62ed3e14610b30578063e01af92c14610bb5578063e9673a8114610bf257610230565b8063a457c2d7116100f2578063a457c2d71461090d578063a69df4b51461097e578063a9059cbb14610995578063af9549e014610a06578063b6c5232414610a6357610230565b8063715018a6146107ea5780637b4ee87f146108015780638da5cb5b1461083c57806395d89b411461087d57610230565b806339509351116101b157806351bc3c851161017557806351bc3c851461069f5780635342acb4146106b65780635880b8731461071d5780636ddd17131461075857806370a082311461078557610230565b806339509351146105165780633bd5d173146105875780633c1ae633146105c25780634549b0391461060357806349bd5a5e1461065e57610230565b806318160ddd116101f857806318160ddd146103a257806323b872dd146103cd578063286671621461045e5780632d83811914610499578063313ce567146104e857610230565b806306fdde0314610235578063095ea7b3146102c557806313114a9d146103365780631694505e1461036157610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610d68565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028a57808201518184015260208101905061026f565b50505050905090810190601f1680156102b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d157600080fd5b5061031e600480360360408110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0a565b60405180821515815260200191505060405180910390f35b34801561034257600080fd5b5061034b610e28565b6040518082815260200191505060405180910390f35b34801561036d57600080fd5b50610376610e32565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ae57600080fd5b506103b7610e56565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610446600480360360608110156103f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e60565b60405180821515815260200191505060405180910390f35b34801561046a57600080fd5b506104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610f39565b005b3480156104a557600080fd5b506104d2600480360360208110156104bc57600080fd5b810190808035906020019092919050505061108f565b6040518082815260200191505060405180910390f35b3480156104f457600080fd5b506104fd611113565b604051808260ff16815260200191505060405180910390f35b34801561052257600080fd5b5061056f6004803603604081101561053957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061112a565b60405180821515815260200191505060405180910390f35b34801561059357600080fd5b506105c0600480360360208110156105aa57600080fd5b81019080803590602001909291905050506111dd565b005b3480156105ce57600080fd5b506105d761136e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060f57600080fd5b506106486004803603604081101561062657600080fd5b8101908080359060200190929190803515159060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b5061067361144b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ab57600080fd5b506106b461146f565b005b3480156106c257600080fd5b50610705600480360360208110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611550565b60405180821515815260200191505060405180910390f35b34801561072957600080fd5b506107566004803603602081101561074057600080fd5b81019080803590602001909291905050506115a6565b005b34801561076457600080fd5b5061076d6116fc565b60405180821515815260200191505060405180910390f35b34801561079157600080fd5b506107d4600480360360208110156107a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170f565b6040518082815260200191505060405180910390f35b3480156107f657600080fd5b506107ff6117fa565b005b34801561080d57600080fd5b5061083a6004803603602081101561082457600080fd5b8101908080359060200190929190505050611980565b005b34801561084857600080fd5b50610851611ab4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088957600080fd5b50610892611add565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d25780820151818401526020810190506108b7565b50505050905090810190601f1680156108ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561091957600080fd5b506109666004803603604081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7f565b60405180821515815260200191505060405180910390f35b34801561098a57600080fd5b50610993611c4c565b005b3480156109a157600080fd5b506109ee600480360360408110156109b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e69565b60405180821515815260200191505060405180910390f35b348015610a1257600080fd5b50610a6160048036036040811015610a2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e87565b005b348015610a6f57600080fd5b50610a78611faa565b6040518082815260200191505060405180910390f35b348015610a9a57600080fd5b50610add60048036036020811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb4565b60405180821515815260200191505060405180910390f35b348015610b0157600080fd5b50610b2e60048036036020811015610b1857600080fd5b810190808035906020019092919050505061200a565b005b348015610b3c57600080fd5b50610b9f60048036036040811015610b5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121fb565b6040518082815260200191505060405180910390f35b348015610bc157600080fd5b50610bf060048036036020811015610bd857600080fd5b81019080803515159060200190929190505050612282565b005b348015610bfe57600080fd5b50610c07612367565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3f57600080fd5b50610c8260048036036020811015610c5657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238d565b005b348015610c9057600080fd5b50610cd360048036036020811015610ca757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612740565b005b348015610ce157600080fd5b50610cea61294b565b005b348015610cf857600080fd5b50610d01612a24565b6040518082815260200191505060405180910390f35b348015610d2357600080fd5b50610d6660048036036020811015610d3a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a2c565b005b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e005780601f10610dd557610100808354040283529160200191610e00565b820191906000526020600020905b815481529060010190602001808311610de357829003601f168201915b5050505050905090565b6000610e1e610e17612db6565b8484612dbe565b6001905092915050565b6000600b54905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600954905090565b6000610e6d848484612fb5565b610f2e84610e79612db6565b610f2985604051806060016040528060288152602001614e8260289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610edf612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461338c9092919063ffffffff16565b612dbe565b600190509392505050565b610f41612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018110158015611013575060198111155b611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f7465616d4665652073686f756c6420626520696e2031202d203235000000000081525060200191505060405180910390fd5b8060108190555050565b6000600a548211156110ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614d93602a913960400191505060405180910390fd5b60006110f661344c565b905061110b818461347790919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b60006111d3611137612db6565b846111ce8560056000611148612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b612dbe565b6001905092915050565b60006111e7612db6565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614f3e602c913960400191505060405180910390fd5b600061129783613549565b505050505090506112f081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134881600a546135b090919063ffffffff16565b600a8190555061136383600b546134c190919063ffffffff16565b600b81905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060095483111561140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b8161142e57600061141e84613549565b5050505050905080915050611445565b600061143984613549565b50505050915050809150505b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611477612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611537576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006115423061170f565b905061154d816135fa565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6115ae612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018110158015611680575060198111155b6116f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2031202d20323500000000000081525060200191505060405180910390fd5b80600f8190555050565b601460159054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117aa57600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506117f5565b6117f2600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108f565b90505b919050565b611802612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611988612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b683635c9adc5dea00000811115611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180614e056034913960400191505060405180910390fd5b8060158190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b755780601f10611b4a57610100808354040283529160200191611b75565b820191906000526020600020905b815481529060010190602001808311611b5857829003601f168201915b5050505050905090565b6000611c42611b8c612db6565b84611c3d85604051806060016040528060258152602001614f8d6025913960056000611bb6612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461338c9092919063ffffffff16565b612dbe565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614f6a6023913960400191505060405180910390fd5b6002544211611d69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611e7d611e76612db6565b8484612fb5565b6001905092915050565b611e8f612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b612012612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61228a612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461234a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612395612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f1c6022913960400191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156126825761263e600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108f565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612748612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561288e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614dbd6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612953612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000479050612a21816138dc565b50565b600047905090565b612a34612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600880549050811015612db2578173ffffffffffffffffffffffffffffffffffffffff1660088281548110612be757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612da557600860016008805490500381548110612c4357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110612c7b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480612d6b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612db2565b8080600101915050612bb6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614ef86024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614de36022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561303b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614ed36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d706023913960400191505060405180910390fd5b6000811161311a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614eaa6029913960400191505060405180910390fd5b613122611ab4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131905750613160611ab4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156131f1576015548111156131f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e396028913960400191505060405180910390fd5b5b60006131fc3061170f565b9050601554811061320d5760155490505b6000601654821015905060148054906101000a900460ff1615801561323e5750601460159054906101000a900460ff165b80156132475750805b801561329f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156132c7576132ad826135fa565b600047905060008111156132c5576132c4476138dc565b5b505b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061336e5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561337857600090505b613384868686846139d7565b505050505050565b6000838311158290613439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133fe5780820151818401526020810190506133e3565b50505050905090810190601f16801561342b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000613459613ce8565b91509150613470818361347790919063ffffffff16565b9250505090565b60006134b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613f79565b905092915050565b60008082840190508381101561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006135668a600f5460105461403f565b925092509250600061357661344c565b905060008060006135888e87866140d5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006135f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061338c565b905092915050565b60016014806101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561362e57600080fd5b5060405190808252806020026020018201604052801561365d5781602001602082028036833780820191505090505b509050308160008151811061366e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561370e57600080fd5b505afa158015613722573d6000803e3d6000fd5b505050506040513d602081101561373857600080fd5b81019080805190602001909291905050508160018151811061375657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137bb307f000000000000000000000000000000000000000000000000000000000000000084612dbe565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561387d578082015181840152602081019050613862565b505050509050019650505050505050600060405180830381600087803b1580156138a657600080fd5b505af11580156138ba573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61392c60028461347790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613957573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6139a860028461347790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156139d3573d6000803e3d6000fd5b5050565b806139e5576139e4614133565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613a885750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613a9d57613a98848484614176565b613cd4565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613b405750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613b5557613b508484846143d6565b613cd3565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613bf95750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c0e57613c09848484614636565b613cd2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613cb05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613cc557613cc0848484614801565b613cd1565b613cd0848484614636565b5b5b5b5b80613ce257613ce1614af6565b5b50505050565b6000806000600a5490506000600954905060005b600880549050811015613f3c57826003600060088481548110613d1b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613e025750816004600060088481548110613d9a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613e1957600a5460095494509450505050613f75565b613ea26003600060088481548110613e2d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846135b090919063ffffffff16565b9250613f2d6004600060088481548110613eb857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836135b090919063ffffffff16565b91508080600101915050613cfc565b50613f54600954600a5461347790919063ffffffff16565b821015613f6c57600a54600954935093505050613f75565b81819350935050505b9091565b60008083118290614025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613fea578082015181840152602081019050613fcf565b50505050905090810190601f1680156140175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161403157fe5b049050809150509392505050565b60008060008061406b606461405d888a614b0a90919063ffffffff16565b61347790919063ffffffff16565b905060006140956064614087888b614b0a90919063ffffffff16565b61347790919063ffffffff16565b905060006140be826140b0858c6135b090919063ffffffff16565b6135b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806140ee8588614b0a90919063ffffffff16565b905060006141058688614b0a90919063ffffffff16565b9050600061411c82846135b090919063ffffffff16565b905082818395509550955050505093509350939050565b6000600f5414801561414757506000601054145b1561415157614174565b600f546011819055506010546012819055506000600f8190555060006010819055505b565b60008060008060008061418887613549565b9550955095509550955095506141e687600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061427b86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061431085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061435c81614b90565b6143668483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806143e887613549565b95509550955095509550955061444686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506144db83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061457085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145bc81614b90565b6145c68483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061464887613549565b9550955095509550955095506146a686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061473b85600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061478781614b90565b6147918483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061481387613549565b95509550955095509550955061487187600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061490686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061499b83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a3085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a7c81614b90565b614a868483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b601154600f81905550601254601081905550565b600080831415614b1d5760009050614b8a565b6000828402905082848281614b2e57fe5b0414614b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614e616021913960400191505060405180910390fd5b809150505b92915050565b6000614b9a61344c565b90506000614bb18284614b0a90919063ffffffff16565b9050614c0581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614d3057614cec83600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b614d4a82600a546135b090919063ffffffff16565b600a81905550614d6581600b546134c190919063ffffffff16565b600b81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e2031303030303030303030303030303065395472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bbbb81751275aee1ba9e9ddc0b4ca463bac3d540da05495e6832d216aa7e5e7e64736f6c634300060c0033000000000000000000000000a05a9521caffc11e15cd016b76b16f41cecde70f000000000000000000000000cef3d3f33951dfc90f87dd953a66f3b8fc08f1d3
Deployed Bytecode
0x6080604052600436106102295760003560e01c8063715018a611610123578063cba0e996116100ab578063f2cc0c181161006f578063f2cc0c1814610c33578063f2fde38b14610c84578063f429389014610cd5578063f815a84214610cec578063f84354f114610d1757610230565b8063cba0e99614610a8e578063dd46706414610af5578063dd62ed3e14610b30578063e01af92c14610bb5578063e9673a8114610bf257610230565b8063a457c2d7116100f2578063a457c2d71461090d578063a69df4b51461097e578063a9059cbb14610995578063af9549e014610a06578063b6c5232414610a6357610230565b8063715018a6146107ea5780637b4ee87f146108015780638da5cb5b1461083c57806395d89b411461087d57610230565b806339509351116101b157806351bc3c851161017557806351bc3c851461069f5780635342acb4146106b65780635880b8731461071d5780636ddd17131461075857806370a082311461078557610230565b806339509351146105165780633bd5d173146105875780633c1ae633146105c25780634549b0391461060357806349bd5a5e1461065e57610230565b806318160ddd116101f857806318160ddd146103a257806323b872dd146103cd578063286671621461045e5780632d83811914610499578063313ce567146104e857610230565b806306fdde0314610235578063095ea7b3146102c557806313114a9d146103365780631694505e1461036157610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610d68565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028a57808201518184015260208101905061026f565b50505050905090810190601f1680156102b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102d157600080fd5b5061031e600480360360408110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0a565b60405180821515815260200191505060405180910390f35b34801561034257600080fd5b5061034b610e28565b6040518082815260200191505060405180910390f35b34801561036d57600080fd5b50610376610e32565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ae57600080fd5b506103b7610e56565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610446600480360360608110156103f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e60565b60405180821515815260200191505060405180910390f35b34801561046a57600080fd5b506104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610f39565b005b3480156104a557600080fd5b506104d2600480360360208110156104bc57600080fd5b810190808035906020019092919050505061108f565b6040518082815260200191505060405180910390f35b3480156104f457600080fd5b506104fd611113565b604051808260ff16815260200191505060405180910390f35b34801561052257600080fd5b5061056f6004803603604081101561053957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061112a565b60405180821515815260200191505060405180910390f35b34801561059357600080fd5b506105c0600480360360208110156105aa57600080fd5b81019080803590602001909291905050506111dd565b005b3480156105ce57600080fd5b506105d761136e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060f57600080fd5b506106486004803603604081101561062657600080fd5b8101908080359060200190929190803515159060200190929190505050611394565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b5061067361144b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ab57600080fd5b506106b461146f565b005b3480156106c257600080fd5b50610705600480360360208110156106d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611550565b60405180821515815260200191505060405180910390f35b34801561072957600080fd5b506107566004803603602081101561074057600080fd5b81019080803590602001909291905050506115a6565b005b34801561076457600080fd5b5061076d6116fc565b60405180821515815260200191505060405180910390f35b34801561079157600080fd5b506107d4600480360360208110156107a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061170f565b6040518082815260200191505060405180910390f35b3480156107f657600080fd5b506107ff6117fa565b005b34801561080d57600080fd5b5061083a6004803603602081101561082457600080fd5b8101908080359060200190929190505050611980565b005b34801561084857600080fd5b50610851611ab4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088957600080fd5b50610892611add565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d25780820151818401526020810190506108b7565b50505050905090810190601f1680156108ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561091957600080fd5b506109666004803603604081101561093057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b7f565b60405180821515815260200191505060405180910390f35b34801561098a57600080fd5b50610993611c4c565b005b3480156109a157600080fd5b506109ee600480360360408110156109b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e69565b60405180821515815260200191505060405180910390f35b348015610a1257600080fd5b50610a6160048036036040811015610a2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e87565b005b348015610a6f57600080fd5b50610a78611faa565b6040518082815260200191505060405180910390f35b348015610a9a57600080fd5b50610add60048036036020811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb4565b60405180821515815260200191505060405180910390f35b348015610b0157600080fd5b50610b2e60048036036020811015610b1857600080fd5b810190808035906020019092919050505061200a565b005b348015610b3c57600080fd5b50610b9f60048036036040811015610b5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121fb565b6040518082815260200191505060405180910390f35b348015610bc157600080fd5b50610bf060048036036020811015610bd857600080fd5b81019080803515159060200190929190505050612282565b005b348015610bfe57600080fd5b50610c07612367565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3f57600080fd5b50610c8260048036036020811015610c5657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061238d565b005b348015610c9057600080fd5b50610cd360048036036020811015610ca757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612740565b005b348015610ce157600080fd5b50610cea61294b565b005b348015610cf857600080fd5b50610d01612a24565b6040518082815260200191505060405180910390f35b348015610d2357600080fd5b50610d6660048036036020811015610d3a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a2c565b005b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e005780601f10610dd557610100808354040283529160200191610e00565b820191906000526020600020905b815481529060010190602001808311610de357829003601f168201915b5050505050905090565b6000610e1e610e17612db6565b8484612dbe565b6001905092915050565b6000600b54905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600954905090565b6000610e6d848484612fb5565b610f2e84610e79612db6565b610f2985604051806060016040528060288152602001614e8260289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610edf612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461338c9092919063ffffffff16565b612dbe565b600190509392505050565b610f41612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018110158015611013575060198111155b611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f7465616d4665652073686f756c6420626520696e2031202d203235000000000081525060200191505060405180910390fd5b8060108190555050565b6000600a548211156110ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614d93602a913960400191505060405180910390fd5b60006110f661344c565b905061110b818461347790919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b60006111d3611137612db6565b846111ce8560056000611148612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b612dbe565b6001905092915050565b60006111e7612db6565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614f3e602c913960400191505060405180910390fd5b600061129783613549565b505050505090506112f081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061134881600a546135b090919063ffffffff16565b600a8190555061136383600b546134c190919063ffffffff16565b600b81905550505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060095483111561140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b8161142e57600061141e84613549565b5050505050905080915050611445565b600061143984613549565b50505050915050809150505b92915050565b7f000000000000000000000000bcf57f79b92dc12ed555452888160a216e535d6e81565b611477612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611537576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006115423061170f565b905061154d816135fa565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6115ae612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60018110158015611680575060198111155b6116f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2031202d20323500000000000081525060200191505060405180910390fd5b80600f8190555050565b601460159054906101000a900460ff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117aa57600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506117f5565b6117f2600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108f565b90505b919050565b611802612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611988612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b683635c9adc5dea00000811115611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180614e056034913960400191505060405180910390fd5b8060158190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b755780601f10611b4a57610100808354040283529160200191611b75565b820191906000526020600020905b815481529060010190602001808311611b5857829003601f168201915b5050505050905090565b6000611c42611b8c612db6565b84611c3d85604051806060016040528060258152602001614f8d6025913960056000611bb6612db6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461338c9092919063ffffffff16565b612dbe565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614f6a6023913960400191505060405180910390fd5b6002544211611d69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f6e7472616374206973206c6f636b656420756e74696c203720646179730081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611e7d611e76612db6565b8484612fb5565b6001905092915050565b611e8f612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b612012612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61228a612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461234a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460156101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612395612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614f1c6022913960400191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156126825761263e600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461108f565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612748612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561288e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614dbd6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612953612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000479050612a21816138dc565b50565b600047905090565b612a34612db6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600880549050811015612db2578173ffffffffffffffffffffffffffffffffffffffff1660088281548110612be757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612da557600860016008805490500381548110612c4357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110612c7b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008805480612d6b57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612db2565b8080600101915050612bb6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614ef86024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614de36022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561303b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614ed36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d706023913960400191505060405180910390fd5b6000811161311a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614eaa6029913960400191505060405180910390fd5b613122611ab4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156131905750613160611ab4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156131f1576015548111156131f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e396028913960400191505060405180910390fd5b5b60006131fc3061170f565b9050601554811061320d5760155490505b6000601654821015905060148054906101000a900460ff1615801561323e5750601460159054906101000a900460ff165b80156132475750805b801561329f57507f000000000000000000000000bcf57f79b92dc12ed555452888160a216e535d6e73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156132c7576132ad826135fa565b600047905060008111156132c5576132c4476138dc565b5b505b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061336e5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561337857600090505b613384868686846139d7565b505050505050565b6000838311158290613439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133fe5780820151818401526020810190506133e3565b50505050905090810190601f16801561342b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000613459613ce8565b91509150613470818361347790919063ffffffff16565b9250505090565b60006134b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613f79565b905092915050565b60008082840190508381101561353f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006135668a600f5460105461403f565b925092509250600061357661344c565b905060008060006135888e87866140d5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006135f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061338c565b905092915050565b60016014806101000a81548160ff0219169083151502179055506060600267ffffffffffffffff8111801561362e57600080fd5b5060405190808252806020026020018201604052801561365d5781602001602082028036833780820191505090505b509050308160008151811061366e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561370e57600080fd5b505afa158015613722573d6000803e3d6000fd5b505050506040513d602081101561373857600080fd5b81019080805190602001909291905050508160018151811061375657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506137bb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612dbe565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561387d578082015181840152602081019050613862565b505050509050019650505050505050600060405180830381600087803b1580156138a657600080fd5b505af11580156138ba573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61392c60028461347790919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613957573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6139a860028461347790919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156139d3573d6000803e3d6000fd5b5050565b806139e5576139e4614133565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613a885750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613a9d57613a98848484614176565b613cd4565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613b405750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613b5557613b508484846143d6565b613cd3565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613bf95750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c0e57613c09848484614636565b613cd2565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613cb05750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613cc557613cc0848484614801565b613cd1565b613cd0848484614636565b5b5b5b5b80613ce257613ce1614af6565b5b50505050565b6000806000600a5490506000600954905060005b600880549050811015613f3c57826003600060088481548110613d1b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613e025750816004600060088481548110613d9a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613e1957600a5460095494509450505050613f75565b613ea26003600060088481548110613e2d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846135b090919063ffffffff16565b9250613f2d6004600060088481548110613eb857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836135b090919063ffffffff16565b91508080600101915050613cfc565b50613f54600954600a5461347790919063ffffffff16565b821015613f6c57600a54600954935093505050613f75565b81819350935050505b9091565b60008083118290614025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613fea578082015181840152602081019050613fcf565b50505050905090810190601f1680156140175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161403157fe5b049050809150509392505050565b60008060008061406b606461405d888a614b0a90919063ffffffff16565b61347790919063ffffffff16565b905060006140956064614087888b614b0a90919063ffffffff16565b61347790919063ffffffff16565b905060006140be826140b0858c6135b090919063ffffffff16565b6135b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806140ee8588614b0a90919063ffffffff16565b905060006141058688614b0a90919063ffffffff16565b9050600061411c82846135b090919063ffffffff16565b905082818395509550955050505093509350939050565b6000600f5414801561414757506000601054145b1561415157614174565b600f546011819055506010546012819055506000600f8190555060006010819055505b565b60008060008060008061418887613549565b9550955095509550955095506141e687600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061427b86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061431085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061435c81614b90565b6143668483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806143e887613549565b95509550955095509550955061444686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506144db83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061457085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145bc81614b90565b6145c68483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061464887613549565b9550955095509550955095506146a686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061473b85600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061478781614b90565b6147918483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061481387613549565b95509550955095509550955061487187600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061490686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135b090919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061499b83600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a3085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614a7c81614b90565b614a868483614d35565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b601154600f81905550601254601081905550565b600080831415614b1d5760009050614b8a565b6000828402905082848281614b2e57fe5b0414614b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614e616021913960400191505060405180910390fd5b809150505b92915050565b6000614b9a61344c565b90506000614bb18284614b0a90919063ffffffff16565b9050614c0581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614d3057614cec83600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134c190919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b614d4a82600a546135b090919063ffffffff16565b600a81905550614d6581600b546134c190919063ffffffff16565b600b81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785478416d6f756e742073686f756c642062652067726561746572207468616e2031303030303030303030303030303065395472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bbbb81751275aee1ba9e9ddc0b4ca463bac3d540da05495e6832d216aa7e5e7e64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a05a9521caffc11e15cd016b76b16f41cecde70f000000000000000000000000cef3d3f33951dfc90f87dd953a66f3b8fc08f1d3
-----Decoded View---------------
Arg [0] : PrincipalProtectionWalletAddress (address): 0xA05A9521CAFfC11e15CD016B76b16F41CECde70F
Arg [1] : YieldFarmingWalletAddress (address): 0xceF3d3F33951dFC90f87Dd953a66f3B8fC08f1d3
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000a05a9521caffc11e15cd016b76b16f41cecde70f
Arg [1] : 000000000000000000000000cef3d3f33951dfc90f87dd953a66f3b8fc08f1d3
Deployed Bytecode Sourcemap
17595:17839:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20218:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21222:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22570:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18745:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20531:103;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21407:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;34980:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23578:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20428:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21748:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22677:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18616:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23094:472;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18807:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28053:168;;;;;;;;;;;;;:::i;:::-;;25269:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;34787:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18888:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20646:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7620:160;;;;;;;;;;;;;:::i;:::-;;35180:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7359:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20321:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21990:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8569:313;;;;;;;;;;;;;:::i;:::-;;20868:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22413:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8074:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22283:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8255:234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21059:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28413:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18683:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23859:475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7802:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28233:168;;;;;;;;;;;;;:::i;:::-;;34657:118;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24346:522;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20218:91;20255:13;20292:5;20285:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20218:91;:::o;21222:173::-;21297:4;21318:39;21327:12;:10;:12::i;:::-;21341:7;21350:6;21318:8;:39::i;:::-;21379:4;21372:11;;21222:173;;;;:::o;22570:95::-;22612:7;22643:10;;22636:17;;22570:95;:::o;18745:51::-;;;:::o;20531:103::-;20584:7;20615;;20608:14;;20531:103;:::o;21407:329::-;21505:4;21526:36;21536:6;21544:9;21555:6;21526:9;:36::i;:::-;21577:121;21586:6;21594:12;:10;:12::i;:::-;21608:89;21646:6;21608:89;;;;;;;;;;;;;;;;;:11;:19;21620:6;21608:19;;;;;;;;;;;;;;;:33;21628:12;:10;:12::i;:::-;21608:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21577:8;:121::i;:::-;21720:4;21713:11;;21407:329;;;;;:::o;34980:188::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35073:1:::1;35062:7;:12;;:29;;;;;35089:2;35078:7;:13;;35062:29;35054:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;35149:7;35138:8;:18;;;;34980:188:::0;:::o;23578:269::-;23644:7;23687;;23676;:18;;23668:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23756:19;23779:10;:8;:10::i;:::-;23756:33;;23811:24;23823:11;23811:7;:11;;:24;;;;:::i;:::-;23804:31;;;23578:269;;;:::o;20428:91::-;20469:5;20498:9;;;;;;;;;;;20491:16;;20428:91;:::o;21748:230::-;21836:4;21857:83;21866:12;:10;:12::i;:::-;21880:7;21889:50;21928:10;21889:11;:25;21901:12;:10;:12::i;:::-;21889:25;;;;;;;;;;;;;;;:34;21915:7;21889:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21857:8;:83::i;:::-;21962:4;21955:11;;21748:230;;;;:::o;22677:405::-;22733:14;22750:12;:10;:12::i;:::-;22733:29;;22786:11;:19;22798:6;22786:19;;;;;;;;;;;;;;;;;;;;;;;;;22785:20;22777:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22870:15;22894:19;22905:7;22894:10;:19::i;:::-;22869:44;;;;;;;22946:28;22966:7;22946;:15;22954:6;22946:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22928:7;:15;22936:6;22928:15;;;;;;;;;;;;;;;:46;;;;22999:20;23011:7;22999;;:11;;:20;;;;:::i;:::-;22989:7;:30;;;;23047:23;23062:7;23047:10;;:14;;:23;;;;:::i;:::-;23034:10;:36;;;;22677:405;;;:::o;18616:56::-;;;;;;;;;;;;;:::o;23094:472::-;23184:7;23227;;23216;:18;;23208:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23290:17;23285:270;;23329:15;23353:19;23364:7;23353:10;:19::i;:::-;23328:44;;;;;;;23398:7;23391:14;;;;;23285:270;23448:23;23479:19;23490:7;23479:10;:19::i;:::-;23446:52;;;;;;;23524:15;23517:22;;;23094:472;;;;;:::o;18807:38::-;;;:::o;28053:168::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28111:23:::1;28137:24;28155:4;28137:9;:24::i;:::-;28111:50;;28176:33;28193:15;28176:16;:33::i;:::-;7586:1;28053:168::o:0;25269:131::-;25333:4;25361:18;:27;25380:7;25361:27;;;;;;;;;;;;;;;;;;;;;;;;;25354:34;;25269:131;;;:::o;34787:181::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34877:1:::1;34867:6;:11;;:27;;;;;34892:2;34882:6;:12;;34867:27;34859:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;34950:6;34940:7;:16;;;;34787:181:::0;:::o;18888:30::-;;;;;;;;;;;;;:::o;20646:210::-;20712:7;20740:11;:20;20752:7;20740:20;;;;;;;;;;;;;;;;;;;;;;;;;20736:49;;;20769:7;:16;20777:7;20769:16;;;;;;;;;;;;;;;;20762:23;;;;20736:49;20807:37;20827:7;:16;20835:7;20827:16;;;;;;;;;;;;;;;;20807:19;:37::i;:::-;20800:44;;20646:210;;;;:::o;7620:160::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7731:1:::1;7694:40;;7715:6;::::0;::::1;;;;;;;;7694:40;;;;;;;;;;;;7766:1;7749:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7620:160::o:0;35180:237::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35286:21:::1;35271:11;:36;;35263:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35394:11;35379:12;:26;;;;35180:237:::0;:::o;7359:87::-;7397:7;7428:6;;;;;;;;;;;7421:13;;7359:87;:::o;20321:95::-;20360:13;20397:7;20390:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20321:95;:::o;21990:281::-;22083:4;22104:129;22113:12;:10;:12::i;:::-;22127:7;22136:96;22175:15;22136:96;;;;;;;;;;;;;;;;;:11;:25;22148:12;:10;:12::i;:::-;22136:25;;;;;;;;;;;;;;;:34;22162:7;22136:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;22104:8;:129::i;:::-;22255:4;22248:11;;21990:281;;;;:::o;8569:313::-;8643:10;8625:28;;:14;;;;;;;;;;;:28;;;8617:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8722:9;;8716:3;:15;8708:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8817:14;;;;;;;;;;;8788:44;;8809:6;;;;;;;;;;8788:44;;;;;;;;;;;;8856:14;;;;;;;;;;;8847:6;;:23;;;;;;;;;;;;;;;;;;8569:313::o;20868:179::-;20946:4;20967:42;20977:12;:10;:12::i;:::-;20991:9;21002:6;20967:9;:42::i;:::-;21031:4;21024:11;;20868:179;;;;:::o;22413:145::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22538:8:::1;22508:18;:27;22527:7;22508:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22413:145:::0;;:::o;8074:97::-;8119:7;8150:9;;8143:16;;8074:97;:::o;22283:118::-;22341:4;22369:11;:20;22381:7;22369:20;;;;;;;;;;;;;;;;;;;;;;;;;22362:27;;22283:118;;;:::o;8255:234::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8340:6:::1;::::0;::::1;;;;;;;;8323:14;;:23;;;;;;;;;;;;;;;;;;8378:1;8361:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8413:4;8407:3;:10;8395:9;:22;;;;8474:1;8437:40;;8458:6;::::0;::::1;;;;;;;;8437:40;;;;;;;;;;;;8255:234:::0;:::o;21059:151::-;21140:7;21171:11;:18;21183:5;21171:18;;;;;;;;;;;;;;;:27;21190:7;21171:27;;;;;;;;;;;;;;;;21164:34;;21059:151;;;;:::o;28413:106::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28500:7:::1;28486:11;;:21;;;;;;;;;;;;;;;;;;28413:106:::0;:::o;18683:49::-;;;;;;;;;;;;;:::o;23859:475::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23955:42:::1;23944:53;;:7;:53;;;;23936:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24060:11;:20;24072:7;24060:20;;;;;;;;;;;;;;;;;;;;;;;;;24059:21;24051:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;24149:1;24130:7;:16;24138:7;24130:16;;;;;;;;;;;;;;;;:20;24127:116;;;24190:37;24210:7;:16;24218:7;24210:16;;;;;;;;;;;;;;;;24190:19;:37::i;:::-;24171:7;:16;24179:7;24171:16;;;;;;;;;;;;;;;:56;;;;24127:116;24280:4;24257:11;:20;24269:7;24257:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;24299:9;24314:7;24299:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23859:475:::0;:::o;7802:260::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7915:1:::1;7895:22;;:8;:22;;;;7887:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8009:8;7980:38;;8001:6;::::0;::::1;;;;;;;;7980:38;;;;;;;;;;;;8042:8;8033:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;7802:260:::0;:::o;28233:168::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28291:26:::1;28320:21;28291:50;;28356:33;28370:18;28356:13;:33::i;:::-;7586:1;28233:168::o:0;34657:118::-;34703:15;34742:21;34735:28;;34657:118;:::o;24346:522::-;7522:12;:10;:12::i;:::-;7512:22;;:6;;;;;;;;;;:22;;;7504:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24431:11:::1;:20;24443:7;24431:20;;;;;;;;;;;;;;;;;;;;;;;;;24423:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;24503:9;24498:359;24522:9;:16;;;;24518:1;:20;24498:359;;;24584:7;24568:23;;:9;24578:1;24568:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;24564:278;;;24631:9;24660:1;24641:9;:16;;;;:20;24631:31;;;;;;;;;;;;;;;;;;;;;;;;;24616:9;24626:1;24616:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;24704:1;24685:7;:16;24693:7;24685:16;;;;;;;;;;;;;;;:20;;;;24751:5;24728:11;:20;24740:7;24728:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;24779:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24817:5;;24564:278;24540:3;;;;;;;24498:359;;;;24346:522:::0;:::o;515:114::-;568:15;607:10;600:17;;515:114;:::o;25412:357::-;25526:1;25509:19;;:5;:19;;;;25501:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25611:1;25592:21;;:7;:21;;;;25584:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25699:6;25669:11;:18;25681:5;25669:18;;;;;;;;;;;;;;;:27;25688:7;25669:27;;;;;;;;;;;;;;;:36;;;;25741:7;25725:32;;25734:5;25725:32;;;25750:6;25725:32;;;;;;;;;;;;;;;;;;25412:357;;;:::o;25781:1467::-;25900:1;25882:20;;:6;:20;;;;25874:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25988:1;25967:23;;:9;:23;;;;25959:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26062:1;26053:6;:10;26045:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26139:7;:5;:7::i;:::-;26129:17;;:6;:17;;;;:41;;;;;26163:7;:5;:7::i;:::-;26150:20;;:9;:20;;;;26129:41;26126:138;;;26207:12;;26197:6;:22;;26189:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26126:138;26295:28;26326:24;26344:4;26326:9;:24::i;:::-;26295:55;;26394:12;;26370:20;:36;26367:124;;26463:12;;26440:35;;26367:124;26507:24;26558:29;;26534:20;:53;;26507:80;;26607:6;;;;;;;;;;26606:7;:22;;;;;26617:11;;;;;;;;;;;26606:22;:45;;;;;26632:19;26606:45;:72;;;;;26665:13;26655:23;;:6;:23;;;;26606:72;26602:364;;;26717:38;26734:20;26717:16;:38::i;:::-;26776:26;26805:21;26776:50;;26869:1;26848:18;:22;26845:106;;;26895:36;26909:21;26895:13;:36::i;:::-;26845:106;26602:364;;26996:12;27011:4;26996:19;;27049:18;:26;27068:6;27049:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;27079:18;:29;27098:9;27079:29;;;;;;;;;;;;;;;;;;;;;;;;;27049:59;27046:113;;;27138:5;27128:15;;27046:113;27189:47;27204:6;27211:9;27221:6;27228:7;27189:14;:47::i;:::-;25781:1467;;;;;;:::o;2065:208::-;2151:7;2188:1;2183;:6;;2191:12;2175:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:9;2235:1;2231;:5;2219:17;;2260:1;2253:8;;;2065:208;;;;;:::o;33643:175::-;33684:7;33709:15;33726;33745:19;:17;:19::i;:::-;33708:56;;;;33786:20;33798:7;33786;:11;;:20;;;;:::i;:::-;33779:27;;;;33643:175;:::o;2820:140::-;2878:7;2909:39;2913:1;2916;2909:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2902:46;;2820:140;;;;:::o;1680:197::-;1738:7;1762:9;1778:1;1774;:5;1762:17;;1807:1;1802;:6;;1794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:1;1857:8;;;1680:197;;;;:::o;32401:481::-;32460:7;32469;32478;32487;32496;32505;32530:23;32555:12;32569:13;32586:39;32598:7;32607;;32616:8;;32586:11;:39::i;:::-;32529:96;;;;;;32640:19;32663:10;:8;:10::i;:::-;32640:33;;32689:15;32706:23;32731:12;32747:39;32759:7;32768:4;32774:11;32747;:39::i;:::-;32688:98;;;;;;32809:7;32818:15;32835:4;32841:15;32858:4;32864:5;32801:69;;;;;;;;;;;;;;;;;;;32401:481;;;;;;;:::o;1899:144::-;1957:7;1988:43;1992:1;1995;1988:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1981:50;;1899:144;;;;:::o;27260:563::-;19250:4;19241:6;;:13;;;;;;;;;;;;;;;;;;27355:21:::1;27393:1;27379:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27355:40;;27428:4;27410;27415:1;27410:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;27458:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;27448:4;27453:1;27448:7;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;27497:62;27514:4;27529:15;27547:11;27497:8;:62::i;:::-;27590:15;:66;;;27675:11;27705:1;27726:4;27757;27781:15;27590:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19269:1;19294:5:::0;19285:6;;:14;;;;;;;;;;;;;;;;;;27260:563;:::o;27835:196::-;27897:33;;;;;;;;;;;:42;;:57;27940:13;27951:1;27940:6;:10;;:13;;;;:::i;:::-;27897:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27969:26;;;;;;;;;;;:35;;:50;28005:13;28016:1;28005:6;:10;;:13;;;;:::i;:::-;27969:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27835:196;:::o;28531:883::-;28647:7;28643:44;;28673:14;:12;:14::i;:::-;28643:44;28708:11;:19;28720:6;28708:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;28732:11;:22;28744:9;28732:22;;;;;;;;;;;;;;;;;;;;;;;;;28731:23;28708:46;28704:637;;;28775:48;28797:6;28805:9;28816:6;28775:21;:48::i;:::-;28704:637;;;28850:11;:19;28862:6;28850:19;;;;;;;;;;;;;;;;;;;;;;;;;28849:20;:46;;;;;28873:11;:22;28885:9;28873:22;;;;;;;;;;;;;;;;;;;;;;;;;28849:46;28845:496;;;28916:46;28936:6;28944:9;28955:6;28916:19;:46::i;:::-;28845:496;;;28989:11;:19;29001:6;28989:19;;;;;;;;;;;;;;;;;;;;;;;;;28988:20;:47;;;;;29013:11;:22;29025:9;29013:22;;;;;;;;;;;;;;;;;;;;;;;;;29012:23;28988:47;28984:357;;;29056:44;29074:6;29082:9;29093:6;29056:17;:44::i;:::-;28984:357;;;29126:11;:19;29138:6;29126:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;29149:11;:22;29161:9;29149:22;;;;;;;;;;;;;;;;;;;;;;;;;29126:45;29122:219;;;29192:48;29214:6;29222:9;29233:6;29192:21;:48::i;:::-;29122:219;;;29281:44;29299:6;29307:9;29318:6;29281:17;:44::i;:::-;29122:219;28984:357;28845:496;28704:637;29361:7;29357:45;;29387:15;:13;:15::i;:::-;29357:45;28531:883;;;;:::o;33830:595::-;33880:7;33889;33913:15;33931:7;;33913:25;;33953:15;33971:7;;33953:25;;33998:9;33993:305;34017:9;:16;;;;34013:1;:20;33993:305;;;34087:7;34063;:21;34071:9;34081:1;34071:12;;;;;;;;;;;;;;;;;;;;;;;;;34063:21;;;;;;;;;;;;;;;;:31;:66;;;;34122:7;34098;:21;34106:9;34116:1;34106:12;;;;;;;;;;;;;;;;;;;;;;;;;34098:21;;;;;;;;;;;;;;;;:31;34063:66;34059:97;;;34139:7;;34148;;34131:25;;;;;;;;;34059:97;34185:34;34197:7;:21;34205:9;34215:1;34205:12;;;;;;;;;;;;;;;;;;;;;;;;;34197:21;;;;;;;;;;;;;;;;34185:7;:11;;:34;;;;:::i;:::-;34175:44;;34248:34;34260:7;:21;34268:9;34278:1;34268:12;;;;;;;;;;;;;;;;;;;;;;;;;34260:21;;;;;;;;;;;;;;;;34248:7;:11;;:34;;;;:::i;:::-;34238:44;;34035:3;;;;;;;33993:305;;;;34326:20;34338:7;;34326;;:11;;:20;;;;:::i;:::-;34316:7;:30;34312:61;;;34356:7;;34365;;34348:25;;;;;;;;34312:61;34396:7;34405;34388:25;;;;;;33830:595;;;:::o;2982:298::-;3068:7;3104:1;3100;:5;3107:12;3092:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3135:9;3151:1;3147;:5;;;;;;3135:17;;3267:1;3260:8;;;2982:298;;;;;:::o;32894:371::-;32987:7;32996;33005;33029:12;33044:28;33068:3;33044:19;33056:6;33044:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;33029:43;;33087:13;33103:29;33128:3;33103:20;33115:7;33103;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;33087:45;;33147:23;33173:28;33195:5;33173:17;33185:4;33173:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;33147:54;;33224:15;33241:4;33247:5;33216:37;;;;;;;;;32894:371;;;;;;;:::o;33277:354::-;33372:7;33381;33390;33414:15;33432:24;33444:11;33432:7;:11;;:24;;;;:::i;:::-;33414:42;;33471:12;33486:21;33495:11;33486:4;:8;;:21;;;;:::i;:::-;33471:36;;33522:23;33548:17;33560:4;33548:7;:11;;:17;;;;:::i;:::-;33522:43;;33588:7;33597:15;33614:4;33580:39;;;;;;;;;33277:354;;;;;;;:::o;24880:238::-;24941:1;24930:7;;:12;:29;;;;;24958:1;24946:8;;:13;24930:29;24927:41;;;24961:7;;24927:41;25002:7;;24984:15;:25;;;;25043:8;;25024:16;:27;;;;25078:1;25068:7;:11;;;;25105:1;25094:8;:12;;;;24880:238;:::o;30557:580::-;30664:15;30681:23;30706:12;30720:23;30745:12;30759:13;30776:19;30787:7;30776:10;:19::i;:::-;30663:132;;;;;;;;;;;;30828:28;30848:7;30828;:15;30836:6;30828:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30810:7;:15;30818:6;30810:15;;;;;;;;;;;;;;;:46;;;;30889:28;30909:7;30889;:15;30897:6;30889:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30871:7;:15;30879:6;30871:15;;;;;;;;;;;;;;;:46;;;;30953:39;30976:15;30953:7;:18;30961:9;30953:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30932:7;:18;30940:9;30932:18;;;;;;;;;;;;;;;:60;;;;31007:16;31017:5;31007:9;:16::i;:::-;31038:23;31050:4;31056;31038:11;:23::i;:::-;31098:9;31081:44;;31090:6;31081:44;;;31109:15;31081:44;;;;;;;;;;;;;;;;;;30557:580;;;;;;;;;:::o;29953:592::-;30058:15;30075:23;30100:12;30114:23;30139:12;30153:13;30170:19;30181:7;30170:10;:19::i;:::-;30057:132;;;;;;;;;;;;30222:28;30242:7;30222;:15;30230:6;30222:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30204:7;:15;30212:6;30204:15;;;;;;;;;;;;;;;:46;;;;30286:39;30309:15;30286:7;:18;30294:9;30286:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30265:7;:18;30273:9;30265:18;;;;;;;;;;;;;;;:60;;;;30361:39;30384:15;30361:7;:18;30369:9;30361:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30340:7;:18;30348:9;30340:18;;;;;;;;;;;;;;;:60;;;;30415:16;30425:5;30415:9;:16::i;:::-;30446:23;30458:4;30464;30446:11;:23::i;:::-;30506:9;30489:44;;30498:6;30489:44;;;30517:15;30489:44;;;;;;;;;;;;;;;;;;29953:592;;;;;;;;;:::o;29426:515::-;29529:15;29546:23;29571:12;29585:23;29610:12;29624:13;29641:19;29652:7;29641:10;:19::i;:::-;29528:132;;;;;;;;;;;;29693:28;29713:7;29693;:15;29701:6;29693:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29675:7;:15;29683:6;29675:15;;;;;;;;;;;;;;;:46;;;;29757:39;29780:15;29757:7;:18;29765:9;29757:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29736:7;:18;29744:9;29736:18;;;;;;;;;;;;;;;:60;;;;29811:16;29821:5;29811:9;:16::i;:::-;29842:23;29854:4;29860;29842:11;:23::i;:::-;29902:9;29885:44;;29894:6;29885:44;;;29913:15;29885:44;;;;;;;;;;;;;;;;;;29426:515;;;;;;;;;:::o;31149:655::-;31256:15;31273:23;31298:12;31312:23;31337:12;31351:13;31368:19;31379:7;31368:10;:19::i;:::-;31255:132;;;;;;;;;;;;31420:28;31440:7;31420;:15;31428:6;31420:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;31402:7;:15;31410:6;31402:15;;;;;;;;;;;;;;;:46;;;;31481:28;31501:7;31481;:15;31489:6;31481:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;31463:7;:15;31471:6;31463:15;;;;;;;;;;;;;;;:46;;;;31545:39;31568:15;31545:7;:18;31553:9;31545:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;31524:7;:18;31532:9;31524:18;;;;;;;;;;;;;;;:60;;;;31620:39;31643:15;31620:7;:18;31628:9;31620:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;31599:7;:18;31607:9;31599:18;;;;;;;;;;;;;;;:60;;;;31674:16;31684:5;31674:9;:16::i;:::-;31705:23;31717:4;31723;31705:11;:23::i;:::-;31765:9;31748:44;;31757:6;31748:44;;;31776:15;31748:44;;;;;;;;;;;;;;;;;;31149:655;;;;;;;;;:::o;25130:127::-;25188:15;;25178:7;:25;;;;25229:16;;25218:8;:27;;;;25130:127::o;2287:511::-;2345:7;2611:1;2606;:6;2602:55;;;2640:1;2633:8;;;;2602:55;2673:9;2689:1;2685;:5;2673:17;;2722:1;2717;2713;:5;;;;;;:10;2705:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:1;2778:8;;;2287:511;;;;;:::o;31816:349::-;31873:19;31896:10;:8;:10::i;:::-;31873:33;;31921:13;31937:22;31947:11;31937:5;:9;;:22;;;;:::i;:::-;31921:38;;31999:33;32026:5;31999:7;:22;32015:4;31999:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;31974:7;:22;31990:4;31974:22;;;;;;;;;;;;;;;:58;;;;32050:11;:26;32070:4;32050:26;;;;;;;;;;;;;;;;;;;;;;;;;32047:106;;;32120:33;32147:5;32120:7;:22;32136:4;32120:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;32095:7;:22;32111:4;32095:22;;;;;;;;;;;;;;;:58;;;;32047:106;31816:349;;;:::o;32177:159::-;32259:17;32271:4;32259:7;;:11;;:17;;;;:::i;:::-;32249:7;:27;;;;32304:20;32319:4;32304:10;;:14;;:20;;;;:::i;:::-;32291:10;:33;;;;32177:159;;:::o
Swarm Source
ipfs://bbbb81751275aee1ba9e9ddc0b4ca463bac3d540da05495e6832d216aa7e5e7e
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.