ERC-20
MEME
Overview
Max Total Supply
1,000,000,000,000 GBTK
Holders
222 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
691,063,321.529291847 GBTKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GalacticBunny
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-26 */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { 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; } function geUnlockTime() public view returns (uint256) { return _lockTime; } //Locks the contract for owner for the amount of time provided function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } //Unlocks the contract for owner when _lockTime is exceeds function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } interface IERC20 { 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); } } } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract GalacticBunny is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000000 * (10**9); uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isExcludedFromAntiWhale; string private _name = "GALACTIC BUNNY"; string private _symbol = "GBTK"; uint8 private _decimals = 9; uint256 public _taxFee = 1; uint256 private _previousTaxFee = _taxFee; uint256 public _liquidityFee = 2; uint256 private _previousLiquidityFee = _liquidityFee; bool public launchAddLiquidity = false; uint256 public launchTime = 0; uint256 public timeDetectBotSeconds = 2; uint256 public timeAntiBot = 60 * timeDetectBotSeconds; mapping(address => bool) _isBot; address public deadAddress = 0x000000000000000000000000000000000000dEaD; bool private enableAntiwhale = true; uint256 public _devFee = 2; address public devWallet = 0x8D3c47ba0DA7D0dAEeB92fD40b3BF5Eb5CA1DA42; address public marketingWallet = 0x85BBc0cd8438E54E38Aa310d395303312f089D0F; uint256 public _marketingFee = 8; uint256 public _botIncreaseFee = 3; uint256 private _previousMarketingFee = _marketingFee; uint256 private _previousDevFee = _devFee; uint256 public totalFeesTax = _taxFee.add(_liquidityFee).add(_devFee).add(_marketingFee); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public antibotSystemEnable = true; uint public maxTransferAmountRate = 500; bool private inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public numTokensSellToAddToLiquidity = 1000000000 * 10**9; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); constructor(address _newOwner) { transferOwnership(_newOwner); _rOwned[owner()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[devWallet] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromAntiWhale[msg.sender] = true; _isExcludedFromAntiWhale[address(0)] = true; _isExcludedFromAntiWhale[address(this)] = true; _isExcludedFromAntiWhale[deadAddress] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function setBotSettingTime(uint256 _val) public onlyOwner { require(launchTime == 0 && _val <= 5, "Already launched or max 5 minuts."); timeDetectBotSeconds = _val; timeAntiBot = 60 * _val; } function excludeAntibot(address ac) public onlyOwner { require(_isBot[ac], "not bot"); _isBot[ac] = false; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function setAntiBotSystemEnable(bool _status) public onlyOwner { require(launchTime == 0, "Already launched, not necessary."); antibotSystemEnable = _status; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function setBotFeeMultiplicator(uint256 _val) public onlyOwner { require(_val <= 3 && launchTime == 0, "max x3 and not launched"); _botIncreaseFee = _val; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function isExcludedFromAntiWhale(address account) public view returns(bool) { return _isExcludedFromAntiWhale[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate()); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) { uint256 tFee = calculateTaxFee(tAmount); uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity); return (tTransferAmount, tFee, tLiquidity); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeLiquidity(uint256 tLiquidity) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity); if(_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div( 10**2 ); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_liquidityFee).div( 10**2 ); } function removeAllFee() private { if(_taxFee == 0 && _liquidityFee == 0 && _devFee ==0 && _marketingFee == 0) return; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _previousDevFee = _devFee; _previousMarketingFee = _marketingFee; _taxFee = 0; _marketingFee = 0; _liquidityFee = 0; _devFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _liquidityFee = _previousLiquidityFee; _devFee = _previousDevFee; _marketingFee = _previousMarketingFee; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function isBot(address acc) public view returns(bool) { return _isBot[acc]; } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (to == uniswapV2Pair) { if(!launchAddLiquidity && launchTime == 0) { launchAddLiquidity = true; launchTime = block.timestamp; } } if(launchTime > 0) { if(block.timestamp - launchTime <= timeAntiBot && from == uniswapV2Pair) { _isBot[to] = true; } } // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap + liquidity lock? // also, don't get caught in a circular liquidity event. // also, don't swap & liquify if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { inSwapAndLiquify = true; contractTokenBalance = numTokensSellToAddToLiquidity; //add liquidity uint256 totalTaxForSwap = _liquidityFee.add(_marketingFee).add(_devFee); if (_marketingFee > 0) { uint256 marketingTokens = contractTokenBalance.mul(_marketingFee).div(totalTaxForSwap); swapAndSendMarketing(marketingTokens); } if(_devFee > 0) { uint256 tokensForDev = contractTokenBalance.mul(_devFee).div(totalTaxForSwap); swapAndSendDev(tokensForDev); } swapAndLiquify(contractTokenBalance.mul(_liquidityFee).div(totalTaxForSwap)); inSwapAndLiquify = false; } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from,to,amount); } function swapAndSendMarketing(uint256 tokens) internal { uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(tokens); uint256 newBalance = address(this).balance.sub(initialBalance); (bool success,) = address(marketingWallet).call{value: newBalance}(""); if (success) { } } function swapAndSendDev(uint256 tokens) internal { uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(tokens); uint256 newBalance = address(this).balance.sub(initialBalance); (bool success,) = address(devWallet).call{value: newBalance}(""); if (success) { } } function swapAndLiquify(uint256 contractTokenBalance) private { // split the contract balance into halves uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); // capture the contract's current ETH balance. // this is so that we can capture exactly the amount of ETH that the // swap creates, and not make the liquidity event include any ETH that // has been manually sent to the contract uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); // add liquidity to uniswap addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function setBotFees() private { if(_taxFee == 0 && _liquidityFee == 0 && _devFee ==0 && _marketingFee == 0) return; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _previousDevFee = _devFee; _previousMarketingFee = _marketingFee; _taxFee = _previousTaxFee * _botIncreaseFee; _marketingFee = _previousMarketingFee * _botIncreaseFee; _liquidityFee = _previousLiquidityFee * _botIncreaseFee; _devFee = _previousDevFee * _botIncreaseFee; } function setExcludedFromAntiWhale(address account, bool exclude) public onlyOwner { _isExcludedFromAntiWhale[account] = exclude; } function setEnableAntiwhale(bool _val) public onlyOwner { enableAntiwhale = _val; } function maxTransferAmount() public view returns (uint256) { // we can either use a percentage of supply if(maxTransferAmountRate > 0){ return totalSupply().mul(maxTransferAmountRate).div(10000); } // or we can just use default number 1%. return totalSupply().mul(100).div(10000); } function setMaxTransferAmountRate(uint256 _val) public onlyOwner { require(_val <= 500, "max 5%"); maxTransferAmountRate = _val; } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 amount) private { if (enableAntiwhale && maxTransferAmount() > 0) { if ( _isExcludedFromAntiWhale[sender] == false && _isExcludedFromAntiWhale[recipient] == false ) { require(amount <= maxTransferAmount(), "AntiWhale: Transfer amount exceeds the maxTransferAmount"); } } if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { removeAllFee(); } if(_isBot[recipient] || _isBot[sender]) { setBotFees(); } if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if(_isBot[recipient] || _isBot[sender]) { restoreAllFee(); } if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { restoreAllFee(); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); (tTransferAmount, rTransferAmount) = takeDev(sender, tTransferAmount, rTransferAmount, tAmount); (tTransferAmount, rTransferAmount) = takeMarketing(sender, tTransferAmount, rTransferAmount, tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function takeDev(address sender, uint256 tTransferAmount, uint256 rTransferAmount, uint256 tAmount) private returns (uint256, uint256) { if(_devFee==0) { return(tTransferAmount, rTransferAmount); } uint256 tDev = tAmount.div(100).mul(_devFee); uint256 rDev = tDev.mul(_getRate()); rTransferAmount = rTransferAmount.sub(rDev); tTransferAmount = tTransferAmount.sub(tDev); _rOwned[address(this)] = _rOwned[address(this)].add(rDev); emit Transfer(sender, address(this), tDev); return(tTransferAmount, rTransferAmount); } function takeMarketing(address sender, uint256 tTransferAmount, uint256 rTransferAmount, uint256 tAmount) private returns (uint256, uint256) { if(_marketingFee==0) { return(tTransferAmount, rTransferAmount); } uint256 tMarketing = tAmount.div(100).mul(_marketingFee); uint256 rMarketing = tMarketing.mul(_getRate()); rTransferAmount = rTransferAmount.sub(rMarketing); tTransferAmount = tTransferAmount.sub(tMarketing); _rOwned[address(this)] = _rOwned[address(this)].add(rMarketing); emit Transfer(sender, address(this), tMarketing); return(tTransferAmount, rTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function setdevWallet(address newWallet) external onlyOwner() { devWallet = newWallet; } function setMarketingWallet(address newWallet) external onlyOwner() { marketingWallet = newWallet; } function setDevFee(uint256 devFee) external onlyOwner() { _devFee = devFee; totalFeesTax = _taxFee.add(_devFee).add(_marketingFee).add(_liquidityFee); require(totalFeesTax <= 20, "max 20%"); } function setTaxFeePercent(uint256 taxFee) external onlyOwner() { _taxFee = taxFee; totalFeesTax = _taxFee.add(_devFee).add(_marketingFee).add(_liquidityFee); require(totalFeesTax <= 20, "max 20%"); } function setMarketingFee(uint256 marketingF) external onlyOwner { _marketingFee = marketingF; totalFeesTax = _taxFee.add(_devFee).add(_marketingFee).add(_liquidityFee); require(totalFeesTax <= 20, "max 20%"); } function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() { _liquidityFee = liquidityFee; totalFeesTax = _taxFee.add(_devFee).add(_marketingFee).add(_liquidityFee); require(totalFeesTax <= 20, "max 20%"); } function setNumTokensSellToAddToLiquidity(uint256 newAmt) external onlyOwner() { numTokensSellToAddToLiquidity = newAmt*10**9; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_botIncreaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","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":[],"name":"antibotSystemEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ac","type":"address"}],"name":"excludeAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromAntiWhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmountRate","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":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAntiBotSystemEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setBotFeeMultiplicator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setBotSettingTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devFee","type":"uint256"}],"name":"setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setEnableAntiwhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludedFromAntiWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingF","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setMaxTransferAmountRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setdevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeAntiBot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeDetectBotSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006009819055620000219060001962000863565b6200002f906000196200080c565b600a5560408051808201909152600e8082526d47414c41435449432042554e4e5960901b60209092019182526200006991600d91620006fe565b50604080518082019091526004808252634742544b60e01b60209092019182526200009791600e91620006fe565b50600f805460ff19908116600917909155600160108190556011556002601281905560138190556014805490921690915560006015556016819055620000df90603c620007ea565b601755601980547401000000000000000000000000000000000000dead6001600160a81b03199091161790556002601a819055601b80546001600160a01b0319908116738d3c47ba0da7d0daeeb92fd40b3bf5eb5ca1da4217909155601c80549091167385bbc0cd8438e54e38aa310d395303312f089d0f1790556008601d8190556003601e55601f8190556020828155601254601054620001a8946200019493909284929162001cd962000583821b17901c565b6200058360201b62001cd91790919060201c565b6021556023805460ff60a01b1916600160a01b1790556101f46024556025805461ff001916610100179055670de0b6b3a7640000602655348015620001ec57600080fd5b5060405162003e8c38038062003e8c8339810160408190526200020f91620007a4565b600080546001600160a01b0319163390811782556040519091829160008051602062003e6c833981519152908290a3506200024a81620005f1565b600a5460036000620002646000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002db57600080fd5b505afa158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003169190620007a4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035f57600080fd5b505afa15801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a9190620007a4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003e357600080fd5b505af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e9190620007a4565b602380546001600160a01b03199081166001600160a01b039384161790915560228054909116918316919091179055600160066000620004666000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601b548216815260068452828120805486166001908117909155308083528483208054881683179055338352600c90955283822080548716821790557f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e88054871682179055938152828120805486168517905560195490911681522080549092161790556200052b6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200057391815260200190565b60405180910390a350506200089c565b600080620005928385620007cf565b905083811015620005ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b9392505050565b6000546001600160a01b031633146200064d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620005e1565b6001600160a01b038116620006b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005e1565b600080546040516001600160a01b038085169392169160008051602062003e6c83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8280546200070c9062000826565b90600052602060002090601f0160209004810192826200073057600085556200077b565b82601f106200074b57805160ff19168380011785556200077b565b828001600101855582156200077b579182015b828111156200077b5782518255916020019190600101906200075e565b50620007899291506200078d565b5090565b5b808211156200078957600081556001016200078e565b600060208284031215620007b757600080fd5b81516001600160a01b0381168114620005ea57600080fd5b60008219821115620007e557620007e562000886565b500190565b600081600019048311821515161562000807576200080762000886565b500290565b60008282101562000821576200082162000886565b500390565b600181811c908216806200083b57607f821691505b602082108114156200085d57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200088157634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b6135c080620008ac6000396000f3fe6080604052600436106103c75760003560e01c80636bc87c3a116101f2578063a9e757231161010d578063da2d1704116100a0578063f0f165af1161006f578063f0f165af14610b65578063f2fde38b14610b85578063f5feabbd14610ba5578063f60287fe14610bc557600080fd5b8063da2d170414610abf578063dd46706414610adf578063dd62ed3e14610aff578063ea2f0b3714610b4557600080fd5b8063bf60defe116100dc578063bf60defe14610a48578063c49b9a8014610a69578063c7f59a6714610a89578063d12a768814610aa957600080fd5b8063a9e75723146109f2578063aa45026b14610a07578063b6822c1f14610a1d578063b6c5232414610a3357600080fd5b80638da5cb5b1161018557806395f4d0881161015457806395f4d0881461097d578063a457c2d71461099d578063a69df4b5146109bd578063a9059cbb146109d257600080fd5b80638da5cb5b1461090a5780638ea5220f146109285780638ee88c531461094857806395d89b411461096857600080fd5b8063790ca413116101c1578063790ca4131461088157806386ea845914610897578063880ab16a146108b157806388f82020146108d157600080fd5b80636bc87c3a1461081657806370a082311461082c578063715018a61461084c57806375f0a8741461086157600080fd5b806338183e03116102e25780634549b0391161027557806352390c021161024457806352390c021461077d5780635342acb41461079d5780635d098b38146107d6578063625e764c146107f657600080fd5b80634549b039146106fe57806349bd5a5e1461071e5780634a74bb021461073e57806351b056391461075d57600080fd5b80633bd5d173116102b15780633bd5d173146106885780633f8d7732146106a85780633ff8bf2e146106c8578063437823ec146106de57600080fd5b806338183e031461060357806339509351146106195780633b124fe7146106395780633bbac5791461064f57600080fd5b806322976e0d1161035a5780632d838119116103295780632d8381191461058b5780633103a6cf146105ab578063313ce567146105c15780633685d419146105e357600080fd5b806322976e0d146104fc57806323b872dd14610512578063269f534c1461053257806327c8f8351461056b57600080fd5b806313114a9d1161039657806313114a9d146104705780631694505e1461048f57806318160ddd146104c75780631c75b6b2146104dc57600080fd5b8063042fe81a146103d3578063061c82d0146103f557806306fdde0314610415578063095ea7b31461044057600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103f36103ee36600461329b565b610bdb565b005b34801561040157600080fd5b506103f361041036600461329b565b610c4e565b34801561042157600080fd5b5061042a610ce0565b6040516104379190613305565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613254565b610d72565b6040519015158152602001610437565b34801561047c57600080fd5b50600b545b604051908152602001610437565b34801561049b57600080fd5b506022546104af906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b3480156104d357600080fd5b50600954610481565b3480156104e857600080fd5b506103f36104f736600461329b565b610d89565b34801561050857600080fd5b50610481601d5481565b34801561051e57600080fd5b5061046061052d3660046131de565b610dd2565b34801561053e57600080fd5b5061046061054d36600461316b565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561057757600080fd5b506019546104af906001600160a01b031681565b34801561059757600080fd5b506104816105a636600461329b565b610e3b565b3480156105b757600080fd5b5061048160165481565b3480156105cd57600080fd5b50600f5460405160ff9091168152602001610437565b3480156105ef57600080fd5b506103f36105fe36600461316b565b610ebf565b34801561060f57600080fd5b5061048160215481565b34801561062557600080fd5b50610460610634366004613254565b611076565b34801561064557600080fd5b5061048160105481565b34801561065b57600080fd5b5061046061066a36600461316b565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561069457600080fd5b506103f36106a336600461329b565b6110ac565b3480156106b457600080fd5b506103f36106c336600461329b565b611196565b3480156106d457600080fd5b5061048160245481565b3480156106ea57600080fd5b506103f36106f936600461316b565b611222565b34801561070a57600080fd5b506104816107193660046132b4565b611270565b34801561072a57600080fd5b506023546104af906001600160a01b031681565b34801561074a57600080fd5b5060255461046090610100900460ff1681565b34801561076957600080fd5b506103f3610778366004613280565b6112fd565b34801561078957600080fd5b506103f361079836600461316b565b611395565b3480156107a957600080fd5b506104606107b836600461316b565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107e257600080fd5b506103f36107f136600461316b565b6114e8565b34801561080257600080fd5b506103f361081136600461329b565b611534565b34801561082257600080fd5b5061048160125481565b34801561083857600080fd5b5061048161084736600461316b565b611588565b34801561085857600080fd5b506103f36115e7565b34801561086d57600080fd5b50601c546104af906001600160a01b031681565b34801561088d57600080fd5b5061048160155481565b3480156108a357600080fd5b506014546104609060ff1681565b3480156108bd57600080fd5b506103f36108cc366004613280565b611649565b3480156108dd57600080fd5b506104606108ec36600461316b565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561091657600080fd5b506000546001600160a01b03166104af565b34801561093457600080fd5b50601b546104af906001600160a01b031681565b34801561095457600080fd5b506103f361096336600461329b565b611691565b34801561097457600080fd5b5061042a6116da565b34801561098957600080fd5b506103f361099836600461316b565b6116e9565b3480156109a957600080fd5b506104606109b8366004613254565b611735565b3480156109c957600080fd5b506103f3611784565b3480156109de57600080fd5b506104606109ed366004613254565b61188a565b3480156109fe57600080fd5b50610481611897565b348015610a1357600080fd5b50610481601a5481565b348015610a2957600080fd5b50610481601e5481565b348015610a3f57600080fd5b50600254610481565b348015610a5457600080fd5b5060235461046090600160a01b900460ff1681565b348015610a7557600080fd5b506103f3610a84366004613280565b6118dc565b348015610a9557600080fd5b506103f3610aa436600461321f565b61195a565b348015610ab557600080fd5b5061048160265481565b348015610acb57600080fd5b506103f3610ada36600461329b565b6119af565b348015610aeb57600080fd5b506103f3610afa36600461329b565b611a56565b348015610b0b57600080fd5b50610481610b1a3660046131a5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610b5157600080fd5b506103f3610b6036600461316b565b611adb565b348015610b7157600080fd5b506103f3610b8036600461329b565b611b26565b348015610b9157600080fd5b506103f3610ba036600461316b565b611b64565b348015610bb157600080fd5b506103f3610bc036600461316b565b611c3c565b348015610bd157600080fd5b5061048160175481565b6000546001600160a01b03163314610c0e5760405162461bcd60e51b8152600401610c059061335a565b60405180910390fd5b6101f4811115610c495760405162461bcd60e51b81526020600482015260066024820152656d617820352560d01b6044820152606401610c05565b602455565b6000546001600160a01b03163314610c785760405162461bcd60e51b8152600401610c059061335a565b6010819055601254601d54601a54610c9e9291610c989182908690611cd9565b90611cd9565b602181905560141015610cdd5760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610c05565b50565b6060600d8054610cef90613470565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90613470565b8015610d685780601f10610d3d57610100808354040283529160200191610d68565b820191906000526020600020905b815481529060010190602001808311610d4b57829003601f168201915b5050505050905090565b6000610d7f338484611d38565b5060015b92915050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610c059061335a565b601a819055601254601d54601054610c9e9291610c9891829086611cd9565b6000610ddf848484611e5c565b610e318433610e2c8560405180606001604052806028815260200161351e602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906120e5565b611d38565b5060019392505050565b6000600a54821115610ea25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c05565b6000610eac61211f565b9050610eb88382612142565b9392505050565b6000546001600160a01b03163314610ee95760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526007602052604090205460ff16610f515760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c05565b60005b60085481101561107257816001600160a01b031660088281548110610f7b57610f7b6134f2565b6000918252602090912001546001600160a01b031614156110605760088054610fa690600190613459565b81548110610fb657610fb66134f2565b600091825260209091200154600880546001600160a01b039092169183908110610fe257610fe26134f2565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103a5761103a6134dc565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106a816134ab565b915050610f54565b5050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d7f918590610e2c9086611cd9565b3360008181526007602052604090205460ff16156111215760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610c05565b600061112c83612184565b505050506001600160a01b038416600090815260036020526040902054919250611158919050826121d3565b6001600160a01b038316600090815260036020526040902055600a5461117e90826121d3565b600a55600b5461118e9084611cd9565b600b55505050565b6000546001600160a01b031633146111c05760405162461bcd60e51b8152600401610c059061335a565b600381111580156111d15750601554155b61121d5760405162461bcd60e51b815260206004820152601760248201527f6d617820783320616e64206e6f74206c61756e636865640000000000000000006044820152606401610c05565b601e55565b6000546001600160a01b0316331461124c5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60006009548311156112c45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610c05565b816112e35760006112d484612184565b50939550610d83945050505050565b60006112ee84612184565b50929550610d83945050505050565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610c059061335a565b601554156113775760405162461bcd60e51b815260206004820181905260248201527f416c7265616479206c61756e636865642c206e6f74206e65636573736172792e6044820152606401610c05565b60238054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146113bf5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526007602052604090205460ff16156114285760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c05565b6001600160a01b03811660009081526003602052604090205415611482576001600160a01b03811660009081526003602052604090205461146890610e3b565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146115125760405162461bcd60e51b8152600401610c059061335a565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610c059061335a565b80601d81905550610c9e601254610c98601d54610c98601a54601054611cd990919063ffffffff16565b6001600160a01b03811660009081526007602052604081205460ff16156115c557506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610d8390610e3b565b6000546001600160a01b031633146116115760405162461bcd60e51b8152600401610c059061335a565b600080546040516001600160a01b0390911690600080516020613546833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146116735760405162461bcd60e51b8152600401610c059061335a565b60198054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146116bb5760405162461bcd60e51b8152600401610c059061335a565b6012819055601d54601a54601054610c9e928492610c98928391611cd9565b6060600e8054610cef90613470565b6000546001600160a01b031633146117135760405162461bcd60e51b8152600401610c059061335a565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d7f3384610e2c85604051806060016040528060258152602001613566602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906120e5565b6001546001600160a01b031633146117ea5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610c05565b600254421161183b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c05565b600154600080546040516001600160a01b03938416939091169160008051602061354683398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610d7f338484611e5c565b602454600090156118c8576118c36127106118bd6024546118b760095490565b90612215565b90612142565b905090565b6118c36127106118bd60646118b760095490565b6000546001600160a01b031633146119065760405162461bcd60e51b8152600401610c059061335a565b602580548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061194f90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119d95760405162461bcd60e51b8152600401610c059061335a565b6015541580156119ea575060058111155b611a405760405162461bcd60e51b815260206004820152602160248201527f416c7265616479206c61756e63686564206f72206d61782035206d696e7574736044820152601760f91b6064820152608401610c05565b6016819055611a5081603c61343a565b60175550565b6000546001600160a01b03163314611a805760405162461bcd60e51b8152600401610c059061335a565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611aaf8142613400565b600255600080546040516001600160a01b0390911690600080516020613546833981519152908390a350565b6000546001600160a01b03163314611b055760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314611b505760405162461bcd60e51b8152600401610c059061335a565b611b5e81633b9aca0061343a565b60265550565b6000546001600160a01b03163314611b8e5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b038116611bf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c05565b600080546040516001600160a01b038085169392169160008051602061354683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c665760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526018602052604090205460ff16611cb85760405162461bcd60e51b81526020600482015260076024820152661b9bdd08189bdd60ca1b6044820152606401610c05565b6001600160a01b03166000908152601860205260409020805460ff19169055565b600080611ce68385613400565b905083811015610eb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c05565b6001600160a01b038316611d9a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c05565b6001600160a01b038216611dfb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c05565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ec05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c05565b60008111611f225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c05565b6023546001600160a01b0383811691161415611f625760145460ff16158015611f4b5750601554155b15611f62576014805460ff19166001179055426015555b60155415611fbe57601754601554611f7a9042613459565b11158015611f9557506023546001600160a01b038481169116145b15611fbe576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6000611fc930611588565b60265490915081108015908190611fe3575060255460ff16155b8015611ffd57506023546001600160a01b03868116911614155b80156120105750602554610100900460ff165b156120d3576025805460ff19166001179055602654601a54601d546012549294506000926120439291610c989190611cd9565b601d5490915015612076576000612069826118bd601d548761221590919063ffffffff16565b905061207481612294565b505b601a54156120a6576000612099826118bd601a548761221590919063ffffffff16565b90506120a481612310565b505b6120c76120c2826118bd6012548761221590919063ffffffff16565b612345565b506025805460ff191690555b6120de8585856123cc565b5050505050565b600081848411156121095760405162461bcd60e51b8152600401610c059190613305565b5060006121168486613459565b95945050505050565b600080600061212c612768565b909250905061213b8282612142565b9250505090565b6000610eb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128ea565b600080600080600080600080600061219b8a612918565b92509250925060008060006121b98d86866121b461211f565b61295a565b919f909e50909c50959a5093985091965092945050505050565b6000610eb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b60008261222457506000610d83565b6000612230838561343a565b90508261223d8583613418565b14610eb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c05565b4761229e826129aa565b60006122aa47836121d3565b601c546040519192506000916001600160a01b039091169083905b60006040518083038185875af1925050503d8060008114612302576040519150601f19603f3d011682016040523d82523d6000602084013e612307565b606091505b50505050505050565b4761231a826129aa565b600061232647836121d3565b601b546040519192506000916001600160a01b039091169083906122c5565b6000612352826002612142565b9050600061236083836121d3565b90504761236c836129aa565b600061237847836121d3565b90506123848382612b13565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b601954600160a01b900460ff1680156123ec575060006123ea611897565b115b156124b5576001600160a01b0383166000908152600c602052604090205460ff1615801561243357506001600160a01b0382166000908152600c602052604090205460ff16155b156124b557612440611897565b8111156124b55760405162461bcd60e51b815260206004820152603860248201527f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560448201527f647320746865206d61785472616e73666572416d6f756e7400000000000000006064820152608401610c05565b6001600160a01b03831660009081526006602052604090205460ff16806124f457506001600160a01b03821660009081526006602052604090205460ff165b1561250157612501612bcf565b6001600160a01b03821660009081526018602052604090205460ff168061254057506001600160a01b03831660009081526018602052604090205460ff165b1561254d5761254d612c2a565b6001600160a01b03831660009081526007602052604090205460ff16801561258e57506001600160a01b03821660009081526007602052604090205460ff16155b156125a35761259e838383612cbd565b6126a1565b6001600160a01b03831660009081526007602052604090205460ff161580156125e457506001600160a01b03821660009081526007602052604090205460ff165b156125f45761259e838383612de3565b6001600160a01b03831660009081526007602052604090205460ff1615801561263657506001600160a01b03821660009081526007602052604090205460ff16155b156126465761259e838383612e8c565b6001600160a01b03831660009081526007602052604090205460ff16801561268657506001600160a01b03821660009081526007602052604090205460ff165b156126965761259e838383612eef565b6126a1838383612e8c565b6001600160a01b03821660009081526018602052604090205460ff16806126e057506001600160a01b03831660009081526018602052604090205460ff165b1561270257612702601154601055601354601255602054601a55601f54601d55565b6001600160a01b03831660009081526006602052604090205460ff168061274157506001600160a01b03821660009081526006602052604090205460ff165b1561276357612763601154601055601354601255602054601a55601f54601d55565b505050565b600a546009546000918291825b6008548110156128ba57826003600060088481548110612797576127976134f2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061280257508160046000600884815481106127db576127db6134f2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561281857600a54600954945094505050509091565b61285e6003600060088481548110612832576128326134f2565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906121d3565b92506128a6600460006008848154811061287a5761287a6134f2565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906121d3565b9150806128b2816134ab565b915050612775565b50600954600a546128ca91612142565b8210156128e157600a546009549350935050509091565b90939092509050565b6000818361290b5760405162461bcd60e51b8152600401610c059190613305565b5060006121168486613418565b60008060008061292785612f62565b9050600061293486612f7e565b9050600061294c8261294689866121d3565b906121d3565b979296509094509092505050565b60008080806129698886612215565b905060006129778887612215565b905060006129858888612215565b905060006129978261294686866121d3565b939b939a50919850919650505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129df576129df6134f2565b6001600160a01b03928316602091820292909201810191909152602254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612a3357600080fd5b505afa158015612a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6b9190613188565b81600181518110612a7e57612a7e6134f2565b6001600160a01b039283166020918202929092010152602254612aa49130911684611d38565b60225460405163791ac94760e01b81526001600160a01b039091169063791ac94790612add90859060009086903090429060040161338f565b600060405180830381600087803b158015612af757600080fd5b505af1158015612b0b573d6000803e3d6000fd5b505050505050565b602254612b2b9030906001600160a01b031684611d38565b60225460195460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015612b9657600080fd5b505af1158015612baa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120de91906132d7565b601054158015612bdf5750601254155b8015612beb5750601a54155b8015612bf75750601d54155b15612bfe57565b6010805460115560128054601355601a8054602055601d8054601f556000938490558390559082905555565b601054158015612c3a5750601254155b8015612c465750601a54155b8015612c525750601d54155b15612c5957565b6010546011819055601254601355601a54602055601d54601f55601e54612c7f9161343a565b601055601e54601f54612c92919061343a565b601d55601e54601354612ca5919061343a565b601255601e54602054612cb8919061343a565b601a55565b600080600080600080612ccf87612184565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612d0190886121d3565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054612d3090876121d3565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054612d5f9086611cd9565b6001600160a01b038916600090815260036020526040902055612d8181612f9a565b612d8b8483613022565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dd091815260200190565b60405180910390a3505050505050505050565b600080600080600080612df587612184565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150612e2790876121d3565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054612e5d9084611cd9565b6001600160a01b038916600090815260046020908152604080832093909355600390522054612d5f9086611cd9565b600080600080600080612e9e87612184565b955095509550955095509550612eb68984878a613046565b95509250612ec68984878a613129565b6001600160a01b038b16600090815260036020526040902054909650909350612d3090876121d3565b600080600080600080612f0187612184565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612f3390886121d3565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054612e2790876121d3565b6000610d8360646118bd6010548561221590919063ffffffff16565b6000610d8360646118bd6012548561221590919063ffffffff16565b6000612fa461211f565b90506000612fb28383612215565b30600090815260036020526040902054909150612fcf9082611cd9565b3060009081526003602090815260408083209390935560079052205460ff1615612763573060009081526004602052604090205461300d9084611cd9565b30600090815260046020526040902055505050565b600a5461302f90836121d3565b600a55600b5461303f9082611cd9565b600b555050565b600080601a546000141561305e575083905082613120565b601a54600090613073906118b7866064612142565b9050600061308961308261211f565b8390612215565b905061309586826121d3565b95506130a187836121d3565b306000908152600360205260409020549097506130be9082611cd9565b30600081815260036020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061310f9086815260200190565b60405180910390a386869350935050505b94509492505050565b600080601d5460001415613141575083905082613120565b601d54600090613073906118b7866064612142565b8035801515811461316657600080fd5b919050565b60006020828403121561317d57600080fd5b8135610eb881613508565b60006020828403121561319a57600080fd5b8151610eb881613508565b600080604083850312156131b857600080fd5b82356131c381613508565b915060208301356131d381613508565b809150509250929050565b6000806000606084860312156131f357600080fd5b83356131fe81613508565b9250602084013561320e81613508565b929592945050506040919091013590565b6000806040838503121561323257600080fd5b823561323d81613508565b915061324b60208401613156565b90509250929050565b6000806040838503121561326757600080fd5b823561327281613508565b946020939093013593505050565b60006020828403121561329257600080fd5b610eb882613156565b6000602082840312156132ad57600080fd5b5035919050565b600080604083850312156132c757600080fd5b8235915061324b60208401613156565b6000806000606084860312156132ec57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561333257858101830151858201604001528201613316565b81811115613344576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133df5784516001600160a01b0316835293830193918301916001016133ba565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115613413576134136134c6565b500190565b60008261343557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613454576134546134c6565b500290565b60008282101561346b5761346b6134c6565b500390565b600181811c9082168061348457607f821691505b602082108114156134a557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156134bf576134bf6134c6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610cdd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b7b32778b77eb6296d8a3b403029cff563646daeb217da34255f3508bfe73c9964736f6c634300080700338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000182f480769f18779814ae4d69ec20fc9bca83b17
Deployed Bytecode
0x6080604052600436106103c75760003560e01c80636bc87c3a116101f2578063a9e757231161010d578063da2d1704116100a0578063f0f165af1161006f578063f0f165af14610b65578063f2fde38b14610b85578063f5feabbd14610ba5578063f60287fe14610bc557600080fd5b8063da2d170414610abf578063dd46706414610adf578063dd62ed3e14610aff578063ea2f0b3714610b4557600080fd5b8063bf60defe116100dc578063bf60defe14610a48578063c49b9a8014610a69578063c7f59a6714610a89578063d12a768814610aa957600080fd5b8063a9e75723146109f2578063aa45026b14610a07578063b6822c1f14610a1d578063b6c5232414610a3357600080fd5b80638da5cb5b1161018557806395f4d0881161015457806395f4d0881461097d578063a457c2d71461099d578063a69df4b5146109bd578063a9059cbb146109d257600080fd5b80638da5cb5b1461090a5780638ea5220f146109285780638ee88c531461094857806395d89b411461096857600080fd5b8063790ca413116101c1578063790ca4131461088157806386ea845914610897578063880ab16a146108b157806388f82020146108d157600080fd5b80636bc87c3a1461081657806370a082311461082c578063715018a61461084c57806375f0a8741461086157600080fd5b806338183e03116102e25780634549b0391161027557806352390c021161024457806352390c021461077d5780635342acb41461079d5780635d098b38146107d6578063625e764c146107f657600080fd5b80634549b039146106fe57806349bd5a5e1461071e5780634a74bb021461073e57806351b056391461075d57600080fd5b80633bd5d173116102b15780633bd5d173146106885780633f8d7732146106a85780633ff8bf2e146106c8578063437823ec146106de57600080fd5b806338183e031461060357806339509351146106195780633b124fe7146106395780633bbac5791461064f57600080fd5b806322976e0d1161035a5780632d838119116103295780632d8381191461058b5780633103a6cf146105ab578063313ce567146105c15780633685d419146105e357600080fd5b806322976e0d146104fc57806323b872dd14610512578063269f534c1461053257806327c8f8351461056b57600080fd5b806313114a9d1161039657806313114a9d146104705780631694505e1461048f57806318160ddd146104c75780631c75b6b2146104dc57600080fd5b8063042fe81a146103d3578063061c82d0146103f557806306fdde0314610415578063095ea7b31461044057600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103f36103ee36600461329b565b610bdb565b005b34801561040157600080fd5b506103f361041036600461329b565b610c4e565b34801561042157600080fd5b5061042a610ce0565b6040516104379190613305565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004613254565b610d72565b6040519015158152602001610437565b34801561047c57600080fd5b50600b545b604051908152602001610437565b34801561049b57600080fd5b506022546104af906001600160a01b031681565b6040516001600160a01b039091168152602001610437565b3480156104d357600080fd5b50600954610481565b3480156104e857600080fd5b506103f36104f736600461329b565b610d89565b34801561050857600080fd5b50610481601d5481565b34801561051e57600080fd5b5061046061052d3660046131de565b610dd2565b34801561053e57600080fd5b5061046061054d36600461316b565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561057757600080fd5b506019546104af906001600160a01b031681565b34801561059757600080fd5b506104816105a636600461329b565b610e3b565b3480156105b757600080fd5b5061048160165481565b3480156105cd57600080fd5b50600f5460405160ff9091168152602001610437565b3480156105ef57600080fd5b506103f36105fe36600461316b565b610ebf565b34801561060f57600080fd5b5061048160215481565b34801561062557600080fd5b50610460610634366004613254565b611076565b34801561064557600080fd5b5061048160105481565b34801561065b57600080fd5b5061046061066a36600461316b565b6001600160a01b031660009081526018602052604090205460ff1690565b34801561069457600080fd5b506103f36106a336600461329b565b6110ac565b3480156106b457600080fd5b506103f36106c336600461329b565b611196565b3480156106d457600080fd5b5061048160245481565b3480156106ea57600080fd5b506103f36106f936600461316b565b611222565b34801561070a57600080fd5b506104816107193660046132b4565b611270565b34801561072a57600080fd5b506023546104af906001600160a01b031681565b34801561074a57600080fd5b5060255461046090610100900460ff1681565b34801561076957600080fd5b506103f3610778366004613280565b6112fd565b34801561078957600080fd5b506103f361079836600461316b565b611395565b3480156107a957600080fd5b506104606107b836600461316b565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156107e257600080fd5b506103f36107f136600461316b565b6114e8565b34801561080257600080fd5b506103f361081136600461329b565b611534565b34801561082257600080fd5b5061048160125481565b34801561083857600080fd5b5061048161084736600461316b565b611588565b34801561085857600080fd5b506103f36115e7565b34801561086d57600080fd5b50601c546104af906001600160a01b031681565b34801561088d57600080fd5b5061048160155481565b3480156108a357600080fd5b506014546104609060ff1681565b3480156108bd57600080fd5b506103f36108cc366004613280565b611649565b3480156108dd57600080fd5b506104606108ec36600461316b565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561091657600080fd5b506000546001600160a01b03166104af565b34801561093457600080fd5b50601b546104af906001600160a01b031681565b34801561095457600080fd5b506103f361096336600461329b565b611691565b34801561097457600080fd5b5061042a6116da565b34801561098957600080fd5b506103f361099836600461316b565b6116e9565b3480156109a957600080fd5b506104606109b8366004613254565b611735565b3480156109c957600080fd5b506103f3611784565b3480156109de57600080fd5b506104606109ed366004613254565b61188a565b3480156109fe57600080fd5b50610481611897565b348015610a1357600080fd5b50610481601a5481565b348015610a2957600080fd5b50610481601e5481565b348015610a3f57600080fd5b50600254610481565b348015610a5457600080fd5b5060235461046090600160a01b900460ff1681565b348015610a7557600080fd5b506103f3610a84366004613280565b6118dc565b348015610a9557600080fd5b506103f3610aa436600461321f565b61195a565b348015610ab557600080fd5b5061048160265481565b348015610acb57600080fd5b506103f3610ada36600461329b565b6119af565b348015610aeb57600080fd5b506103f3610afa36600461329b565b611a56565b348015610b0b57600080fd5b50610481610b1a3660046131a5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610b5157600080fd5b506103f3610b6036600461316b565b611adb565b348015610b7157600080fd5b506103f3610b8036600461329b565b611b26565b348015610b9157600080fd5b506103f3610ba036600461316b565b611b64565b348015610bb157600080fd5b506103f3610bc036600461316b565b611c3c565b348015610bd157600080fd5b5061048160175481565b6000546001600160a01b03163314610c0e5760405162461bcd60e51b8152600401610c059061335a565b60405180910390fd5b6101f4811115610c495760405162461bcd60e51b81526020600482015260066024820152656d617820352560d01b6044820152606401610c05565b602455565b6000546001600160a01b03163314610c785760405162461bcd60e51b8152600401610c059061335a565b6010819055601254601d54601a54610c9e9291610c989182908690611cd9565b90611cd9565b602181905560141015610cdd5760405162461bcd60e51b81526020600482015260076024820152666d61782032302560c81b6044820152606401610c05565b50565b6060600d8054610cef90613470565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90613470565b8015610d685780601f10610d3d57610100808354040283529160200191610d68565b820191906000526020600020905b815481529060010190602001808311610d4b57829003601f168201915b5050505050905090565b6000610d7f338484611d38565b5060015b92915050565b6000546001600160a01b03163314610db35760405162461bcd60e51b8152600401610c059061335a565b601a819055601254601d54601054610c9e9291610c9891829086611cd9565b6000610ddf848484611e5c565b610e318433610e2c8560405180606001604052806028815260200161351e602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906120e5565b611d38565b5060019392505050565b6000600a54821115610ea25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c05565b6000610eac61211f565b9050610eb88382612142565b9392505050565b6000546001600160a01b03163314610ee95760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526007602052604090205460ff16610f515760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c05565b60005b60085481101561107257816001600160a01b031660088281548110610f7b57610f7b6134f2565b6000918252602090912001546001600160a01b031614156110605760088054610fa690600190613459565b81548110610fb657610fb66134f2565b600091825260209091200154600880546001600160a01b039092169183908110610fe257610fe26134f2565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103a5761103a6134dc565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106a816134ab565b915050610f54565b5050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d7f918590610e2c9086611cd9565b3360008181526007602052604090205460ff16156111215760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610c05565b600061112c83612184565b505050506001600160a01b038416600090815260036020526040902054919250611158919050826121d3565b6001600160a01b038316600090815260036020526040902055600a5461117e90826121d3565b600a55600b5461118e9084611cd9565b600b55505050565b6000546001600160a01b031633146111c05760405162461bcd60e51b8152600401610c059061335a565b600381111580156111d15750601554155b61121d5760405162461bcd60e51b815260206004820152601760248201527f6d617820783320616e64206e6f74206c61756e636865640000000000000000006044820152606401610c05565b601e55565b6000546001600160a01b0316331461124c5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60006009548311156112c45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610c05565b816112e35760006112d484612184565b50939550610d83945050505050565b60006112ee84612184565b50929550610d83945050505050565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610c059061335a565b601554156113775760405162461bcd60e51b815260206004820181905260248201527f416c7265616479206c61756e636865642c206e6f74206e65636573736172792e6044820152606401610c05565b60238054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146113bf5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526007602052604090205460ff16156114285760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610c05565b6001600160a01b03811660009081526003602052604090205415611482576001600160a01b03811660009081526003602052604090205461146890610e3b565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146115125760405162461bcd60e51b8152600401610c059061335a565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610c059061335a565b80601d81905550610c9e601254610c98601d54610c98601a54601054611cd990919063ffffffff16565b6001600160a01b03811660009081526007602052604081205460ff16156115c557506001600160a01b031660009081526004602052604090205490565b6001600160a01b038216600090815260036020526040902054610d8390610e3b565b6000546001600160a01b031633146116115760405162461bcd60e51b8152600401610c059061335a565b600080546040516001600160a01b0390911690600080516020613546833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146116735760405162461bcd60e51b8152600401610c059061335a565b60198054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146116bb5760405162461bcd60e51b8152600401610c059061335a565b6012819055601d54601a54601054610c9e928492610c98928391611cd9565b6060600e8054610cef90613470565b6000546001600160a01b031633146117135760405162461bcd60e51b8152600401610c059061335a565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d7f3384610e2c85604051806060016040528060258152602001613566602591393360009081526005602090815260408083206001600160a01b038d16845290915290205491906120e5565b6001546001600160a01b031633146117ea5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610c05565b600254421161183b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610c05565b600154600080546040516001600160a01b03938416939091169160008051602061354683398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610d7f338484611e5c565b602454600090156118c8576118c36127106118bd6024546118b760095490565b90612215565b90612142565b905090565b6118c36127106118bd60646118b760095490565b6000546001600160a01b031633146119065760405162461bcd60e51b8152600401610c059061335a565b602580548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061194f90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146119845760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119d95760405162461bcd60e51b8152600401610c059061335a565b6015541580156119ea575060058111155b611a405760405162461bcd60e51b815260206004820152602160248201527f416c7265616479206c61756e63686564206f72206d61782035206d696e7574736044820152601760f91b6064820152608401610c05565b6016819055611a5081603c61343a565b60175550565b6000546001600160a01b03163314611a805760405162461bcd60e51b8152600401610c059061335a565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611aaf8142613400565b600255600080546040516001600160a01b0390911690600080516020613546833981519152908390a350565b6000546001600160a01b03163314611b055760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b03163314611b505760405162461bcd60e51b8152600401610c059061335a565b611b5e81633b9aca0061343a565b60265550565b6000546001600160a01b03163314611b8e5760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b038116611bf35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c05565b600080546040516001600160a01b038085169392169160008051602061354683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c665760405162461bcd60e51b8152600401610c059061335a565b6001600160a01b03811660009081526018602052604090205460ff16611cb85760405162461bcd60e51b81526020600482015260076024820152661b9bdd08189bdd60ca1b6044820152606401610c05565b6001600160a01b03166000908152601860205260409020805460ff19169055565b600080611ce68385613400565b905083811015610eb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c05565b6001600160a01b038316611d9a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c05565b6001600160a01b038216611dfb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c05565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ec05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c05565b60008111611f225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c05565b6023546001600160a01b0383811691161415611f625760145460ff16158015611f4b5750601554155b15611f62576014805460ff19166001179055426015555b60155415611fbe57601754601554611f7a9042613459565b11158015611f9557506023546001600160a01b038481169116145b15611fbe576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6000611fc930611588565b60265490915081108015908190611fe3575060255460ff16155b8015611ffd57506023546001600160a01b03868116911614155b80156120105750602554610100900460ff165b156120d3576025805460ff19166001179055602654601a54601d546012549294506000926120439291610c989190611cd9565b601d5490915015612076576000612069826118bd601d548761221590919063ffffffff16565b905061207481612294565b505b601a54156120a6576000612099826118bd601a548761221590919063ffffffff16565b90506120a481612310565b505b6120c76120c2826118bd6012548761221590919063ffffffff16565b612345565b506025805460ff191690555b6120de8585856123cc565b5050505050565b600081848411156121095760405162461bcd60e51b8152600401610c059190613305565b5060006121168486613459565b95945050505050565b600080600061212c612768565b909250905061213b8282612142565b9250505090565b6000610eb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128ea565b600080600080600080600080600061219b8a612918565b92509250925060008060006121b98d86866121b461211f565b61295a565b919f909e50909c50959a5093985091965092945050505050565b6000610eb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b60008261222457506000610d83565b6000612230838561343a565b90508261223d8583613418565b14610eb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c05565b4761229e826129aa565b60006122aa47836121d3565b601c546040519192506000916001600160a01b039091169083905b60006040518083038185875af1925050503d8060008114612302576040519150601f19603f3d011682016040523d82523d6000602084013e612307565b606091505b50505050505050565b4761231a826129aa565b600061232647836121d3565b601b546040519192506000916001600160a01b039091169083906122c5565b6000612352826002612142565b9050600061236083836121d3565b90504761236c836129aa565b600061237847836121d3565b90506123848382612b13565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b601954600160a01b900460ff1680156123ec575060006123ea611897565b115b156124b5576001600160a01b0383166000908152600c602052604090205460ff1615801561243357506001600160a01b0382166000908152600c602052604090205460ff16155b156124b557612440611897565b8111156124b55760405162461bcd60e51b815260206004820152603860248201527f416e74695768616c653a205472616e7366657220616d6f756e7420657863656560448201527f647320746865206d61785472616e73666572416d6f756e7400000000000000006064820152608401610c05565b6001600160a01b03831660009081526006602052604090205460ff16806124f457506001600160a01b03821660009081526006602052604090205460ff165b1561250157612501612bcf565b6001600160a01b03821660009081526018602052604090205460ff168061254057506001600160a01b03831660009081526018602052604090205460ff165b1561254d5761254d612c2a565b6001600160a01b03831660009081526007602052604090205460ff16801561258e57506001600160a01b03821660009081526007602052604090205460ff16155b156125a35761259e838383612cbd565b6126a1565b6001600160a01b03831660009081526007602052604090205460ff161580156125e457506001600160a01b03821660009081526007602052604090205460ff165b156125f45761259e838383612de3565b6001600160a01b03831660009081526007602052604090205460ff1615801561263657506001600160a01b03821660009081526007602052604090205460ff16155b156126465761259e838383612e8c565b6001600160a01b03831660009081526007602052604090205460ff16801561268657506001600160a01b03821660009081526007602052604090205460ff165b156126965761259e838383612eef565b6126a1838383612e8c565b6001600160a01b03821660009081526018602052604090205460ff16806126e057506001600160a01b03831660009081526018602052604090205460ff165b1561270257612702601154601055601354601255602054601a55601f54601d55565b6001600160a01b03831660009081526006602052604090205460ff168061274157506001600160a01b03821660009081526006602052604090205460ff165b1561276357612763601154601055601354601255602054601a55601f54601d55565b505050565b600a546009546000918291825b6008548110156128ba57826003600060088481548110612797576127976134f2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061280257508160046000600884815481106127db576127db6134f2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561281857600a54600954945094505050509091565b61285e6003600060088481548110612832576128326134f2565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906121d3565b92506128a6600460006008848154811061287a5761287a6134f2565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906121d3565b9150806128b2816134ab565b915050612775565b50600954600a546128ca91612142565b8210156128e157600a546009549350935050509091565b90939092509050565b6000818361290b5760405162461bcd60e51b8152600401610c059190613305565b5060006121168486613418565b60008060008061292785612f62565b9050600061293486612f7e565b9050600061294c8261294689866121d3565b906121d3565b979296509094509092505050565b60008080806129698886612215565b905060006129778887612215565b905060006129858888612215565b905060006129978261294686866121d3565b939b939a50919850919650505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106129df576129df6134f2565b6001600160a01b03928316602091820292909201810191909152602254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612a3357600080fd5b505afa158015612a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6b9190613188565b81600181518110612a7e57612a7e6134f2565b6001600160a01b039283166020918202929092010152602254612aa49130911684611d38565b60225460405163791ac94760e01b81526001600160a01b039091169063791ac94790612add90859060009086903090429060040161338f565b600060405180830381600087803b158015612af757600080fd5b505af1158015612b0b573d6000803e3d6000fd5b505050505050565b602254612b2b9030906001600160a01b031684611d38565b60225460195460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b158015612b9657600080fd5b505af1158015612baa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120de91906132d7565b601054158015612bdf5750601254155b8015612beb5750601a54155b8015612bf75750601d54155b15612bfe57565b6010805460115560128054601355601a8054602055601d8054601f556000938490558390559082905555565b601054158015612c3a5750601254155b8015612c465750601a54155b8015612c525750601d54155b15612c5957565b6010546011819055601254601355601a54602055601d54601f55601e54612c7f9161343a565b601055601e54601f54612c92919061343a565b601d55601e54601354612ca5919061343a565b601255601e54602054612cb8919061343a565b601a55565b600080600080600080612ccf87612184565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612d0190886121d3565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054612d3090876121d3565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054612d5f9086611cd9565b6001600160a01b038916600090815260036020526040902055612d8181612f9a565b612d8b8483613022565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dd091815260200190565b60405180910390a3505050505050505050565b600080600080600080612df587612184565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150612e2790876121d3565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054612e5d9084611cd9565b6001600160a01b038916600090815260046020908152604080832093909355600390522054612d5f9086611cd9565b600080600080600080612e9e87612184565b955095509550955095509550612eb68984878a613046565b95509250612ec68984878a613129565b6001600160a01b038b16600090815260036020526040902054909650909350612d3090876121d3565b600080600080600080612f0187612184565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612f3390886121d3565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054612e2790876121d3565b6000610d8360646118bd6010548561221590919063ffffffff16565b6000610d8360646118bd6012548561221590919063ffffffff16565b6000612fa461211f565b90506000612fb28383612215565b30600090815260036020526040902054909150612fcf9082611cd9565b3060009081526003602090815260408083209390935560079052205460ff1615612763573060009081526004602052604090205461300d9084611cd9565b30600090815260046020526040902055505050565b600a5461302f90836121d3565b600a55600b5461303f9082611cd9565b600b555050565b600080601a546000141561305e575083905082613120565b601a54600090613073906118b7866064612142565b9050600061308961308261211f565b8390612215565b905061309586826121d3565b95506130a187836121d3565b306000908152600360205260409020549097506130be9082611cd9565b30600081815260036020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061310f9086815260200190565b60405180910390a386869350935050505b94509492505050565b600080601d5460001415613141575083905082613120565b601d54600090613073906118b7866064612142565b8035801515811461316657600080fd5b919050565b60006020828403121561317d57600080fd5b8135610eb881613508565b60006020828403121561319a57600080fd5b8151610eb881613508565b600080604083850312156131b857600080fd5b82356131c381613508565b915060208301356131d381613508565b809150509250929050565b6000806000606084860312156131f357600080fd5b83356131fe81613508565b9250602084013561320e81613508565b929592945050506040919091013590565b6000806040838503121561323257600080fd5b823561323d81613508565b915061324b60208401613156565b90509250929050565b6000806040838503121561326757600080fd5b823561327281613508565b946020939093013593505050565b60006020828403121561329257600080fd5b610eb882613156565b6000602082840312156132ad57600080fd5b5035919050565b600080604083850312156132c757600080fd5b8235915061324b60208401613156565b6000806000606084860312156132ec57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561333257858101830151858201604001528201613316565b81811115613344576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156133df5784516001600160a01b0316835293830193918301916001016133ba565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115613413576134136134c6565b500190565b60008261343557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613454576134546134c6565b500290565b60008282101561346b5761346b6134c6565b500390565b600181811c9082168061348457607f821691505b602082108114156134a557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156134bf576134bf6134c6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610cdd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b7b32778b77eb6296d8a3b403029cff563646daeb217da34255f3508bfe73c9964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000182f480769f18779814ae4d69ec20fc9bca83b17
-----Decoded View---------------
Arg [0] : _newOwner (address): 0x182F480769F18779814AE4d69Ec20fC9BCA83B17
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000182f480769f18779814ae4d69ec20fc9bca83b17
Deployed Bytecode Sourcemap
25508:26045:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44768:153;;;;;;;;;;-1:-1:-1;44768:153:0;;;;;:::i;:::-;;:::i;:::-;;50441:231;;;;;;;;;;-1:-1:-1;50441:231:0;;;;;:::i;:::-;;:::i;28810:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30086:161;;;;;;;;;;-1:-1:-1;30086:161:0;;;;;:::i;:::-;;:::i;:::-;;;4310:14:1;;4303:22;4285:41;;4273:2;4258:18;30086:161:0;4145:187:1;31725:87:0;;;;;;;;;;-1:-1:-1;31794:10:0;;31725:87;;;13318:25:1;;;13306:2;13291:18;31725:87:0;13172:177:1;27356:42:0;;;;;;;;;;-1:-1:-1;27356:42:0;;;;-1:-1:-1;;;;;27356:42:0;;;;;;-1:-1:-1;;;;;3489:32:1;;;3471:51;;3459:2;3444:18;27356:42:0;3325:203:1;29087:95:0;;;;;;;;;;-1:-1:-1;29167:7:0;;29087:95;;50205:224;;;;;;;;;;-1:-1:-1;50205:224:0;;;;;:::i;:::-;;:::i;27073:32::-;;;;;;;;;;;;;;;;30445:313;;;;;;;;;;-1:-1:-1;30445:313:0;;;;;:::i;:::-;;:::i;31582:135::-;;;;;;;;;;-1:-1:-1;31582:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;31676:33:0;31652:4;31676:33;;;:24;:33;;;;;;;;;31582:135;26760:71;;;;;;;;;;-1:-1:-1;26760:71:0;;;;-1:-1:-1;;;;;26760:71:0;;;32649:253;;;;;;;;;;-1:-1:-1;32649:253:0;;;;;:::i;:::-;;:::i;26610:39::-;;;;;;;;;;;;;;;;28996:83;;;;;;;;;;-1:-1:-1;29062:9:0;;28996:83;;29062:9;;;;14805:36:1;;14793:2;14778:18;28996:83:0;14663:184:1;33251:479:0;;;;;;;;;;-1:-1:-1;33251:479:0;;;;;:::i;:::-;;:::i;27261:88::-;;;;;;;;;;;;;;;;30951:218;;;;;;;;;;-1:-1:-1;30951:218:0;;;;;:::i;:::-;;:::i;26343:26::-;;;;;;;;;;;;;;;;38421:91;;;;;;;;;;-1:-1:-1;38421:91:0;;;;;:::i;:::-;-1:-1:-1;;;;;38493:11:0;38469:4;38493:11;;;:6;:11;;;;;;;;;38421:91;31820:377;;;;;;;;;;-1:-1:-1;31820:377:0;;;;;:::i;:::-;;:::i;30764:179::-;;;;;;;;;;-1:-1:-1;30764:179:0;;;;;:::i;:::-;;:::i;27486:39::-;;;;;;;;;;;;;;;;49730:111;;;;;;;;;;-1:-1:-1;49730:111:0;;;;;:::i;:::-;;:::i;32205:436::-;;;;;;;;;;-1:-1:-1;32205:436:0;;;;;:::i;:::-;;:::i;27405:29::-;;;;;;;;;;-1:-1:-1;27405:29:0;;;;-1:-1:-1;;;;;27405:29:0;;;27568:40;;;;;;;;;;-1:-1:-1;27568:40:0;;;;;;;;;;;30255:182;;;;;;;;;;-1:-1:-1;30255:182:0;;;;;:::i;:::-;;:::i;32910:333::-;;;;;;;;;;-1:-1:-1;32910:333:0;;;;;:::i;:::-;;:::i;37945:123::-;;;;;;;;;;-1:-1:-1;37945:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;38033:27:0;38009:4;38033:27;;;:18;:27;;;;;;;;;37945:123;50083:114;;;;;;;;;;-1:-1:-1;50083:114:0;;;;;:::i;:::-;;:::i;50680:242::-;;;;;;;;;;-1:-1:-1;50680:242:0;;;;;:::i;:::-;;:::i;26430:32::-;;;;;;;;;;;;;;;;29190:198;;;;;;;;;;-1:-1:-1;29190:198:0;;;;;:::i;:::-;;:::i;2179:148::-;;;;;;;;;;;;;:::i;26989:75::-;;;;;;;;;;-1:-1:-1;26989:75:0;;;;-1:-1:-1;;;;;26989:75:0;;;26574:29;;;;;;;;;;;;;;;;26529:38;;;;;;;;;;-1:-1:-1;26529:38:0;;;;;;;;44310:97;;;;;;;;;;-1:-1:-1;44310:97:0;;;;;:::i;:::-;;:::i;31454:120::-;;;;;;;;;;-1:-1:-1;31454:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;31546:20:0;31522:4;31546:20;;;:11;:20;;;;;;;;;31454:120;1536:79;;;;;;;;;;-1:-1:-1;1574:7:0;1601:6;-1:-1:-1;;;;;1601:6:0;1536:79;;26913:69;;;;;;;;;;-1:-1:-1;26913:69:0;;;;-1:-1:-1;;;;;26913:69:0;;;50934:255;;;;;;;;;;-1:-1:-1;50934:255:0;;;;;:::i;:::-;;:::i;28901:87::-;;;;;;;;;;;;;:::i;49975:102::-;;;;;;;;;;-1:-1:-1;49975:102:0;;;;;:::i;:::-;;:::i;31177:269::-;;;;;;;;;;-1:-1:-1;31177:269:0;;;;;:::i;:::-;;:::i;3201:305::-;;;;;;;;;;;;;:::i;29760:167::-;;;;;;;;;;-1:-1:-1;29760:167:0;;;;;:::i;:::-;;:::i;44415:345::-;;;;;;;;;;;;;:::i;26880:26::-;;;;;;;;;;;;;;;;27112:34;;;;;;;;;;;;;;;;2734:89;;;;;;;;;;-1:-1:-1;2806:9:0;;2734:89;;27441:38;;;;;;;;;;-1:-1:-1;27441:38:0;;;;-1:-1:-1;;;27441:38:0;;;;;;51371:171;;;;;;;;;;-1:-1:-1;51371:171:0;;;;;:::i;:::-;;:::i;44156:146::-;;;;;;;;;;-1:-1:-1;44156:146:0;;;;;:::i;:::-;;:::i;27617:65::-;;;;;;;;;;;;;;;;29394:223;;;;;;;;;;-1:-1:-1;29394:223:0;;;;;:::i;:::-;;:::i;2899:226::-;;;;;;;;;;-1:-1:-1;2899:226:0;;;;;:::i;:::-;;:::i;29935:143::-;;;;;;;;;;-1:-1:-1;29935:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;30043:18:0;;;30016:7;30043:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;29935:143;49853:110;;;;;;;;;;-1:-1:-1;49853:110:0;;;;;:::i;:::-;;:::i;51209:142::-;;;;;;;;;;-1:-1:-1;51209:142:0;;;;;:::i;:::-;;:::i;2482:244::-;;;;;;;;;;-1:-1:-1;2482:244:0;;;;;:::i;:::-;;:::i;29623:131::-;;;;;;;;;;-1:-1:-1;29623:131:0;;;;;:::i;:::-;;:::i;26656:54::-;;;;;;;;;;;;;;;;44768:153;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;;;;;;;;;44860:3:::1;44852:4;:11;;44844:30;;;::::0;-1:-1:-1;;;44844:30:0;;9184:2:1;44844:30:0::1;::::0;::::1;9166:21:1::0;9223:1;9203:18;;;9196:29;-1:-1:-1;;;9241:18:1;;;9234:36;9287:18;;44844:30:0::1;8982:329:1::0;44844:30:0::1;44885:21;:28:::0;44768:153::o;50441:231::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;50515:7:::1;:16:::0;;;50601:13:::1;::::0;50582::::1;::::0;50569:7:::1;::::0;50557:58:::1;::::0;50601:13;50557:39:::1;::::0;;;50525:6;;50557:11:::1;:20::i;:::-;:24:::0;::::1;:39::i;:58::-;50542:12;:73:::0;;;50650:2:::1;-1:-1:-1::0;50634:18:0::1;50626:38;;;::::0;-1:-1:-1;;;50626:38:0;;6162:2:1;50626:38:0::1;::::0;::::1;6144:21:1::0;6201:1;6181:18;;;6174:29;-1:-1:-1;;;6219:18:1;;;6212:37;6266:18;;50626:38:0::1;5960:330:1::0;50626:38:0::1;50441:231:::0;:::o;28810:83::-;28847:13;28880:5;28873:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28810:83;:::o;30086:161::-;30161:4;30178:39;199:10;30201:7;30210:6;30178:8;:39::i;:::-;-1:-1:-1;30235:4:0;30086:161;;;;;:::o;50205:224::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;50272:7:::1;:16:::0;;;50358:13:::1;::::0;50339::::1;::::0;50314:7:::1;::::0;:58:::1;::::0;50358:13;50314:39:::1;::::0;;;50282:6;50314:11:::1;:20::i;30445:313::-:0;30543:4;30560:36;30570:6;30578:9;30589:6;30560:9;:36::i;:::-;30607:121;30616:6;199:10;30638:89;30676:6;30638:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30638:19:0;;;;;;:11;:19;;;;;;;;199:10;30638:33;;;;;;;;;;:37;:89::i;:::-;30607:8;:121::i;:::-;-1:-1:-1;30746:4:0;30445:313;;;;;:::o;32649:253::-;32715:7;32754;;32743;:18;;32735:73;;;;-1:-1:-1;;;32735:73:0;;6497:2:1;32735:73:0;;;6479:21:1;6536:2;6516:18;;;6509:30;6575:34;6555:18;;;6548:62;-1:-1:-1;;;6626:18:1;;;6619:40;6676:19;;32735:73:0;6295:406:1;32735:73:0;32819:19;32842:10;:8;:10::i;:::-;32819:33;-1:-1:-1;32870:24:0;:7;32819:33;32870:11;:24::i;:::-;32863:31;32649:253;-1:-1:-1;;;32649:253:0:o;33251:479::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33333:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;33325:60;;;::::0;-1:-1:-1;;;33325:60:0;;8828:2:1;33325:60:0::1;::::0;::::1;8810:21:1::0;8867:2;8847:18;;;8840:30;8906:29;8886:18;;;8879:57;8953:18;;33325:60:0::1;8626:351:1::0;33325:60:0::1;33401:9;33396:327;33420:9;:16:::0;33416:20;::::1;33396:327;;;33478:7;-1:-1:-1::0;;;;;33462:23:0::1;:9;33472:1;33462:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;33462:12:0::1;:23;33458:254;;;33521:9;33531:16:::0;;:20:::1;::::0;33550:1:::1;::::0;33531:20:::1;:::i;:::-;33521:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;33506:9:::1;:12:::0;;-1:-1:-1;;;;;33521:31:0;;::::1;::::0;33516:1;;33506:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;33506:46:0::1;-1:-1:-1::0;;;;;33506:46:0;;::::1;;::::0;;33571:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;33610:11:::1;:20:::0;;;;:28;;-1:-1:-1;;33610:28:0::1;::::0;;33657:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;33657:15:0;;;;;-1:-1:-1;;;;;;33657:15:0::1;::::0;;;;;33396:327:::1;33251:479:::0;:::o;33458:254::-:1;33438:3:::0;::::1;::::0;::::1;:::i;:::-;;;;33396:327;;;;33251:479:::0;:::o;30951:218::-;199:10;31039:4;31088:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;31088:34:0;;;;;;;;;;31039:4;;31056:83;;31079:7;;31088:50;;31127:10;31088:38;:50::i;31820:377::-;199:10;31872:14;31921:19;;;:11;:19;;;;;;;;31920:20;31912:77;;;;-1:-1:-1;;;31912:77:0;;12557:2:1;31912:77:0;;;12539:21:1;12596:2;12576:18;;;12569:30;12635:34;12615:18;;;12608:62;-1:-1:-1;;;12686:18:1;;;12679:42;12738:19;;31912:77:0;12355:408:1;31912:77:0;32001:15;32025:19;32036:7;32025:10;:19::i;:::-;-1:-1:-1;;;;;;;;;32073:15:0;;;;;;:7;:15;;;;;;32000:44;;-1:-1:-1;32073:28:0;;:15;-1:-1:-1;32000:44:0;32073:19;:28::i;:::-;-1:-1:-1;;;;;32055:15:0;;;;;;:7;:15;;;;;:46;32122:7;;:20;;32134:7;32122:11;:20::i;:::-;32112:7;:30;32166:10;;:23;;32181:7;32166:14;:23::i;:::-;32153:10;:36;-1:-1:-1;;;31820:377:0:o;30764:179::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;30854:1:::1;30846:4;:9;;:28;;;;-1:-1:-1::0;30859:10:0::1;::::0;:15;30846:28:::1;30838:64;;;::::0;-1:-1:-1;;;30838:64:0;;8074:2:1;30838:64:0::1;::::0;::::1;8056:21:1::0;8113:2;8093:18;;;8086:30;8152:25;8132:18;;;8125:53;8195:18;;30838:64:0::1;7872:347:1::0;30838:64:0::1;30913:15;:22:::0;30764:179::o;49730:111::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;49799:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;49799:34:0::1;49829:4;49799:34;::::0;;49730:111::o;32205:436::-;32295:7;32334;;32323;:18;;32315:62;;;;-1:-1:-1;;;32315:62:0;;9518:2:1;32315:62:0;;;9500:21:1;9557:2;9537:18;;;9530:30;9596:33;9576:18;;;9569:61;9647:18;;32315:62:0;9316:355:1;32315:62:0;32393:17;32388:246;;32428:15;32452:19;32463:7;32452:10;:19::i;:::-;-1:-1:-1;32427:44:0;;-1:-1:-1;32486:14:0;;-1:-1:-1;;;;;32486:14:0;32388:246;32535:23;32566:19;32577:7;32566:10;:19::i;:::-;-1:-1:-1;32533:52:0;;-1:-1:-1;32600:22:0;;-1:-1:-1;;;;;32600:22:0;30255:182;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;30337:10:::1;::::0;:15;30329:60:::1;;;::::0;-1:-1:-1;;;30329:60:0;;5376:2:1;30329:60:0::1;::::0;::::1;5358:21:1::0;;;5395:18;;;5388:30;5454:34;5434:18;;;5427:62;5506:18;;30329:60:0::1;5174:356:1::0;30329:60:0::1;30400:19;:29:::0;;;::::1;;-1:-1:-1::0;;;30400:29:0::1;-1:-1:-1::0;;;;30400:29:0;;::::1;::::0;;;::::1;::::0;;30255:182::o;32910:333::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32993:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;32992:21;32984:61;;;::::0;-1:-1:-1;;;32984:61:0;;8828:2:1;32984:61:0::1;::::0;::::1;8810:21:1::0;8867:2;8847:18;;;8840:30;8906:29;8886:18;;;8879:57;8953:18;;32984:61:0::1;8626:351:1::0;32984:61:0::1;-1:-1:-1::0;;;;;33059:16:0;::::1;33078:1;33059:16:::0;;;:7:::1;:16;::::0;;;;;:20;33056:108:::1;;-1:-1:-1::0;;;;;33135:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;33115:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;33096:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;33056:108:::1;-1:-1:-1::0;;;;;33174:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;33174:27:0::1;33197:4;33174:27:::0;;::::1;::::0;;;33212:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;33212:23:0::1;::::0;;::::1;::::0;;32910:333::o;50083:114::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;50162:15:::1;:27:::0;;-1:-1:-1;;;;;;50162:27:0::1;-1:-1:-1::0;;;;;50162:27:0;;;::::1;::::0;;;::::1;::::0;;50083:114::o;50680:242::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;50771:10:::1;50755:13;:26;;;;50807:58;50851:13;;50807:39;50832:13;;50807:20;50819:7;;50807;;:11;;:20;;;;:::i;29190:198::-:0;-1:-1:-1;;;;;29280:20:0;;29256:7;29280:20;;;:11;:20;;;;;;;;29276:49;;;-1:-1:-1;;;;;;29309:16:0;;;;;:7;:16;;;;;;;29190:198::o;29276:49::-;-1:-1:-1;;;;;29363:16:0;;;;;;:7;:16;;;;;;29343:37;;:19;:37::i;2179:148::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;2286:1:::1;2270:6:::0;;2249:40:::1;::::0;-1:-1:-1;;;;;2270:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2249:40:0;2286:1;;2249:40:::1;2317:1;2300:19:::0;;-1:-1:-1;;;;;;2300:19:0::1;::::0;;2179:148::o;44310:97::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;44377:15:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;44377:22:0::1;-1:-1:-1::0;;;;44377:22:0;;::::1;::::0;;;::::1;::::0;;44310:97::o;50934:255::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;51020:13:::1;:28:::0;;;51099:13:::1;::::0;51086:7:::1;::::0;51074::::1;::::0;:58:::1;::::0;51036:12;;51074:39:::1;::::0;;;:11:::1;:20::i;28901:87::-:0;28940:13;28973:7;28966:14;;;;;:::i;49975:102::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;50048:9:::1;:21:::0;;-1:-1:-1;;;;;;50048:21:0::1;-1:-1:-1::0;;;;;50048:21:0;;;::::1;::::0;;;::::1;::::0;;49975:102::o;31177:269::-;31270:4;31287:129;199:10;31310:7;31319:96;31358:15;31319:96;;;;;;;;;;;;;;;;;199:10;31319:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;31319:34:0;;;;;;;;;;;;:38;:96::i;3201:305::-;3253:14;;-1:-1:-1;;;;;3253:14:0;3271:10;3253:28;3245:76;;;;-1:-1:-1;;;3245:76:0;;12970:2:1;3245:76:0;;;12952:21:1;13009:2;12989:18;;;12982:30;13048:34;13028:18;;;13021:62;-1:-1:-1;;;13099:18:1;;;13092:33;13142:19;;3245:76:0;12768:399:1;3245:76:0;3358:9;;3340:15;:27;3332:72;;;;-1:-1:-1;;;3332:72:0;;12197:2:1;3332:72:0;;;12179:21:1;12236:2;12216:18;;;12209:30;12275:33;12255:18;;;12248:61;12326:18;;3332:72:0;11995:355:1;3332:72:0;3449:14;;;3441:6;;3420:44;;-1:-1:-1;;;;;3449:14:0;;;;3441:6;;;;-1:-1:-1;;;;;;;;;;;3420:44:0;;3484:14;;;3475:23;;-1:-1:-1;;;;;;3475:23:0;-1:-1:-1;;;;;3484:14:0;;;3475:23;;;;;;3201:305::o;29760:167::-;29838:4;29855:42;199:10;29879:9;29890:6;29855:9;:42::i;44415:345::-;44541:21;;44465:7;;44541:25;44538:114;;44589:51;44634:5;44589:40;44607:21;;44589:13;29167:7;;;29087:95;44589:13;:17;;:40::i;:::-;:44;;:51::i;:::-;44582:58;;44415:345;:::o;44538:114::-;44719:33;44746:5;44719:22;44737:3;44719:13;29167:7;;;29087:95;51371:171;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;51448:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;51448:32:0;;::::1;;::::0;;51496:38:::1;::::0;::::1;::::0;::::1;::::0;51472:8;4310:14:1;4303:22;4285:41;;4273:2;4258:18;;4145:187;51496:38:0::1;;;;;;;;51371:171:::0;:::o;44156:146::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;44251:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:43;;-1:-1:-1;;44251:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;44156:146::o;29394:223::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;29471:10:::1;::::0;:15;:28;::::1;;;;29498:1;29490:4;:9;;29471:28;29463:74;;;::::0;-1:-1:-1;;;29463:74:0;;8426:2:1;29463:74:0::1;::::0;::::1;8408:21:1::0;8465:2;8445:18;;;8438:30;8504:34;8484:18;;;8477:62;-1:-1:-1;;;8555:18:1;;;8548:31;8596:19;;29463:74:0::1;8224:397:1::0;29463:74:0::1;29548:20;:27:::0;;;29600:9:::1;29571:4:::0;29600:2:::1;:9;:::i;:::-;29586:11;:23:::0;-1:-1:-1;29394:223:0:o;2899:226::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;2980:6:::1;::::0;;;2963:23;;-1:-1:-1;;;;;;2963:23:0;;::::1;-1:-1:-1::0;;;;;2980:6:0;::::1;2963:23;::::0;;;2997:19:::1;::::0;;3039:22:::1;3057:4:::0;3039:15:::1;:22;:::i;:::-;3027:9;:34:::0;3114:1:::1;3098:6:::0;;3077:40:::1;::::0;-1:-1:-1;;;;;3098:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;3077:40:0;3114:1;;3077:40:::1;2899:226:::0;:::o;49853:110::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;49920:27:0::1;49950:5;49920:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;49920:35:0::1;::::0;;49853:110::o;51209:142::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;51331:12:::1;:6:::0;51338:5:::1;51331:12;:::i;:::-;51299:29;:44:::0;-1:-1:-1;51209:142:0:o;2482:244::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2571:22:0;::::1;2563:73;;;::::0;-1:-1:-1;;;2563:73:0;;6908:2:1;2563:73:0::1;::::0;::::1;6890:21:1::0;6947:2;6927:18;;;6920:30;6986:34;6966:18;;;6959:62;-1:-1:-1;;;7037:18:1;;;7030:36;7083:19;;2563:73:0::1;6706:402:1::0;2563:73:0::1;2673:6;::::0;;2652:38:::1;::::0;-1:-1:-1;;;;;2652:38:0;;::::1;::::0;2673:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2652:38:0;::::1;2701:6;:17:::0;;-1:-1:-1;;;;;;2701:17:0::1;-1:-1:-1::0;;;;;2701:17:0;;;::::1;::::0;;;::::1;::::0;;2482:244::o;29623:131::-;1748:6;;-1:-1:-1;;;;;1748:6:0;199:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29695:10:0;::::1;;::::0;;;:6:::1;:10;::::0;;;;;::::1;;29687:30;;;::::0;-1:-1:-1;;;29687:30:0;;9878:2:1;29687:30:0::1;::::0;::::1;9860:21:1::0;9917:1;9897:18;;;9890:29;-1:-1:-1;;;9935:18:1;;;9928:37;9982:18;;29687:30:0::1;9676:330:1::0;29687:30:0::1;-1:-1:-1::0;;;;;29728:10:0::1;29741:5;29728:10:::0;;;:6:::1;:10;::::0;;;;:18;;-1:-1:-1;;29728:18:0::1;::::0;;29623:131::o;6929:181::-;6987:7;;7019:5;7023:1;7019;:5;:::i;:::-;7007:17;;7048:1;7043;:6;;7035:46;;;;-1:-1:-1;;;7035:46:0;;7718:2:1;7035:46:0;;;7700:21:1;7757:2;7737:18;;;7730:30;7796:29;7776:18;;;7769:57;7843:18;;7035:46:0;7516:351:1;38076:337:0;-1:-1:-1;;;;;38169:19:0;;38161:68;;;;-1:-1:-1;;;38161:68:0;;11792:2:1;38161:68:0;;;11774:21:1;11831:2;11811:18;;;11804:30;11870:34;11850:18;;;11843:62;-1:-1:-1;;;11921:18:1;;;11914:34;11965:19;;38161:68:0;11590:400:1;38161:68:0;-1:-1:-1;;;;;38248:21:0;;38240:68;;;;-1:-1:-1;;;38240:68:0;;7315:2:1;38240:68:0;;;7297:21:1;7354:2;7334:18;;;7327:30;7393:34;7373:18;;;7366:62;-1:-1:-1;;;7444:18:1;;;7437:32;7486:19;;38240:68:0;7113:398:1;38240:68:0;-1:-1:-1;;;;;38321:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;38373:32;;13318:25:1;;;38373:32:0;;13291:18:1;38373:32:0;;;;;;;38076:337;;;:::o;38520:2192::-;-1:-1:-1;;;;;38642:18:0;;38634:68;;;;-1:-1:-1;;;38634:68:0;;11386:2:1;38634:68:0;;;11368:21:1;11425:2;11405:18;;;11398:30;11464:34;11444:18;;;11437:62;-1:-1:-1;;;11515:18:1;;;11508:35;11560:19;;38634:68:0;11184:401:1;38634:68:0;38730:1;38721:6;:10;38713:64;;;;-1:-1:-1;;;38713:64:0;;10976:2:1;38713:64:0;;;10958:21:1;11015:2;10995:18;;;10988:30;11054:34;11034:18;;;11027:62;-1:-1:-1;;;11105:18:1;;;11098:39;11154:19;;38713:64:0;10774:405:1;38713:64:0;38800:13;;-1:-1:-1;;;;;38794:19:0;;;38800:13;;38794:19;38790:220;;;38834:18;;;;38833:19;:38;;;;-1:-1:-1;38856:10:0;;:15;38833:38;38830:169;;;38893:18;:25;;-1:-1:-1;;38893:25:0;38914:4;38893:25;;;38950:15;38937:10;:28;38830:169;39025:10;;:14;39022:176;;39091:11;;39077:10;;39059:28;;:15;:28;:::i;:::-;:43;;:68;;;;-1:-1:-1;39114:13:0;;-1:-1:-1;;;;;39106:21:0;;;39114:13;;39106:21;39059:68;39056:131;;;-1:-1:-1;;;;;39154:10:0;;;;;;:6;:10;;;;;:17;;-1:-1:-1;;39154:17:0;39167:4;39154:17;;;39056:131;39490:28;39521:24;39539:4;39521:9;:24::i;:::-;39615:29;;39490:55;;-1:-1:-1;39591:53:0;;;;;;;39673;;-1:-1:-1;39710:16:0;;;;39709:17;39673:53;:91;;;;-1:-1:-1;39751:13:0;;-1:-1:-1;;;;;39743:21:0;;;39751:13;;39743:21;;39673:91;:129;;;;-1:-1:-1;39781:21:0;;;;;;;39673:129;39655:935;;;39829:16;:23;;-1:-1:-1;;39829:23:0;39848:4;39829:23;;;39890:29;;40026:7;;40007:13;;39989;;39890:29;;-1:-1:-1;39829:16:0;;39989:45;;40026:7;39989:32;;:13;:17;:32::i;:45::-;40064:13;;39963:71;;-1:-1:-1;40064:17:0;40060:200;;40102:23;40128:60;40172:15;40128:39;40153:13;;40128:20;:24;;:39;;;;:::i;:60::-;40102:86;;40207:37;40228:15;40207:20;:37::i;:::-;40083:177;40060:200;40277:7;;:11;40274:175;;40309:20;40332:54;40370:15;40332:33;40357:7;;40332:20;:24;;:33;;;;:::i;:54::-;40309:77;;40405:28;40420:12;40405:14;:28::i;:::-;40290:159;40274:175;40463:76;40478:60;40522:15;40478:39;40503:13;;40478:20;:24;;:39;;;;:::i;:60::-;40463:14;:76::i;:::-;-1:-1:-1;40554:16:0;:24;;-1:-1:-1;;40554:24:0;;;39655:935;40674:30;40689:4;40694:2;40697:6;40674:14;:30::i;:::-;38623:2089;;38520:2192;;;:::o;7832:192::-;7918:7;7954:12;7946:6;;;;7938:29;;;;-1:-1:-1;;;7938:29:0;;;;;;;;:::i;:::-;-1:-1:-1;7978:9:0;7990:5;7994:1;7990;:5;:::i;:::-;7978:17;7832:192;-1:-1:-1;;;;;7832:192:0:o;35851:163::-;35892:7;35913:15;35930;35949:19;:17;:19::i;:::-;35912:56;;-1:-1:-1;35912:56:0;-1:-1:-1;35986:20:0;35912:56;;35986:11;:20::i;:::-;35979:27;;;;35851:163;:::o;9230:132::-;9288:7;9315:39;9319:1;9322;9315:39;;;;;;;;;;;;;;;;;:3;:39::i;34649:419::-;34708:7;34717;34726;34735;34744;34753;34774:23;34799:12;34813:18;34835:20;34847:7;34835:11;:20::i;:::-;34773:82;;;;;;34867:15;34884:23;34909:12;34925:50;34937:7;34946:4;34952:10;34964;:8;:10::i;:::-;34925:11;:50::i;:::-;34866:109;;;;-1:-1:-1;34866:109:0;;-1:-1:-1;35026:15:0;;-1:-1:-1;35043:4:0;;-1:-1:-1;35049:10:0;;-1:-1:-1;34649:419:0;;-1:-1:-1;;;;;34649:419:0:o;7393:136::-;7451:7;7478:43;7482:1;7485;7478:43;;;;;;;;;;;;;;;;;:3;:43::i;8283:471::-;8341:7;8586:6;8582:47;;-1:-1:-1;8616:1:0;8609:8;;8582:47;8641:9;8653:5;8657:1;8653;:5;:::i;:::-;8641:17;-1:-1:-1;8686:1:0;8677:5;8681:1;8641:17;8677:5;:::i;:::-;:10;8669:56;;;;-1:-1:-1;;;8669:56:0;;10213:2:1;8669:56:0;;;10195:21:1;10252:2;10232:18;;;10225:30;10291:34;10271:18;;;10264:62;-1:-1:-1;;;10342:18:1;;;10335:31;10383:19;;8669:56:0;10011:397:1;40720:380:0;40811:21;40875:24;40892:6;40875:16;:24::i;:::-;40911:18;40932:41;:21;40958:14;40932:25;:41::i;:::-;41011:15;;41003:52;;40911:62;;-1:-1:-1;40985:12:0;;-1:-1:-1;;;;;41011:15:0;;;;40911:62;;41003:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;40720:380:0:o;41110:368::-;41195:21;41259:24;41276:6;41259:16;:24::i;:::-;41295:18;41316:41;:21;41342:14;41316:25;:41::i;:::-;41395:9;;41387:46;;41295:62;;-1:-1:-1;41369:12:0;;-1:-1:-1;;;;;41395:9:0;;;;41295:62;;41387:46;3115:205:1;41486:974:0;41611:12;41626:27;:20;41651:1;41626:24;:27::i;:::-;41611:42;-1:-1:-1;41664:17:0;41684:30;:20;41611:42;41684:24;:30::i;:::-;41664:50;-1:-1:-1;42017:21:0;42083:22;42100:4;42083:16;:22::i;:::-;42236:18;42257:41;:21;42283:14;42257:25;:41::i;:::-;42236:62;;42348:35;42361:9;42372:10;42348:12;:35::i;:::-;42409:43;;;14541:25:1;;;14597:2;14582:18;;14575:34;;;14625:18;;;14618:34;;;42409:43:0;;14529:2:1;14514:18;42409:43:0;;;;;;;41549:911;;;;41486:974;:::o;45004:1514::-;45110:15;;-1:-1:-1;;;45110:15:0;;;;:42;;;;;45151:1;45129:19;:17;:19::i;:::-;:23;45110:42;45106:351;;;-1:-1:-1;;;;;45191:32:0;;;;;;:24;:32;;;;;;;;:41;;;:106;;-1:-1:-1;;;;;;45253:35:0;;;;;;:24;:35;;;;;;;;:44;45191:106;45169:277;;;45350:19;:17;:19::i;:::-;45340:6;:29;;45332:98;;;;-1:-1:-1;;;45332:98:0;;5737:2:1;45332:98:0;;;5719:21:1;5776:2;5756:18;;;5749:30;5815:34;5795:18;;;5788:62;5886:26;5866:18;;;5859:54;5930:19;;45332:98:0;5535:420:1;45332:98:0;-1:-1:-1;;;;;45472:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;45502:29:0;;;;;;:18;:29;;;;;;;;45472:59;45469:117;;;45559:14;:12;:14::i;:::-;-1:-1:-1;;;;;45599:17:0;;;;;;:6;:17;;;;;;;;;:35;;-1:-1:-1;;;;;;45620:14:0;;;;;;:6;:14;;;;;;;;45599:35;45596:79;;;45651:12;:10;:12::i;:::-;-1:-1:-1;;;;;45691:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;45715:22:0;;;;;;:11;:22;;;;;;;;45714:23;45691:46;45687:597;;;45754:48;45776:6;45784:9;45795:6;45754:21;:48::i;:::-;45687:597;;;-1:-1:-1;;;;;45825:19:0;;;;;;:11;:19;;;;;;;;45824:20;:46;;;;-1:-1:-1;;;;;;45848:22:0;;;;;;:11;:22;;;;;;;;45824:46;45820:464;;;45887:46;45907:6;45915:9;45926:6;45887:19;:46::i;45820:464::-;-1:-1:-1;;;;;45956:19:0;;;;;;:11;:19;;;;;;;;45955:20;:47;;;;-1:-1:-1;;;;;;45980:22:0;;;;;;:11;:22;;;;;;;;45979:23;45955:47;45951:333;;;46019:44;46037:6;46045:9;46056:6;46019:17;:44::i;45951:333::-;-1:-1:-1;;;;;46085:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;46108:22:0;;;;;;:11;:22;;;;;;;;46085:45;46081:203;;;46147:48;46169:6;46177:9;46188:6;46147:21;:48::i;46081:203::-;46228:44;46246:6;46254:9;46265:6;46228:17;:44::i;:::-;-1:-1:-1;;;;;46297:17:0;;;;;;:6;:17;;;;;;;;;:35;;-1:-1:-1;;;;;;46318:14:0;;;;;;:6;:14;;;;;;;;46297:35;46294:82;;;46349:15;37781;;37771:7;:25;37822:21;;37806:13;:37;37863:15;;37853:7;:25;37904:21;;37888:13;:37;37728:205;46349:15;-1:-1:-1;;;;;46399:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;46429:29:0;;;;;;:18;:29;;;;;;;;46399:59;46396:115;;;46484:15;37781;;37771:7;:25;37822:21;;37806:13;:37;37863:15;;37853:7;:25;37904:21;;37888:13;:37;37728:205;46484:15;45004:1514;;;:::o;36022:561::-;36119:7;;36155;;36072;;;;;36179:289;36203:9;:16;36199:20;;36179:289;;;36269:7;36245;:21;36253:9;36263:1;36253:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;36253:12:0;36245:21;;;;;;;;;;;;;:31;;:66;;;36304:7;36280;:21;36288:9;36298:1;36288:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;36288:12:0;36280:21;;;;;;;;;;;;;:31;36245:66;36241:97;;;36321:7;;36330;;36313:25;;;;;;;36022:561;;:::o;36241:97::-;36363:34;36375:7;:21;36383:9;36393:1;36383:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;36383:12:0;36375:21;;;;;;;;;;;;;36363:7;;:11;:34::i;:::-;36353:44;;36422:34;36434:7;:21;36442:9;36452:1;36442:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;36442:12:0;36434:21;;;;;;;;;;;;;36422:7;;:11;:34::i;:::-;36412:44;-1:-1:-1;36221:3:0;;;;:::i;:::-;;;;36179:289;;;-1:-1:-1;36504:7:0;;36492;;:20;;:11;:20::i;:::-;36482:7;:30;36478:61;;;36522:7;;36531;;36514:25;;;;;;36022:561;;:::o;36478:61::-;36558:7;;36567;;-1:-1:-1;36022:561:0;-1:-1:-1;36022:561:0:o;9858:278::-;9944:7;9979:12;9972:5;9964:28;;;;-1:-1:-1;;;9964:28:0;;;;;;;;:::i;:::-;-1:-1:-1;10003:9:0;10015:5;10019:1;10015;:5;:::i;35076:330::-;35136:7;35145;35154;35174:12;35189:24;35205:7;35189:15;:24::i;:::-;35174:39;;35224:18;35245:30;35267:7;35245:21;:30::i;:::-;35224:51;-1:-1:-1;35286:23:0;35312:33;35224:51;35312:17;:7;35324:4;35312:11;:17::i;:::-;:21;;:33::i;:::-;35286:59;35381:4;;-1:-1:-1;35387:10:0;;-1:-1:-1;35076:330:0;;-1:-1:-1;;;35076:330:0:o;35414:429::-;35529:7;;;;35585:24;:7;35597:11;35585;:24::i;:::-;35567:42;-1:-1:-1;35620:12:0;35635:21;:4;35644:11;35635:8;:21::i;:::-;35620:36;-1:-1:-1;35667:18:0;35688:27;:10;35703:11;35688:14;:27::i;:::-;35667:48;-1:-1:-1;35726:23:0;35752:33;35667:48;35752:17;:7;35764:4;35752:11;:17::i;:33::-;35804:7;;;;-1:-1:-1;35830:4:0;;-1:-1:-1;35414:429:0;;-1:-1:-1;;;;;;;35414:429:0:o;42468:589::-;42618:16;;;42632:1;42618:16;;;;;;;;42594:21;;42618:16;;;;;;;;;;-1:-1:-1;42618:16:0;42594:40;;42663:4;42645;42650:1;42645:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;42645:23:0;;;:7;;;;;;;;;;:23;;;;42689:15;;:22;;;-1:-1:-1;;;42689:22:0;;;;:15;;;;;:20;;:22;;;;;42645:7;;42689:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42679:4;42684:1;42679:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;42679:32:0;;;:7;;;;;;;;;:32;42756:15;;42724:62;;42741:4;;42756:15;42774:11;42724:8;:62::i;:::-;42825:15;;:224;;-1:-1:-1;;;42825:224:0;;-1:-1:-1;;;;;42825:15:0;;;;:66;;:224;;42906:11;;42825:15;;42976:4;;43003;;43023:15;;42825:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42523:534;42468:589;:::o;43065:517::-;43245:15;;43213:62;;43230:4;;-1:-1:-1;;;;;43245:15:0;43263:11;43213:8;:62::i;:::-;43318:15;;43522:11;;43318:256;;-1:-1:-1;;;43318:256:0;;43390:4;43318:256;;;3874:34:1;3924:18;;;3917:34;;;43318:15:0;3967:18:1;;;3960:34;;;4010:18;;;4003:34;-1:-1:-1;;;;;43522:11:0;;;4053:19:1;;;4046:44;43548:15:0;4106:19:1;;;4099:35;43318:15:0;;;:31;;43357:9;;3808:19:1;;43318:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;37302:414::-;37348:7;;:12;:34;;;;-1:-1:-1;37364:13:0;;:18;37348:34;:49;;;;-1:-1:-1;37386:7:0;;:11;37348:49;:71;;;;-1:-1:-1;37401:13:0;;:18;37348:71;37345:83;;;37302:414::o;37345:83::-;37466:7;;;37448:15;:25;37508:13;;;37484:21;:37;37550:7;;;37532:15;:25;37592:13;;;37568:21;:37;-1:-1:-1;37616:11:0;;;;37638:17;;;37666;;;;37694:11;37302:414::o;43588:560::-;43634:7;;:12;:34;;;;-1:-1:-1;43650:13:0;;:18;43634:34;:49;;;;-1:-1:-1;43672:7:0;;:11;43634:49;:71;;;;-1:-1:-1;43687:13:0;;:18;43634:71;43631:83;;;43588:560::o;43631:83::-;43752:7;;43734:15;:25;;;43794:13;;43770:21;:37;43836:7;;43818:15;:25;43878:13;;43854:21;:37;43930:15;;43912:33;;;:::i;:::-;43902:7;:43;43996:15;;43972:21;;:39;;43996:15;43972:39;:::i;:::-;43956:13;:55;44062:15;;44038:21;;:39;;44062:15;44038:39;:::i;:::-;44022:13;:55;44116:15;;44098;;:33;;44116:15;44098:33;:::i;:::-;44088:7;:43;43588:560::o;49156:566::-;49259:15;49276:23;49301:12;49315:23;49340:12;49354:18;49376:19;49387:7;49376:10;:19::i;:::-;-1:-1:-1;;;;;49424:15:0;;;;;;:7;:15;;;;;;49258:137;;-1:-1:-1;49258:137:0;;-1:-1:-1;49258:137:0;;-1:-1:-1;49258:137:0;-1:-1:-1;49258:137:0;-1:-1:-1;49258:137:0;-1:-1:-1;49424:28:0;;49444:7;49424:19;:28::i;:::-;-1:-1:-1;;;;;49406:15:0;;;;;;:7;:15;;;;;;;;:46;;;;49481:7;:15;;;;:28;;49501:7;49481:19;:28::i;:::-;-1:-1:-1;;;;;49463:15:0;;;;;;;:7;:15;;;;;;:46;;;;49541:18;;;;;;;:39;;49564:15;49541:22;:39::i;:::-;-1:-1:-1;;;;;49520:18:0;;;;;;:7;:18;;;;;:60;49594:26;49609:10;49594:14;:26::i;:::-;49631:23;49643:4;49649;49631:11;:23::i;:::-;49687:9;-1:-1:-1;;;;;49670:44:0;49679:6;-1:-1:-1;;;;;49670:44:0;;49698:15;49670:44;;;;13318:25:1;;13306:2;13291:18;;13172:177;49670:44:0;;;;;;;;49247:475;;;;;;49156:566;;;:::o;48562:586::-;48663:15;48680:23;48705:12;48719:23;48744:12;48758:18;48780:19;48791:7;48780:10;:19::i;:::-;-1:-1:-1;;;;;48828:15:0;;;;;;:7;:15;;;;;;48662:137;;-1:-1:-1;48662:137:0;;-1:-1:-1;48662:137:0;;-1:-1:-1;48662:137:0;-1:-1:-1;48662:137:0;-1:-1:-1;48662:137:0;-1:-1:-1;48828:28:0;;48662:137;48828:19;:28::i;:::-;-1:-1:-1;;;;;48810:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;48888:18;;;;;:7;:18;;;;;:39;;48911:15;48888:22;:39::i;:::-;-1:-1:-1;;;;;48867:18:0;;;;;;:7;:18;;;;;;;;:60;;;;48959:7;:18;;;;:39;;48982:15;48959:22;:39::i;46530:726::-;46635:15;46652:23;46677:12;46691:23;46716:12;46730:18;46752:19;46763:7;46752:10;:19::i;:::-;46634:137;;;;;;;;;;;;46819:58;46827:6;46835:15;46852;46869:7;46819;:58::i;:::-;46782:95;-1:-1:-1;46782:95:0;-1:-1:-1;46925:64:0;46939:6;46782:95;;46981:7;46925:13;:64::i;:::-;-1:-1:-1;;;;;47018:15:0;;;;;;:7;:15;;;;;;46888:101;;-1:-1:-1;46888:101:0;;-1:-1:-1;47018:28:0;;47038:7;47018:19;:28::i;33738:642::-;33841:15;33858:23;33883:12;33897:23;33922:12;33936:18;33958:19;33969:7;33958:10;:19::i;:::-;-1:-1:-1;;;;;34006:15:0;;;;;;:7;:15;;;;;;33840:137;;-1:-1:-1;33840:137:0;;-1:-1:-1;33840:137:0;;-1:-1:-1;33840:137:0;-1:-1:-1;33840:137:0;-1:-1:-1;33840:137:0;-1:-1:-1;34006:28:0;;34026:7;34006:19;:28::i;:::-;-1:-1:-1;;;;;33988:15:0;;;;;;:7;:15;;;;;;;;:46;;;;34063:7;:15;;;;:28;;34083:7;34063:19;:28::i;36962:154::-;37026:7;37053:55;37092:5;37053:20;37065:7;;37053;:11;;:20;;;;:::i;37124:166::-;37194:7;37221:61;37266:5;37221:26;37233:13;;37221:7;:11;;:26;;;;:::i;36595:355::-;36658:19;36681:10;:8;:10::i;:::-;36658:33;-1:-1:-1;36702:18:0;36723:27;:10;36658:33;36723:14;:27::i;:::-;36802:4;36786:22;;;;:7;:22;;;;;;36702:48;;-1:-1:-1;36786:38:0;;36702:48;36786:26;:38::i;:::-;36777:4;36761:22;;;;:7;:22;;;;;;;;:63;;;;36838:11;:26;;;;;;36835:107;;;36920:4;36904:22;;;;:7;:22;;;;;;:38;;36931:10;36904:26;:38::i;:::-;36895:4;36879:22;;;;:7;:22;;;;;:63;36647:303;;36595:355;:::o;34494:147::-;34572:7;;:17;;34584:4;34572:11;:17::i;:::-;34562:7;:27;34613:10;;:20;;34628:4;34613:14;:20::i;:::-;34600:10;:33;-1:-1:-1;;34494:147:0:o;47271:606::-;47393:7;47402;47430;;47439:1;47430:10;47427:61;;;-1:-1:-1;47452:15:0;;-1:-1:-1;47469:15:0;47445:40;;47427:61;47534:7;;47498:12;;47513:29;;:16;:7;47525:3;47513:11;:16::i;:29::-;47498:44;;47553:12;47568:20;47577:10;:8;:10::i;:::-;47568:4;;:8;:20::i;:::-;47553:35;-1:-1:-1;47617:25:0;:15;47553:35;47617:19;:25::i;:::-;47599:43;-1:-1:-1;47671:25:0;:15;47691:4;47671:19;:25::i;:::-;47748:4;47732:22;;;;:7;:22;;;;;;47653:43;;-1:-1:-1;47732:32:0;;47759:4;47732:26;:32::i;:::-;47723:4;47707:22;;;;:7;:22;;;;;;;:57;;;;47780:37;;-1:-1:-1;;;;;47780:37:0;;;;;;;47812:4;13318:25:1;;13306:2;13291:18;;13172:177;47780:37:0;;;;;;;;47835:15;47852;47828:40;;;;;;47271:606;;;;;;;;:::o;47886:666::-;48014:7;48023;48051:13;;48066:1;48051:16;48048:67;;;-1:-1:-1;48079:15:0;;-1:-1:-1;48096:15:0;48072:40;;48048:67;48167:13;;48125:18;;48146:35;;:16;:7;48158:3;48146:11;:16::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1606:6;1614;1667:2;1655:9;1646:7;1642:23;1638:32;1635:52;;;1683:1;1680;1673:12;1635:52;1722:9;1709:23;1741:31;1766:5;1741:31;:::i;:::-;1791:5;-1:-1:-1;1815:35:1;1846:2;1831:18;;1815:35;:::i;:::-;1805:45;;1541:315;;;;;:::o;1861:::-;1929:6;1937;1990:2;1978:9;1969:7;1965:23;1961:32;1958:52;;;2006:1;2003;1996:12;1958:52;2045:9;2032:23;2064:31;2089:5;2064:31;:::i;:::-;2114:5;2166:2;2151:18;;;;2138:32;;-1:-1:-1;;;1861:315:1:o;2181:180::-;2237:6;2290:2;2278:9;2269:7;2265:23;2261:32;2258:52;;;2306:1;2303;2296:12;2258:52;2329:26;2345:9;2329:26;:::i;2366:180::-;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;-1:-1:-1;2517:23:1;;2366:180;-1:-1:-1;2366:180:1:o;2551:248::-;2616:6;2624;2677:2;2665:9;2656:7;2652:23;2648:32;2645:52;;;2693:1;2690;2683:12;2645:52;2729:9;2716:23;2706:33;;2758:35;2789:2;2778:9;2774:18;2758:35;:::i;2804:306::-;2892:6;2900;2908;2961:2;2949:9;2940:7;2936:23;2932:32;2929:52;;;2977:1;2974;2967:12;2929:52;3006:9;3000:16;2990:26;;3056:2;3045:9;3041:18;3035:25;3025:35;;3100:2;3089:9;3085:18;3079:25;3069:35;;2804:306;;;;;:::o;4572:597::-;4684:4;4713:2;4742;4731:9;4724:21;4774:6;4768:13;4817:6;4812:2;4801:9;4797:18;4790:34;4842:1;4852:140;4866:6;4863:1;4860:13;4852:140;;;4961:14;;;4957:23;;4951:30;4927:17;;;4946:2;4923:26;4916:66;4881:10;;4852:140;;;5010:6;5007:1;5004:13;5001:91;;;5080:1;5075:2;5066:6;5055:9;5051:22;5047:31;5040:42;5001:91;-1:-1:-1;5153:2:1;5132:15;-1:-1:-1;;5128:29:1;5113:45;;;;5160:2;5109:54;;4572:597;-1:-1:-1;;;4572:597:1:o;10413:356::-;10615:2;10597:21;;;10634:18;;;10627:30;10693:34;10688:2;10673:18;;10666:62;10760:2;10745:18;;10413:356::o;13354:980::-;13616:4;13664:3;13653:9;13649:19;13695:6;13684:9;13677:25;13721:2;13759:6;13754:2;13743:9;13739:18;13732:34;13802:3;13797:2;13786:9;13782:18;13775:31;13826:6;13861;13855:13;13892:6;13884;13877:22;13930:3;13919:9;13915:19;13908:26;;13969:2;13961:6;13957:15;13943:29;;13990:1;14000:195;14014:6;14011:1;14008:13;14000:195;;;14079:13;;-1:-1:-1;;;;;14075:39:1;14063:52;;14170:15;;;;14135:12;;;;14111:1;14029:9;14000:195;;;-1:-1:-1;;;;;;;14251:32:1;;;;14246:2;14231:18;;14224:60;-1:-1:-1;;;14315:3:1;14300:19;14293:35;14212:3;13354:980;-1:-1:-1;;;13354:980:1:o;14852:128::-;14892:3;14923:1;14919:6;14916:1;14913:13;14910:39;;;14929:18;;:::i;:::-;-1:-1:-1;14965:9:1;;14852:128::o;14985:217::-;15025:1;15051;15041:132;;15095:10;15090:3;15086:20;15083:1;15076:31;15130:4;15127:1;15120:15;15158:4;15155:1;15148:15;15041:132;-1:-1:-1;15187:9:1;;14985:217::o;15207:168::-;15247:7;15313:1;15309;15305:6;15301:14;15298:1;15295:21;15290:1;15283:9;15276:17;15272:45;15269:71;;;15320:18;;:::i;:::-;-1:-1:-1;15360:9:1;;15207:168::o;15380:125::-;15420:4;15448:1;15445;15442:8;15439:34;;;15453:18;;:::i;:::-;-1:-1:-1;15490:9:1;;15380:125::o;15510:380::-;15589:1;15585:12;;;;15632;;;15653:61;;15707:4;15699:6;15695:17;15685:27;;15653:61;15760:2;15752:6;15749:14;15729:18;15726:38;15723:161;;;15806:10;15801:3;15797:20;15794:1;15787:31;15841:4;15838:1;15831:15;15869:4;15866:1;15859:15;15723:161;;15510:380;;;:::o;15895:135::-;15934:3;-1:-1:-1;;15955:17:1;;15952:43;;;15975:18;;:::i;:::-;-1:-1:-1;16022:1:1;16011:13;;15895:135::o;16035:127::-;16096:10;16091:3;16087:20;16084:1;16077:31;16127:4;16124:1;16117:15;16151:4;16148:1;16141:15;16167:127;16228:10;16223:3;16219:20;16216:1;16209:31;16259:4;16256:1;16249:15;16283:4;16280:1;16273:15;16299:127;16360:10;16355:3;16351:20;16348:1;16341:31;16391:4;16388:1;16381:15;16415:4;16412:1;16405:15;16563:131;-1:-1:-1;;;;;16638:31:1;;16628:42;;16618:70;;16684:1;16681;16674:12
Swarm Source
ipfs://b7b32778b77eb6296d8a3b403029cff563646daeb217da34255f3508bfe73c99
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.