ERC-20
Overview
Max Total Supply
100,000,000,000 BIRD KILLER
Holders
68
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
262,782,318.983487663 BIRD KILLERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BIRDSHOT
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-19 */ // BIRDSHOT - Bird Killer with 1% Tax for Liquidity // https://t.me/birdshoterc // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ 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; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, 'SafeMath: addition overflow'); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, 'SafeMath: subtraction overflow'); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ 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; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, 'SafeMath: division by zero'); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be 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; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, 'SafeMath: modulo by zero'); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ 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); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ 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'); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, 'Address: low-level call failed'); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ 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'); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ 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); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), 'Ownable: caller is not the owner'); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), 'Ownable: new owner is the zero address'); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { function sync() external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; } pragma solidity ^0.6.0; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() public { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, 'ReentrancyGuard: reentrant call'); _status = _ENTERED; _; _status = _NOT_ENTERED; } modifier isHuman() { require(tx.origin == msg.sender, 'sorry humans only'); _; } } pragma solidity ^0.6.0; library TransferHelper { function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeApprove: approve failed' ); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::safeTransfer: transfer failed' ); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require( success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper::transferFrom: transferFrom failed' ); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, 'TransferHelper::safeTransferETH: ETH transfer failed'); } } interface IPinkAntiBot { function setTokenOwner(address owner) external; function onPreTransferCheck( address from, address to, uint256 amount ) external; } interface ITopHolderRewardDistributor { function depositReward(uint256 amount) external; function onTransfer(address sender, address recipient, uint256 amount) external; } contract BIRDSHOT is Context, IERC20, Ownable, ReentrancyGuard { using SafeMath for uint256; using Address for address; using TransferHelper for address; string private _name = 'BIRDSHOT'; string private _symbol = 'BIRD KILLER'; uint8 private _decimals = 9; mapping(address => uint256) internal _reflectionBalance; mapping(address => uint256) internal _tokenBalance; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private constant MAX = ~uint256(0); uint256 internal _tokenTotal = 100_000_000_000e9; uint256 internal _reflectionTotal = (MAX - (MAX % _tokenTotal)); mapping(address => bool) public isTaxless; mapping(address => bool) internal _isExcluded; address[] internal _excluded; uint256 public _feeDecimal = 2; // index 0 = buy fee, index 1 = sell fee, index 2 = p2p fee uint256[] public _taxFee; uint256[] public _teamFee; uint256[] public _marketingFee; uint256 internal _feeTotal; uint256 internal _marketingFeeCollected; uint256 internal _teamFeeCollected; bool public isFeeActive = true; // should be true bool private inSwap; bool public swapEnabled = true; uint256 public maxTxAmount = _tokenTotal.mul(10).div(1000); // 1% uint256 public minTokensBeforeSwap = 1_000_000e9; address public marketingWallet; address public teamWallet; IUniswapV2Router02 public router; address public pair; event SwapUpdated(bool enabled); event Swap(uint256 swaped, uint256 recieved); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor(address _router,address _owner,address _marketingWallet, address _teamWallet) public { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router); pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); router = _uniswapV2Router; marketingWallet = _marketingWallet; teamWallet = _teamWallet; isTaxless[_owner] = true; isTaxless[teamWallet] = true; isTaxless[marketingWallet] = true; isTaxless[address(this)] = true; excludeAccount(address(pair)); excludeAccount(address(this)); excludeAccount(address(marketingWallet)); excludeAccount(address(teamWallet)); excludeAccount(address(address(0))); excludeAccount(address(address(0x000000000000000000000000000000000000dEaD))); _reflectionBalance[_owner] = _reflectionTotal; emit Transfer(address(0),_owner, _tokenTotal); _taxFee.push(300); _taxFee.push(300); _taxFee.push(300); _teamFee.push(100); _teamFee.push(100); _teamFee.push(100); _marketingFee.push(200); _marketingFee.push(200); _marketingFee.push(200); transferOwnership(_owner); } 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 _tokenTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tokenBalance[account]; return tokenFromReflection(_reflectionBalance[account]); } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view 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 virtual 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 reflectionFromToken(uint256 tokenAmount) public view returns (uint256) { require(tokenAmount <= _tokenTotal, 'Amount must be less than supply'); return tokenAmount.mul(_getReflectionRate()); } function tokenFromReflection(uint256 reflectionAmount) public view returns (uint256) { require(reflectionAmount <= _reflectionTotal, 'Amount must be less than total reflections'); uint256 currentRate = _getReflectionRate(); return reflectionAmount.div(currentRate); } function excludeAccount(address account) public onlyOwner { require(account != address(router), 'ERC20: We can not exclude Uniswap router.'); require(!_isExcluded[account], 'ERC20: Account is already excluded'); if (_reflectionBalance[account] > 0) { _tokenBalance[account] = tokenFromReflection(_reflectionBalance[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner { require(_isExcluded[account], 'ERC20: Account is already included'); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tokenBalance[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } 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'); require(isTaxless[sender] || isTaxless[recipient] || amount <= maxTxAmount, 'Max Transfer Limit Exceeds!'); if (swapEnabled && !inSwap && sender != pair) { swap(); } uint256 transferAmount = amount; uint256 rate = _getReflectionRate(); if (isFeeActive && !isTaxless[sender] && !isTaxless[recipient] && !inSwap) { transferAmount = collectFee(sender, amount, rate, recipient == pair, sender != pair && recipient != pair); } //transfer reflection _reflectionBalance[sender] = _reflectionBalance[sender].sub(amount.mul(rate)); _reflectionBalance[recipient] = _reflectionBalance[recipient].add(transferAmount.mul(rate)); //if any account belongs to the excludedAccount transfer token if (_isExcluded[sender]) { _tokenBalance[sender] = _tokenBalance[sender].sub(amount); } if (_isExcluded[recipient]) { _tokenBalance[recipient] = _tokenBalance[recipient].add(transferAmount); } emit Transfer(sender, recipient, transferAmount); } function calculateFee(uint256 feeIndex, uint256 amount) internal returns(uint256, uint256) { uint256 taxFee = amount.mul(_taxFee[feeIndex]).div(10**(_feeDecimal + 2)); uint256 marketingFee = amount.mul(_marketingFee[feeIndex]).div(10**(_feeDecimal + 2)); uint256 teamFee = amount.mul(_teamFee[feeIndex]).div(10**(_feeDecimal + 2)); _marketingFeeCollected = _marketingFeeCollected.add(marketingFee); _teamFeeCollected = _teamFeeCollected.add(teamFee); return (taxFee, marketingFee.add(teamFee)); } function collectFee( address account, uint256 amount, uint256 rate, bool sell, bool p2p ) private returns (uint256) { uint256 transferAmount = amount; (uint256 taxFee, uint256 otherFee) = calculateFee(p2p ? 2 : sell ? 1 : 0, amount); if(otherFee != 0) { transferAmount = transferAmount.sub(otherFee); _reflectionBalance[address(this)] = _reflectionBalance[address(this)].add(otherFee.mul(rate)); if (_isExcluded[address(this)]) { _tokenBalance[address(this)] = _tokenBalance[address(this)].add(otherFee); } emit Transfer(account, address(this), otherFee); } if(taxFee != 0){ _reflectionTotal = _reflectionTotal.sub(taxFee.mul(rate)); } _feeTotal = _feeTotal.add(taxFee).add(otherFee); return transferAmount; } function swap() private lockTheSwap { uint256 totalFee = _teamFeeCollected.add(_marketingFeeCollected); if(minTokensBeforeSwap > totalFee) return; address[] memory sellPath = new address[](2); sellPath[0] = address(this); sellPath[1] = router.WETH(); uint256 balanceBefore = address(this).balance; _approve(address(this), address(router), totalFee); router.swapExactTokensForETHSupportingFeeOnTransferTokens( totalFee, 0, sellPath, address(this), block.timestamp ); uint256 amountFee = address(this).balance.sub(balanceBefore); uint256 amountMarketing = amountFee.mul(_marketingFeeCollected).div(totalFee); if(amountMarketing > 0) payable(marketingWallet).transfer(amountMarketing); uint256 amountTeam = address(this).balance; if(amountTeam > 0) payable(marketingWallet).transfer(address(this).balance); _marketingFeeCollected = 0; _teamFeeCollected = 0; emit Swap(totalFee, amountFee); } function _getReflectionRate() private view returns (uint256) { uint256 reflectionSupply = _reflectionTotal; uint256 tokenSupply = _tokenTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_reflectionBalance[_excluded[i]] > reflectionSupply || _tokenBalance[_excluded[i]] > tokenSupply) return _reflectionTotal.div(_tokenTotal); reflectionSupply = reflectionSupply.sub(_reflectionBalance[_excluded[i]]); tokenSupply = tokenSupply.sub(_tokenBalance[_excluded[i]]); } if (reflectionSupply < _reflectionTotal.div(_tokenTotal)) return _reflectionTotal.div(_tokenTotal); return reflectionSupply.div(tokenSupply); } function setPairRouterRewardToken(address _pair, IUniswapV2Router02 _router) external onlyOwner { pair = _pair; router = _router; } function setTaxless(address account, bool value) external onlyOwner { isTaxless[account] = value; } function setSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; SwapUpdated(enabled); } function setFeeActive(bool value) external onlyOwner { isFeeActive = value; } function setTaxFee(uint256 buy, uint256 sell, uint256 p2p) external onlyOwner { _taxFee[0] = buy; _taxFee[1] = sell; _taxFee[2] = p2p; } function setTeamFee(uint256 buy, uint256 sell, uint256 p2p) external onlyOwner { _teamFee[0] = buy; _teamFee[1] = sell; _teamFee[2] = p2p; } function setMarketingFee(uint256 buy, uint256 sell, uint256 p2p) external onlyOwner { _marketingFee[0] = buy; _marketingFee[1] = sell; _marketingFee[2] = p2p; } function setMarketingWallet(address wallet) external onlyOwner { marketingWallet = wallet; } function setTeamWallet(address wallet) external onlyOwner { teamWallet = wallet; } function setMaxTxAmount(uint256 percentage) external onlyOwner { maxTxAmount = _tokenTotal.mul(percentage).div(10000); } function setMinTokensBeforeSwap(uint256 amount) external onlyOwner { minTokensBeforeSwap = amount; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_teamWallet","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swaped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"recieved","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_feeDecimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","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":[],"name":"isFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"p2p","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"contract IUniswapV2Router02","name":"_router","type":"address"}],"name":"setPairRouterRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"p2p","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTaxless","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"p2p","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setTeamWallet","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":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionAmount","type":"uint256"}],"name":"tokenFromReflection","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600881526020017f4249524453484f54000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062001621565b506040518060400160405280600b81526020017f42495244204b494c4c4552000000000000000000000000000000000000000000815250600390805190602001906200009f92919062001621565b506009600460006101000a81548160ff021916908360ff16021790555068056bc75e2d6310000060085560085460001981620000d757fe5b06600019036009556002600d556001601460006101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550620001526103e86200013e600a60085462000a0660201b62002eb71790919060201c565b62000a9160201b62002f3d1790919060201c565b60155566038d7ea4c680006016553480156200016d57600080fd5b506040516200616138038062006161833981810160405260808110156200019357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050506000620001d462000ae360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001808190555060008490508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c557600080fd5b505afa158015620002da573d6000803e3d6000fd5b505050506040513d6020811015620002f157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036557600080fd5b505afa1580156200037a573d6000803e3d6000fd5b505050506040513d60208110156200039157600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200040c57600080fd5b505af115801562000421573d6000803e3d6000fd5b505050506040513d60208110156200043857600080fd5b8101908080519060200190929190505050601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000723601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000aeb60201b60201c565b620007343062000aeb60201b60201c565b62000767601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000aeb60201b60201c565b6200079a601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000aeb60201b60201c565b620007ac600062000aeb60201b60201c565b620007bf61dead62000aeb60201b60201c565b600954600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a3600e61012c9080600181540180825580915050600190039060005260206000200160009091909190915055600e61012c9080600181540180825580915050600190039060005260206000200160009091909190915055600e61012c9080600181540180825580915050600190039060005260206000200160009091909190915055600f60649080600181540180825580915050600190039060005260206000200160009091909190915055600f60649080600181540180825580915050600190039060005260206000200160009091909190915055600f60649080600181540180825580915050600190039060005260206000200160009091909190915055601060c89080600181540180825580915050600190039060005260206000200160009091909190915055601060c89080600181540180825580915050600190039060005260206000200160009091909190915055601060c89080600181540180825580915050600190039060005260206000200160009091909190915055620009fb8462000ea560201b60201c565b5050505050620016c7565b60008083141562000a1b576000905062000a8b565b600082840290508284828162000a2d57fe5b041462000a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620061176021913960400191505060405180910390fd5b809150505b92915050565b600062000adb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620010bb60201b60201c565b905092915050565b600033905090565b62000afb62000ae360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000bbc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180620061386029913960400191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620060a56022913960400191505060405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111562000de75762000da3600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200118660201b60201c565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b62000eb562000ae360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000f76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180620060f16026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831182906200116b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200112f57808201518184015260208101905062001112565b50505050905090810190601f1680156200115d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200117857fe5b049050809150509392505050565b6000600954821115620011e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180620060c7602a913960400191505060405180910390fd5b6000620011f76200121b60201b60201c565b905062001213818462000a9160201b62002f3d1790919060201c565b915050919050565b60008060095490506000600854905060005b600c805490508110156200149a578260056000600c84815481106200124e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806200133757508160066000600c8481548110620012cf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1562001366576200135b60085460095462000a9160201b62002f3d1790919060201c565b935050505062001508565b620013f760056000600c84815481106200137c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846200150b60201b62002f871790919060201c565b92506200148a60066000600c84815481106200140f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836200150b60201b62002f871790919060201c565b915080806001019150506200122d565b50620014b960085460095462000a9160201b62002f3d1790919060201c565b821015620014e957620014df60085460095462000a9160201b62002f3d1790919060201c565b9250505062001508565b62001503818362000a9160201b62002f3d1790919060201c565b925050505b90565b60006200155583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200155d60201b60201c565b905092915050565b60008383111582906200160e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620015d2578082015181840152602081019050620015b5565b50505050905090810190601f168015620016005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200166457805160ff191683800117855562001695565b8280016001018555821562001695579182015b828111156200169457825182559160200191906001019062001677565b5b509050620016a49190620016a8565b5090565b5b80821115620016c3576000816000905550600101620016a9565b5090565b6149ce80620016d76000396000f3fe6080604052600436106102605760003560e01c80638c0b5e2211610144578063cba0e996116100b6578063ec28438a1161007a578063ec28438a14610e14578063f2cc0c1814610e4f578063f2fde38b14610ea0578063f84354f114610ef1578063f887ea4014610f42578063fbf63fc214610f8357610267565b8063cba0e99614610c93578063dd62ed3e14610cfa578063e01af92c14610d7f578063e43504da14610dbc578063e5d41c6b14610de957610267565b8063a457c2d711610108578063a457c2d714610a7d578063a5ae2d2f14610aee578063a8aa1b3114610b55578063a9059cbb14610b96578063a918299c14610c07578063b7bfff6514610c5657610267565b80638c0b5e22146108e35780638da5cb5b1461090e57806391cc19c21461094f57806394169e0d1461099e57806395d89b41146109ed57610267565b8063324c3454116101dd57806359927044116101a157806359927044146107675780635d098b38146107a85780636ddd1713146107f957806370a0823114610826578063715018a61461088b57806375f0a874146108a257610267565b8063324c3454146105c0578063395093511461060f578063455fdd781461068057806347f2dc5b146106cf57806348a464731461072c57610267565b806318160ddd1161022457806318160ddd1461045c57806319db457d1461048757806323b872dd146104b25780632d83811914610543578063313ce5671461059257610267565b806306fdde031461026c578063095ea7b3146102fc5780631185c1d51461036d5780631392c086146103bc5780631525ff7d1461040b57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610ff4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102c15780820151818401526020810190506102a6565b50505050905090810190601f1680156102ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030857600080fd5b506103556004803603604081101561031f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611096565b60405180821515815260200191505060405180910390f35b34801561037957600080fd5b506103a66004803603602081101561039057600080fd5b81019080803590602001909291905050506110b4565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b506103f5600480360360208110156103df57600080fd5b81019080803590602001909291905050506110d5565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b5061045a6004803603602081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611170565b005b34801561046857600080fd5b5061047161127c565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c611286565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b5061052b600480360360608110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128c565b60405180821515815260200191505060405180910390f35b34801561054f57600080fd5b5061057c6004803603602081101561056657600080fd5b8101908080359060200190929190505050611365565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105a76113e9565b604051808260ff16815260200191505060405180910390f35b3480156105cc57600080fd5b5061060d600480360360608110156105e357600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611400565b005b34801561061b57600080fd5b506106686004803603604081101561063257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611524565b60405180821515815260200191505060405180910390f35b34801561068c57600080fd5b506106b9600480360360208110156106a357600080fd5b81019080803590602001909291905050506115d7565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b5061072a600480360360408110156106f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506115f8565b005b34801561073857600080fd5b506107656004803603602081101561074f57600080fd5b810190808035906020019092919050505061171b565b005b34801561077357600080fd5b5061077c6117ed565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b457600080fd5b506107f7600480360360208110156107cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611813565b005b34801561080557600080fd5b5061080e61191f565b60405180821515815260200191505060405180910390f35b34801561083257600080fd5b506108756004803603602081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611932565b6040518082815260200191505060405180910390f35b34801561089757600080fd5b506108a0611a1d565b005b3480156108ae57600080fd5b506108b7611ba3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ef57600080fd5b506108f8611bc9565b6040518082815260200191505060405180910390f35b34801561091a57600080fd5b50610923611bcf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561095b57600080fd5b506109886004803603602081101561097257600080fd5b8101908080359060200190929190505050611bf8565b6040518082815260200191505060405180910390f35b3480156109aa57600080fd5b506109eb600480360360608110156109c157600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611c19565b005b3480156109f957600080fd5b50610a02611d3d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a42578082015181840152602081019050610a27565b50505050905090810190601f168015610a6f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a8957600080fd5b50610ad660048036036040811015610aa057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ddf565b60405180821515815260200191505060405180910390f35b348015610afa57600080fd5b50610b3d60048036036020811015610b1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eac565b60405180821515815260200191505060405180910390f35b348015610b6157600080fd5b50610b6a611ecc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba257600080fd5b50610bef60048036036040811015610bb957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef2565b60405180821515815260200191505060405180910390f35b348015610c1357600080fd5b50610c5460048036036060811015610c2a57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611f10565b005b348015610c6257600080fd5b50610c9160048036036020811015610c7957600080fd5b81019080803515159060200190929190505050612034565b005b348015610c9f57600080fd5b50610ce260048036036020811015610cb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612119565b60405180821515815260200191505060405180910390f35b348015610d0657600080fd5b50610d6960048036036040811015610d1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216f565b6040518082815260200191505060405180910390f35b348015610d8b57600080fd5b50610dba60048036036020811015610da257600080fd5b810190808035151590602001909291905050506121f6565b005b348015610dc857600080fd5b50610dd1612314565b60405180821515815260200191505060405180910390f35b348015610df557600080fd5b50610dfe612327565b6040518082815260200191505060405180910390f35b348015610e2057600080fd5b50610e4d60048036036020811015610e3757600080fd5b810190808035906020019092919050505061232d565b005b348015610e5b57600080fd5b50610e9e60048036036020811015610e7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612427565b005b348015610eac57600080fd5b50610eef60048036036020811015610ec357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127cb565b005b348015610efd57600080fd5b50610f4060048036036020811015610f1457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d6565b005b348015610f4e57600080fd5b50610f57612d43565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8f57600080fd5b50610ff260048036036040811015610fa657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d69565b005b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561108c5780601f106110615761010080835404028352916020019161108c565b820191906000526020600020905b81548152906001019060200180831161106f57829003601f168201915b5050505050905090565b60006110aa6110a3612fd1565b8484612fd9565b6001905092915050565b600e81815481106110c157fe5b906000526020600020016000915090505481565b600060085482111561114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b61116961115a6131d0565b83612eb790919063ffffffff16565b9050919050565b611178612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600854905090565b600d5481565b600061129984848461348b565b61135a846112a5612fd1565b6113558560405180606001604052806028815260200161488f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061130b612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d219092919063ffffffff16565b612fd9565b600190509392505050565b60006009548211156113c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806147fc602a913960400191505060405180910390fd5b60006113cc6131d0565b90506113e18184612f3d90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b611408612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82600e6000815481106114d757fe5b906000526020600020018190555081600e6001815481106114f457fe5b906000526020600020018190555080600e60028154811061151157fe5b9060005260206000200181905550505050565b60006115cd611531612fd1565b846115c88560076000611542612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b612fd9565b6001905092915050565b600f81815481106115e457fe5b906000526020600020016000915090505481565b611600612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611723612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060168190555050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61181b612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119cd57600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611a18565b611a15600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611365565b90505b919050565b611a25612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60108181548110611c0557fe5b906000526020600020016000915090505481565b611c21612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82600f600081548110611cf057fe5b906000526020600020018190555081600f600181548110611d0d57fe5b906000526020600020018190555080600f600281548110611d2a57fe5b9060005260206000200181905550505050565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dd55780601f10611daa57610100808354040283529160200191611dd5565b820191906000526020600020905b815481529060010190602001808311611db857829003601f168201915b5050505050905090565b6000611ea2611dec612fd1565b84611e9d856040518060600160405280602581526020016149746025913960076000611e16612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d219092919063ffffffff16565b612fd9565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f06611eff612fd1565b848461348b565b6001905092915050565b611f18612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b826010600081548110611fe757fe5b906000526020600020018190555081601060018154811061200457fe5b906000526020600020018190555080601060028154811061202157fe5b9060005260206000200181905550505050565b61203c612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6121fe612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460026101000a81548160ff0219169083151502179055507fd2b6af97bbcf94796ee3844c1f0948ba30b3f2d496875e5e1587309eb210aac58160405180821515815260200191505060405180910390a150565b601460009054906101000a900460ff1681565b60165481565b612335612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61241e61271061241083600854612eb790919063ffffffff16565b612f3d90919063ffffffff16565b60158190555050565b61242f612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806148e06029913960400191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806147da6022913960400191505060405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561270d576126c9600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611365565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127d3612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806148266026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6129de612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806149526022913960400191505060405180910390fd5b60005b600c80549050811015612d3f578173ffffffffffffffffffffffffffffffffffffffff16600c8281548110612b7457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d3257600c6001600c805490500381548110612bd057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c8281548110612c0857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c805480612cf857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612d3f565b8080600101915050612b43565b5050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612d71612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080831415612eca5760009050612f37565b6000828402905082848281612edb57fe5b0414612f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061486e6021913960400191505060405180910390fd5b809150505b92915050565b6000612f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e69565b905092915050565b6000612fc983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d21565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561305f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061492e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061484c6022913960400191505060405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060095490506000600854905060005b600c80549050811015613431578260056000600c848154811061320157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806132e857508160066000600c848154811061328057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561330e57613304600854600954612f3d90919063ffffffff16565b9350505050613488565b61339760056000600c848154811061332257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612f8790919063ffffffff16565b925061342260066000600c84815481106133ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612f8790919063ffffffff16565b915080806001019150506131e2565b50613449600854600954612f3d90919063ffffffff16565b82101561347057613467600854600954612f3d90919063ffffffff16565b92505050613488565b6134838183612f3d90919063ffffffff16565b925050505b90565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806149096025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613597576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806147b76023913960400191505060405180910390fd5b600081116135f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806148b76029913960400191505060405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136915750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061369e57506015548111155b613710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4d6178205472616e73666572204c696d6974204578636565647321000000000081525060200191505060405180910390fd5b601460029054906101000a900460ff1680156137395750601460019054906101000a900460ff16155b80156137935750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156137a1576137a0613f2f565b5b600081905060006137b06131d0565b9050601460009054906101000a900460ff1680156138185750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561386e5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601460019054906101000a900460ff16155b1561399757613994858483601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415801561398f5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6143ca565b91505b6139fb6139ad8285612eb790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613aa2613a548284612eb790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613bcd57613b8983600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613cb557613c7182600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050565b6000838311158290613dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d93578082015181840152602081019050613d78565b50505050905090810190601f168015613dc05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015613e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083118290613f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eda578082015181840152602081019050613ebf565b50505050905090810190601f168015613f075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613f2157fe5b049050809150509392505050565b6001601460016101000a81548160ff0219169083151502179055506000613f63601254601354613de190919063ffffffff16565b9050806016541115613f7557506143ad565b6060600267ffffffffffffffff81118015613f8f57600080fd5b50604051908082528060200260200182016040528015613fbe5781602001602082028036833780820191505090505b5090503081600081518110613fcf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561407157600080fd5b505afa158015614085573d6000803e3d6000fd5b505050506040513d602081101561409b57600080fd5b8101908080519060200190929190505050816001815181106140b957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600047905061412530601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685612fd9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156141e95780820151818401526020810190506141ce565b505050509050019650505050505050600060405180830381600087803b15801561421257600080fd5b505af1158015614226573d6000803e3d6000fd5b50505050600061423f8247612f8790919063ffffffff16565b9050600061426a8561425c60125485612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905060008111156142df57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156142dd573d6000803e3d6000fd5b505b6000479050600081111561435757601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015614355573d6000803e3d6000fd5b505b600060128190555060006013819055507f015fc8ee969fd902d9ebd12a31c54446400a2b512a405366fe14defd6081d2208684604051808381526020018281526020019250505060405180910390a15050505050505b6000601460016101000a81548160ff021916908315150217905550565b6000808590506000806143fb856143ef57866143e75760006143ea565b60015b6143f2565b60025b60ff1689614683565b91509150600081146146115761441a8184612f8790919063ffffffff16565b92506144806144328883612eb790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156145ab5761456781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b3073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b600082146146475761464061462f8884612eb790919063ffffffff16565b600954612f8790919063ffffffff16565b6009819055505b61466e8161466084601154613de190919063ffffffff16565b613de190919063ffffffff16565b60118190555082935050505095945050505050565b60008060006146cc6002600d5401600a0a6146be600e88815481106146a457fe5b906000526020600020015487612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905060006147146002600d5401600a0a614706601089815481106146ec57fe5b906000526020600020015488612eb790919063ffffffff16565b612f3d90919063ffffffff16565b9050600061475c6002600d5401600a0a61474e600f8a8154811061473457fe5b906000526020600020015489612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905061477382601254613de190919063ffffffff16565b60128190555061478e81601354613de190919063ffffffff16565b601381905550826147a88284613de190919063ffffffff16565b94509450505050925092905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a204163636f756e7420697320616c7265616479206578636c75646564416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a2057652063616e206e6f74206578636c75646520556e697377617020726f757465722e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a204163636f756e7420697320616c726561647920696e636c7564656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004b3cb039683da75a00b8e0116d902edcbba73f961f1eb89e6eaa37b74d9bdc964736f6c634300060c003345524332303a204163636f756e7420697320616c7265616479206578636c75646564416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a2057652063616e206e6f74206578636c75646520556e697377617020726f757465722e0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003e9cd8f52b6357fdf05117f94181e531fbb2e7e600000000000000000000000091c29a7c1441ac8ec6d220d5e1c43c26bf8af74d000000000000000000000000a0b1d5cc792fc57a81636ec227093dfa3a4f5fab
Deployed Bytecode
0x6080604052600436106102605760003560e01c80638c0b5e2211610144578063cba0e996116100b6578063ec28438a1161007a578063ec28438a14610e14578063f2cc0c1814610e4f578063f2fde38b14610ea0578063f84354f114610ef1578063f887ea4014610f42578063fbf63fc214610f8357610267565b8063cba0e99614610c93578063dd62ed3e14610cfa578063e01af92c14610d7f578063e43504da14610dbc578063e5d41c6b14610de957610267565b8063a457c2d711610108578063a457c2d714610a7d578063a5ae2d2f14610aee578063a8aa1b3114610b55578063a9059cbb14610b96578063a918299c14610c07578063b7bfff6514610c5657610267565b80638c0b5e22146108e35780638da5cb5b1461090e57806391cc19c21461094f57806394169e0d1461099e57806395d89b41146109ed57610267565b8063324c3454116101dd57806359927044116101a157806359927044146107675780635d098b38146107a85780636ddd1713146107f957806370a0823114610826578063715018a61461088b57806375f0a874146108a257610267565b8063324c3454146105c0578063395093511461060f578063455fdd781461068057806347f2dc5b146106cf57806348a464731461072c57610267565b806318160ddd1161022457806318160ddd1461045c57806319db457d1461048757806323b872dd146104b25780632d83811914610543578063313ce5671461059257610267565b806306fdde031461026c578063095ea7b3146102fc5780631185c1d51461036d5780631392c086146103bc5780631525ff7d1461040b57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610ff4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102c15780820151818401526020810190506102a6565b50505050905090810190601f1680156102ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030857600080fd5b506103556004803603604081101561031f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611096565b60405180821515815260200191505060405180910390f35b34801561037957600080fd5b506103a66004803603602081101561039057600080fd5b81019080803590602001909291905050506110b4565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b506103f5600480360360208110156103df57600080fd5b81019080803590602001909291905050506110d5565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b5061045a6004803603602081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611170565b005b34801561046857600080fd5b5061047161127c565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c611286565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b5061052b600480360360608110156104d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128c565b60405180821515815260200191505060405180910390f35b34801561054f57600080fd5b5061057c6004803603602081101561056657600080fd5b8101908080359060200190929190505050611365565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105a76113e9565b604051808260ff16815260200191505060405180910390f35b3480156105cc57600080fd5b5061060d600480360360608110156105e357600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611400565b005b34801561061b57600080fd5b506106686004803603604081101561063257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611524565b60405180821515815260200191505060405180910390f35b34801561068c57600080fd5b506106b9600480360360208110156106a357600080fd5b81019080803590602001909291905050506115d7565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b5061072a600480360360408110156106f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506115f8565b005b34801561073857600080fd5b506107656004803603602081101561074f57600080fd5b810190808035906020019092919050505061171b565b005b34801561077357600080fd5b5061077c6117ed565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107b457600080fd5b506107f7600480360360208110156107cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611813565b005b34801561080557600080fd5b5061080e61191f565b60405180821515815260200191505060405180910390f35b34801561083257600080fd5b506108756004803603602081101561084957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611932565b6040518082815260200191505060405180910390f35b34801561089757600080fd5b506108a0611a1d565b005b3480156108ae57600080fd5b506108b7611ba3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ef57600080fd5b506108f8611bc9565b6040518082815260200191505060405180910390f35b34801561091a57600080fd5b50610923611bcf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561095b57600080fd5b506109886004803603602081101561097257600080fd5b8101908080359060200190929190505050611bf8565b6040518082815260200191505060405180910390f35b3480156109aa57600080fd5b506109eb600480360360608110156109c157600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611c19565b005b3480156109f957600080fd5b50610a02611d3d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a42578082015181840152602081019050610a27565b50505050905090810190601f168015610a6f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a8957600080fd5b50610ad660048036036040811015610aa057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ddf565b60405180821515815260200191505060405180910390f35b348015610afa57600080fd5b50610b3d60048036036020811015610b1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eac565b60405180821515815260200191505060405180910390f35b348015610b6157600080fd5b50610b6a611ecc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ba257600080fd5b50610bef60048036036040811015610bb957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ef2565b60405180821515815260200191505060405180910390f35b348015610c1357600080fd5b50610c5460048036036060811015610c2a57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611f10565b005b348015610c6257600080fd5b50610c9160048036036020811015610c7957600080fd5b81019080803515159060200190929190505050612034565b005b348015610c9f57600080fd5b50610ce260048036036020811015610cb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612119565b60405180821515815260200191505060405180910390f35b348015610d0657600080fd5b50610d6960048036036040811015610d1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061216f565b6040518082815260200191505060405180910390f35b348015610d8b57600080fd5b50610dba60048036036020811015610da257600080fd5b810190808035151590602001909291905050506121f6565b005b348015610dc857600080fd5b50610dd1612314565b60405180821515815260200191505060405180910390f35b348015610df557600080fd5b50610dfe612327565b6040518082815260200191505060405180910390f35b348015610e2057600080fd5b50610e4d60048036036020811015610e3757600080fd5b810190808035906020019092919050505061232d565b005b348015610e5b57600080fd5b50610e9e60048036036020811015610e7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612427565b005b348015610eac57600080fd5b50610eef60048036036020811015610ec357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127cb565b005b348015610efd57600080fd5b50610f4060048036036020811015610f1457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129d6565b005b348015610f4e57600080fd5b50610f57612d43565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8f57600080fd5b50610ff260048036036040811015610fa657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d69565b005b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561108c5780601f106110615761010080835404028352916020019161108c565b820191906000526020600020905b81548152906001019060200180831161106f57829003601f168201915b5050505050905090565b60006110aa6110a3612fd1565b8484612fd9565b6001905092915050565b600e81815481106110c157fe5b906000526020600020016000915090505481565b600060085482111561114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b61116961115a6131d0565b83612eb790919063ffffffff16565b9050919050565b611178612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600854905090565b600d5481565b600061129984848461348b565b61135a846112a5612fd1565b6113558560405180606001604052806028815260200161488f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061130b612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d219092919063ffffffff16565b612fd9565b600190509392505050565b60006009548211156113c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806147fc602a913960400191505060405180910390fd5b60006113cc6131d0565b90506113e18184612f3d90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b611408612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82600e6000815481106114d757fe5b906000526020600020018190555081600e6001815481106114f457fe5b906000526020600020018190555080600e60028154811061151157fe5b9060005260206000200181905550505050565b60006115cd611531612fd1565b846115c88560076000611542612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b612fd9565b6001905092915050565b600f81815481106115e457fe5b906000526020600020016000915090505481565b611600612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611723612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060168190555050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61181b612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119cd57600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611a18565b611a15600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611365565b90505b919050565b611a25612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60108181548110611c0557fe5b906000526020600020016000915090505481565b611c21612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82600f600081548110611cf057fe5b906000526020600020018190555081600f600181548110611d0d57fe5b906000526020600020018190555080600f600281548110611d2a57fe5b9060005260206000200181905550505050565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611dd55780601f10611daa57610100808354040283529160200191611dd5565b820191906000526020600020905b815481529060010190602001808311611db857829003601f168201915b5050505050905090565b6000611ea2611dec612fd1565b84611e9d856040518060600160405280602581526020016149746025913960076000611e16612fd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d219092919063ffffffff16565b612fd9565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f06611eff612fd1565b848461348b565b6001905092915050565b611f18612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b826010600081548110611fe757fe5b906000526020600020018190555081601060018154811061200457fe5b906000526020600020018190555080601060028154811061202157fe5b9060005260206000200181905550505050565b61203c612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6121fe612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601460026101000a81548160ff0219169083151502179055507fd2b6af97bbcf94796ee3844c1f0948ba30b3f2d496875e5e1587309eb210aac58160405180821515815260200191505060405180910390a150565b601460009054906101000a900460ff1681565b60165481565b612335612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61241e61271061241083600854612eb790919063ffffffff16565b612f3d90919063ffffffff16565b60158190555050565b61242f612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612596576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806148e06029913960400191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612639576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806147da6022913960400191505060405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561270d576126c9600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611365565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127d3612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806148266026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6129de612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806149526022913960400191505060405180910390fd5b60005b600c80549050811015612d3f578173ffffffffffffffffffffffffffffffffffffffff16600c8281548110612b7457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d3257600c6001600c805490500381548110612bd057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c8281548110612c0857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c805480612cf857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612d3f565b8080600101915050612b43565b5050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612d71612fd1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080831415612eca5760009050612f37565b6000828402905082848281612edb57fe5b0414612f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061486e6021913960400191505060405180910390fd5b809150505b92915050565b6000612f7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613e69565b905092915050565b6000612fc983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d21565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561305f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061492e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061484c6022913960400191505060405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060095490506000600854905060005b600c80549050811015613431578260056000600c848154811061320157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806132e857508160066000600c848154811061328057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561330e57613304600854600954612f3d90919063ffffffff16565b9350505050613488565b61339760056000600c848154811061332257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612f8790919063ffffffff16565b925061342260066000600c84815481106133ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612f8790919063ffffffff16565b915080806001019150506131e2565b50613449600854600954612f3d90919063ffffffff16565b82101561347057613467600854600954612f3d90919063ffffffff16565b92505050613488565b6134838183612f3d90919063ffffffff16565b925050505b90565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806149096025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613597576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806147b76023913960400191505060405180910390fd5b600081116135f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806148b76029913960400191505060405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806136915750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061369e57506015548111155b613710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4d6178205472616e73666572204c696d6974204578636565647321000000000081525060200191505060405180910390fd5b601460029054906101000a900460ff1680156137395750601460019054906101000a900460ff16155b80156137935750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156137a1576137a0613f2f565b5b600081905060006137b06131d0565b9050601460009054906101000a900460ff1680156138185750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561386e5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138875750601460019054906101000a900460ff16155b1561399757613994858483601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415801561398f5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6143ca565b91505b6139fb6139ad8285612eb790919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613aa2613a548284612eb790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613bcd57613b8983600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f8790919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613cb557613c7182600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050565b6000838311158290613dce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d93578082015181840152602081019050613d78565b50505050905090810190601f168015613dc05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015613e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083118290613f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eda578082015181840152602081019050613ebf565b50505050905090810190601f168015613f075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613f2157fe5b049050809150509392505050565b6001601460016101000a81548160ff0219169083151502179055506000613f63601254601354613de190919063ffffffff16565b9050806016541115613f7557506143ad565b6060600267ffffffffffffffff81118015613f8f57600080fd5b50604051908082528060200260200182016040528015613fbe5781602001602082028036833780820191505090505b5090503081600081518110613fcf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561407157600080fd5b505afa158015614085573d6000803e3d6000fd5b505050506040513d602081101561409b57600080fd5b8101908080519060200190929190505050816001815181106140b957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600047905061412530601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685612fd9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156141e95780820151818401526020810190506141ce565b505050509050019650505050505050600060405180830381600087803b15801561421257600080fd5b505af1158015614226573d6000803e3d6000fd5b50505050600061423f8247612f8790919063ffffffff16565b9050600061426a8561425c60125485612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905060008111156142df57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156142dd573d6000803e3d6000fd5b505b6000479050600081111561435757601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015614355573d6000803e3d6000fd5b505b600060128190555060006013819055507f015fc8ee969fd902d9ebd12a31c54446400a2b512a405366fe14defd6081d2208684604051808381526020018281526020019250505060405180910390a15050505050505b6000601460016101000a81548160ff021916908315150217905550565b6000808590506000806143fb856143ef57866143e75760006143ea565b60015b6143f2565b60025b60ff1689614683565b91509150600081146146115761441a8184612f8790919063ffffffff16565b92506144806144328883612eb790919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156145ab5761456781600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613de190919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b3073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b600082146146475761464061462f8884612eb790919063ffffffff16565b600954612f8790919063ffffffff16565b6009819055505b61466e8161466084601154613de190919063ffffffff16565b613de190919063ffffffff16565b60118190555082935050505095945050505050565b60008060006146cc6002600d5401600a0a6146be600e88815481106146a457fe5b906000526020600020015487612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905060006147146002600d5401600a0a614706601089815481106146ec57fe5b906000526020600020015488612eb790919063ffffffff16565b612f3d90919063ffffffff16565b9050600061475c6002600d5401600a0a61474e600f8a8154811061473457fe5b906000526020600020015489612eb790919063ffffffff16565b612f3d90919063ffffffff16565b905061477382601254613de190919063ffffffff16565b60128190555061478e81601354613de190919063ffffffff16565b601381905550826147a88284613de190919063ffffffff16565b94509450505050925092905056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a204163636f756e7420697320616c7265616479206578636c75646564416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a2057652063616e206e6f74206578636c75646520556e697377617020726f757465722e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a204163636f756e7420697320616c726561647920696e636c7564656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122004b3cb039683da75a00b8e0116d902edcbba73f961f1eb89e6eaa37b74d9bdc964736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003e9cd8f52b6357fdf05117f94181e531fbb2e7e600000000000000000000000091c29a7c1441ac8ec6d220d5e1c43c26bf8af74d000000000000000000000000a0b1d5cc792fc57a81636ec227093dfa3a4f5fab
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _owner (address): 0x3E9CD8f52B6357fdF05117f94181e531FbB2E7E6
Arg [2] : _marketingWallet (address): 0x91c29a7c1441AC8Ec6D220D5e1c43c26Bf8Af74D
Arg [3] : _teamWallet (address): 0xa0B1D5cc792fC57a81636eC227093dfA3a4f5faB
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000003e9cd8f52b6357fdf05117f94181e531fbb2e7e6
Arg [2] : 00000000000000000000000091c29a7c1441ac8ec6d220d5e1c43c26bf8af74d
Arg [3] : 000000000000000000000000a0b1d5cc792fc57a81636ec227093dfa3a4f5fab
Deployed Bytecode Sourcemap
22459:13627:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25500:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26441:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23367:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27696:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35685:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25777:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23265:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26610:407;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27928:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25686:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;35013:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27025:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23398:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34657:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;35932:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23876:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;35571:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23672:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25884:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17174:148;;;;;;;;;;;;;:::i;:::-;;23839:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23711:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16532:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23430:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35191:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25591:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27251:319;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23128:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23949:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26107:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;35371:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;34914:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27578:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26290:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34778:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23591:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23782:48;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35790:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28235:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17477:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28698:489;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23910:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;34495:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25500:83;25537:13;25570:5;25563:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25500:83;:::o;26441:161::-;26516:4;26533:39;26542:12;:10;:12::i;:::-;26556:7;26565:6;26533:8;:39::i;:::-;26590:4;26583:11;;26441:161;;;;:::o;23367:24::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27696:224::-;27767:7;27810:11;;27795;:26;;27787:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27875:37;27891:20;:18;:20::i;:::-;27875:11;:15;;:37;;;;:::i;:::-;27868:44;;27696:224;;;:::o;35685:97::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35768:6:::1;35755:10;;:19;;;;;;;;;;;;;;;;;;35685:97:::0;:::o;25777:99::-;25830:7;25857:11;;25850:18;;25777:99;:::o;23265:30::-;;;;:::o;26610:407::-;26750:4;26767:36;26777:6;26785:9;26796:6;26767:9;:36::i;:::-;26816:171;26839:6;26860:12;:10;:12::i;:::-;26887:89;26925:6;26887:89;;;;;;;;;;;;;;;;;:11;:19;26899:6;26887:19;;;;;;;;;;;;;;;:33;26907:12;:10;:12::i;:::-;26887:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;26816:8;:171::i;:::-;27005:4;26998:11;;26610:407;;;;;:::o;27928:299::-;28004:7;28052:16;;28032;:36;;28024:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28126:19;28148:20;:18;:20::i;:::-;28126:42;;28186:33;28207:11;28186:16;:20;;:33;;;;:::i;:::-;28179:40;;;27928:299;;;:::o;25686:83::-;25727:5;25752:9;;;;;;;;;;;25745:16;;25686:83;:::o;35013:168::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35115:3:::1;35102:7;35110:1;35102:10;;;;;;;;;;;;;;;:16;;;;35142:4;35129:7;35137:1;35129:10;;;;;;;;;;;;;;;:17;;;;35170:3;35157:7;35165:1;35157:10;;;;;;;;;;;;;;;:16;;;;35013:168:::0;;;:::o;27025:218::-;27113:4;27130:83;27139:12;:10;:12::i;:::-;27153:7;27162:50;27201:10;27162:11;:25;27174:12;:10;:12::i;:::-;27162:25;;;;;;;;;;;;;;;:34;27188:7;27162:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;27130:8;:83::i;:::-;27231:4;27224:11;;27025:218;;;;:::o;23398:25::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;34657:113::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34757:5:::1;34736:9;:18;34746:7;34736:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;34657:113:::0;;:::o;35932:114::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36032:6:::1;36010:19;:28;;;;35932:114:::0;:::o;23876:25::-;;;;;;;;;;;;;:::o;35571:106::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35663:6:::1;35645:15;;:24;;;;;;;;;;;;;;;;;;35571:106:::0;:::o;23672:30::-;;;;;;;;;;;;;:::o;25884:215::-;25950:7;25974:11;:20;25986:7;25974:20;;;;;;;;;;;;;;;;;;;;;;;;;25970:55;;;26003:13;:22;26017:7;26003:22;;;;;;;;;;;;;;;;25996:29;;;;25970:55;26043:48;26063:18;:27;26082:7;26063:27;;;;;;;;;;;;;;;;26043:19;:48::i;:::-;26036:55;;25884:215;;;;:::o;17174:148::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17281:1:::1;17244:40;;17265:6;::::0;::::1;;;;;;;;17244:40;;;;;;;;;;;;17312:1;17295:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17174:148::o:0;23839:30::-;;;;;;;;;;;;;:::o;23711:58::-;;;;:::o;16532:79::-;16570:7;16597:6;;;;;;;;;;;16590:13;;16532:79;:::o;23430:30::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35191:172::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35295:3:::1;35281:8;35290:1;35281:11;;;;;;;;;;;;;;;:17;;;;35323:4;35309:8;35318:1;35309:11;;;;;;;;;;;;;;;:18;;;;35352:3;35338:8;35347:1;35338:11;;;;;;;;;;;;;;;:17;;;;35191:172:::0;;;:::o;25591:87::-;25630:13;25663:7;25656:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25591:87;:::o;27251:319::-;27344:4;27361:179;27384:12;:10;:12::i;:::-;27411:7;27433:96;27472:15;27433:96;;;;;;;;;;;;;;;;;:11;:25;27445:12;:10;:12::i;:::-;27433:25;;;;;;;;;;;;;;;:34;27459:7;27433:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;27361:8;:179::i;:::-;27558:4;27551:11;;27251:319;;;;:::o;23128:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;23949:19::-;;;;;;;;;;;;;:::o;26107:175::-;26193:4;26210:42;26220:12;:10;:12::i;:::-;26234:9;26245:6;26210:9;:42::i;:::-;26270:4;26263:11;;26107:175;;;;:::o;35371:192::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35485:3:::1;35466:13;35480:1;35466:16;;;;;;;;;;;;;;;:22;;;;35518:4;35499:13;35513:1;35499:16;;;;;;;;;;;;;;;:23;;;;35552:3;35533:13;35547:1;35533:16;;;;;;;;;;;;;;;:22;;;;35371:192:::0;;;:::o;34914:91::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34992:5:::1;34978:11;;:19;;;;;;;;;;;;;;;;;;34914:91:::0;:::o;27578:110::-;27636:4;27660:11;:20;27672:7;27660:20;;;;;;;;;;;;;;;;;;;;;;;;;27653:27;;27578:110;;;:::o;26290:143::-;26371:7;26398:11;:18;26410:5;26398:18;;;;;;;;;;;;;;;:27;26417:7;26398:27;;;;;;;;;;;;;;;;26391:34;;26290:143;;;;:::o;34778:128::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34860:7:::1;34846:11;;:21;;;;;;;;;;;;;;;;;;34878:20;34890:7;34878:20;;;;;;;;;;;;;;;;;;;;34778:128:::0;:::o;23591:30::-;;;;;;;;;;;;;:::o;23782:48::-;;;;:::o;35790:134::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35878:38:::1;35910:5;35878:27;35894:10;35878:11;;:15;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;35864:11;:52;;;;35790:134:::0;:::o;28235:455::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28331:6:::1;;;;;;;;;;;28312:26;;:7;:26;;;;28304:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28404:11;:20;28416:7;28404:20;;;;;;;;;;;;;;;;;;;;;;;;;28403:21;28395:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28508:1;28478:18;:27;28497:7;28478:27;;;;;;;;;;;;;;;;:31;28474:137;;;28551:48;28571:18;:27;28590:7;28571:27;;;;;;;;;;;;;;;;28551:19;:48::i;:::-;28526:13;:22;28540:7;28526:22;;;;;;;;;;;;;;;:73;;;;28474:137;28644:4;28621:11;:20;28633:7;28621:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;28659:9;28674:7;28659:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28235:455:::0;:::o;17477:244::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17586:1:::1;17566:22;;:8;:22;;;;17558:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:8;17647:38;;17668:6;::::0;::::1;;;;;;;;17647:38;;;;;;;;;;;;17705:8;17696:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17477:244:::0;:::o;28698:489::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28777:11:::1;:20;28789:7;28777:20;;;;;;;;;;;;;;;;;;;;;;;;;28769:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28852:9;28847:333;28871:9;:16;;;;28867:1;:20;28847:333;;;28929:7;28913:23;;:9;28923:1;28913:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;28909:260;;;28972:9;29001:1;28982:9;:16;;;;:20;28972:31;;;;;;;;;;;;;;;;;;;;;;;;;28957:9;28967:1;28957:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;29047:1;29022:13;:22;29036:7;29022:22;;;;;;;;;;;;;;;:26;;;;29090:5;29067:11;:20;29079:7;29067:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;29114:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29148:5;;28909:260;28889:3;;;;;;;28847:333;;;;28698:489:::0;:::o;23910:32::-;;;;;;;;;;;;;:::o;34495:154::-;16754:12;:10;:12::i;:::-;16744:22;;:6;;;;;;;;;;:22;;;16736:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34609:5:::1;34602:4;;:12;;;;;;;;;;;;;;;;;;34634:7;34625:6;;:16;;;;;;;;;;;;;;;;;;34495:154:::0;;:::o;6016:471::-;6074:7;6324:1;6319;:6;6315:47;;;6349:1;6342:8;;;;6315:47;6374:9;6390:1;6386;:5;6374:17;;6419:1;6414;6410;:5;;;;;;:10;6402:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6478:1;6471:8;;;6016:471;;;;;:::o;6963:132::-;7021:7;7048:39;7052:1;7055;7048:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7041:46;;6963:132;;;;:::o;5092:136::-;5150:7;5177:43;5181:1;5184;5177:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5170:50;;5092:136;;;;:::o;687:106::-;740:15;775:10;768:17;;687:106;:::o;29195:371::-;29339:1;29322:19;;:5;:19;;;;29314:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29420:1;29401:21;;:7;:21;;;;29393:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29504:6;29474:11;:18;29486:5;29474:18;;;;;;;;;;;;;;;:27;29493:7;29474:27;;;;;;;;;;;;;;;:36;;;;29542:7;29526:32;;29535:5;29526:32;;;29551:6;29526:32;;;;;;;;;;;;;;;;;;29195:371;;;:::o;33756:731::-;33808:7;33828:24;33855:16;;33828:43;;33882:19;33904:11;;33882:33;;33931:9;33926:394;33950:9;:16;;;;33946:1;:20;33926:394;;;34027:16;33992:18;:32;34011:9;34021:1;34011:12;;;;;;;;;;;;;;;;;;;;;;;;;33992:32;;;;;;;;;;;;;;;;:51;:96;;;;34077:11;34047:13;:27;34061:9;34071:1;34061:12;;;;;;;;;;;;;;;;;;;;;;;;;34047:27;;;;;;;;;;;;;;;;:41;33992:96;33988:159;;;34114:33;34135:11;;34114:16;;:20;;:33;;;;:::i;:::-;34107:40;;;;;;;33988:159;34181:54;34202:18;:32;34221:9;34231:1;34221:12;;;;;;;;;;;;;;;;;;;;;;;;;34202:32;;;;;;;;;;;;;;;;34181:16;:20;;:54;;;;:::i;:::-;34162:73;;34264:44;34280:13;:27;34294:9;34304:1;34294:12;;;;;;;;;;;;;;;;;;;;;;;;;34280:27;;;;;;;;;;;;;;;;34264:11;:15;;:44;;;;:::i;:::-;34250:58;;33968:3;;;;;;;33926:394;;;;34353:33;34374:11;;34353:16;;:20;;:33;;;;:::i;:::-;34334:16;:52;34330:98;;;34395:33;34416:11;;34395:16;;:20;;:33;;;;:::i;:::-;34388:40;;;;;;34330:98;34446:33;34467:11;34446:16;:20;;:33;;;;:::i;:::-;34439:40;;;;33756:731;;:::o;29574:1490::-;29723:1;29705:20;;:6;:20;;;;29697:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29807:1;29786:23;;:9;:23;;;;29778:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29877:1;29868:6;:10;29860:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29945:9;:17;29955:6;29945:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;29966:9;:20;29976:9;29966:20;;;;;;;;;;;;;;;;;;;;;;;;;29945:41;:66;;;;30000:11;;29990:6;:21;;29945:66;29937:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30060:11;;;;;;;;;;;:22;;;;;30076:6;;;;;;;;;;;30075:7;30060:22;:40;;;;;30096:4;;;;;;;;;;;30086:14;;:6;:14;;;;30060:40;30056:79;;;30117:6;:4;:6::i;:::-;30056:79;30147:22;30172:6;30147:31;;30189:12;30204:20;:18;:20::i;:::-;30189:35;;30241:11;;;;;;;;;;;:33;;;;;30257:9;:17;30267:6;30257:17;;;;;;;;;;;;;;;;;;;;;;;;;30256:18;30241:33;:58;;;;;30279:9;:20;30289:9;30279:20;;;;;;;;;;;;;;;;;;;;;;;;;30278:21;30241:58;:69;;;;;30304:6;;;;;;;;;;;30303:7;30241:69;30237:207;;;30344:88;30355:6;30363;30371:4;30390;;;;;;;;;;;30377:17;;:9;:17;;;30406:4;;;;;;;;;;;30396:14;;:6;:14;;;;:35;;;;;30427:4;;;;;;;;;;;30414:17;;:9;:17;;;;30396:35;30344:10;:88::i;:::-;30327:105;;30237:207;30516:48;30547:16;30558:4;30547:6;:10;;:16;;;;:::i;:::-;30516:18;:26;30535:6;30516:26;;;;;;;;;;;;;;;;:30;;:48;;;;:::i;:::-;30487:18;:26;30506:6;30487:26;;;;;;;;;;;;;;;:77;;;;30607:59;30641:24;30660:4;30641:14;:18;;:24;;;;:::i;:::-;30607:18;:29;30626:9;30607:29;;;;;;;;;;;;;;;;:33;;:59;;;;:::i;:::-;30575:18;:29;30594:9;30575:29;;;;;;;;;;;;;;;:91;;;;30755:11;:19;30767:6;30755:19;;;;;;;;;;;;;;;;;;;;;;;;;30751:109;;;30815:33;30841:6;30815:13;:21;30829:6;30815:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;30791:13;:21;30805:6;30791:21;;;;;;;;;;;;;;;:57;;;;30751:109;30874:11;:22;30886:9;30874:22;;;;;;;;;;;;;;;;;;;;;;;;;30870:126;;;30940:44;30969:14;30940:13;:24;30954:9;30940:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;30913:13;:24;30927:9;30913:24;;;;;;;;;;;;;;;:71;;;;30870:126;31030:9;31013:43;;31022:6;31013:43;;;31041:14;31013:43;;;;;;;;;;;;;;;;;;29574:1490;;;;;:::o;5531:226::-;5651:7;5684:1;5679;:6;;5687:12;5671:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5711:9;5727:1;5723;:5;5711:17;;5748:1;5741:8;;;5531:226;;;;;:::o;4628:181::-;4686:7;4706:9;4722:1;4718;:5;4706:17;;4747:1;4742;:6;;4734:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4800:1;4793:8;;;4628:181;;;;:::o;7591:312::-;7711:7;7743:1;7739;:5;7746:12;7731:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7770:9;7786:1;7782;:5;;;;;;7770:17;;7894:1;7887:8;;;7591:312;;;;;:::o;32596:1152::-;24111:4;24102:6;;:13;;;;;;;;;;;;;;;;;;32643:16:::1;32662:45;32684:22;;32662:17;;:21;;:45;;;;:::i;:::-;32643:64;;32745:8;32723:19;;:30;32720:42;;;32755:7;;;32720:42;32774:25;32816:1;32802:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32774:44;;32851:4;32829:8;32838:1;32829:11;;;;;;;;;;;;;:27;;;;;;;;;::::0;::::1;32881:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;32867:8;32876:1;32867:11;;;;;;;;;;;;;:27;;;;;;;;;::::0;::::1;32914:21;32938;32914:45;;32972:50;32989:4;33004:6;;;;;;;;;;;33013:8;32972;:50::i;:::-;33033:6;;;;;;;;;;;:57;;;33105:8;33128:1;33144:8;33175:4;33195:15;33033:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;33234:17;33254:40;33280:13;33254:21;:25;;:40;;;;:::i;:::-;33234:60;;33315:23;33341:51;33383:8;33341:37;33355:22;;33341:9;:13;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;33315:77;;33424:1;33406:15;:19;33403:74;;;33435:15;;;;;;;;;;;33427:33;;:50;33461:15;33427:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;33403:74;33490:18;33511:21;33490:42;;33559:1;33546:10;:14;33543:75;;;33570:15;;;;;;;;;;;33562:33;;:56;33596:21;33562:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;33543:75;33664:1;33639:22;:26;;;;33696:1;33676:17;:21;;;;33715:25;33720:8;33730:9;33715:25;;;;;;;;;;;;;;;;;;;;;;;;24126:1;;;;;;;24147:5:::0;24138:6;;:14;;;;;;;;;;;;;;;;;;32596:1152::o;31645:943::-;31802:7;31822:22;31847:6;31822:31;;31867:14;31883:16;31903:44;31916:3;:22;;31926:4;:12;;31937:1;31926:12;;;31933:1;31926:12;31916:22;;;31922:1;31916:22;31903:44;;31940:6;31903:12;:44::i;:::-;31866:81;;;;31973:1;31961:8;:13;31958:424;;32018:28;32037:8;32018:14;:18;;:28;;;;:::i;:::-;32001:45;;32097:57;32135:18;32148:4;32135:8;:12;;:18;;;;:::i;:::-;32097;:33;32124:4;32097:33;;;;;;;;;;;;;;;;:37;;:57;;;;:::i;:::-;32061:18;:33;32088:4;32061:33;;;;;;;;;;;;;;;:93;;;;32173:11;:26;32193:4;32173:26;;;;;;;;;;;;;;;;;;;;;;;;;32169:140;;;32251:42;32284:8;32251:13;:28;32273:4;32251:28;;;;;;;;;;;;;;;;:32;;:42;;;;:::i;:::-;32220:13;:28;32242:4;32220:28;;;;;;;;;;;;;;;:73;;;;32169:140;32354:4;32328:42;;32337:7;32328:42;;;32361:8;32328:42;;;;;;;;;;;;;;;;;;31958:424;32405:1;32395:6;:11;32392:99;;32441:38;32462:16;32473:4;32462:6;:10;;:16;;;;:::i;:::-;32441;;:20;;:38;;;;:::i;:::-;32422:16;:57;;;;32392:99;32513:35;32539:8;32513:21;32527:6;32513:9;;:13;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;32501:9;:47;;;;32566:14;32559:21;;;;;31645:943;;;;;;;:::o;31072:565::-;31145:7;31154;31174:14;31191:56;31244:1;31230:11;;:15;31225:2;:21;31191:29;31202:7;31210:8;31202:17;;;;;;;;;;;;;;;;31191:6;:10;;:29;;;;:::i;:::-;:33;;:56;;;;:::i;:::-;31174:73;;31258:20;31281:62;31340:1;31326:11;;:15;31321:2;:21;31281:35;31292:13;31306:8;31292:23;;;;;;;;;;;;;;;;31281:6;:10;;:35;;;;:::i;:::-;:39;;:62;;;;:::i;:::-;31258:85;;31354:15;31372:57;31426:1;31412:11;;:15;31407:2;:21;31372:30;31383:8;31392;31383:18;;;;;;;;;;;;;;;;31372:6;:10;;:30;;;;:::i;:::-;:34;;:57;;;;:::i;:::-;31354:75;;31475:40;31502:12;31475:22;;:26;;:40;;;;:::i;:::-;31450:22;:65;;;;31546:30;31568:7;31546:17;;:21;;:30;;;;:::i;:::-;31526:17;:50;;;;31595:6;31603:25;31620:7;31603:12;:16;;:25;;;;:::i;:::-;31587:42;;;;;;;31072:565;;;;;:::o
Swarm Source
ipfs://04b3cb039683da75a00b8e0116d902edcbba73f961f1eb89e6eaa37b74d9bdc9
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.