ERC-20
Overview
Max Total Supply
1,000,000,000 SHIV
Holders
48
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 SHIVValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MainToken
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-24 */ // safu ///// $$$$$$\ $$\ $$\ $$$$$$\ $$$$$$$\ $$\ $$\ $$$$$$\ $$$$$$$\ $$$$$$$$\ $$$$$$$\ // $$ __$$\ $$ | $$ |\_$$ _|$$ __$$\ $$ | $$ |$$ __$$\ $$ __$$\ $$ _____|$$ __$$\ // $$ / \__|$$ | $$ | $$ | $$ | $$ |$$ | $$ |$$ / $$ |$$ | $$ |$$ | $$ | $$ | // \$$$$$$\ $$$$$$$$ | $$ | $$$$$$$\ |\$$\ $$ |$$$$$$$$ |$$ | $$ |$$$$$\ $$$$$$$ | // \____$$\ $$ __$$ | $$ | $$ __$$\ \$$\$$ / $$ __$$ |$$ | $$ |$$ __| $$ __$$< // $$\ $$ |$$ | $$ | $$ | $$ | $$ | \$$$ / $$ | $$ |$$ | $$ |$$ | $$ | $$ | // \$$$$$$ |$$ | $$ |$$$$$$\ $$$$$$$ | \$ / $$ | $$ |$$$$$$$ |$$$$$$$$\ $$ | $$ | // \______/ \__| \__|\______|\_______/ \_/ \__| \__|\_______/ \________|\__| \__| // safu // SPDX-License-Identifier: UNLICENSED // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.0; interface IRouter { function WETH() external pure returns (address); function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } contract MainToken is Ownable, ERC20 { IRouter public Router; uint256 public buyTax; uint256 public sellTax; uint256 public devSplit; uint256 public marketingSplit; uint256 public swapAtAmount; address payable public devWallet; address payable public marketingWallet; address public swapPair; address dead = 0x000000000000000000000000000000000000dEaD; mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) private _isExcludedFromFees; constructor( string memory _name, string memory _symbol, uint256 _buyTax, uint256 _sellTax, uint256 _devSplit, uint256 _marketingSplit, address _router, address _MarketingWallet, address _devWallet, uint256 initialSupply, address realOwner ) ERC20(_name, _symbol) { marketingWallet = payable(_MarketingWallet); devWallet = payable(_devWallet); setBuyTax(_buyTax); setSellTax(_sellTax); setTaxSplit(_devSplit, _marketingSplit); excludeFromFees(realOwner, true); excludeFromFees(address(this), true); _mint(realOwner, initialSupply * (10**18)); swapAtAmount = totalSupply() * 10 / 1000000; // .01% updateSwapRouter(_router); transferOwnership(realOwner); } event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); function setBuyTax(uint256 _newBuyTax) public onlyOwner { buyTax = _newBuyTax; require(_newBuyTax <= 2000, "Cannot exceed 2000"); } function setSellTax(uint256 _newSellTax) public onlyOwner { sellTax = _newSellTax; require(_newSellTax <= 2000, "TotalFee cannot exceed 2000"); } function setTaxSplit(uint256 _devSplit, uint256 _marketingSplit) public onlyOwner { devSplit = _devSplit; marketingSplit = _marketingSplit; require(_devSplit + _marketingSplit == 100, "Split combination must equal 100"); } function setMarketingWallet(address payable newMarketingWallet) public onlyOwner { if (_isExcludedFromFees[marketingWallet] = true) excludeFromFees(marketingWallet, false); marketingWallet = newMarketingWallet; if (_isExcludedFromFees[marketingWallet] = false) excludeFromFees(marketingWallet, true); } function setDevWallet(address payable newDevWallet) public onlyOwner { if (_isExcludedFromFees[devWallet] = true) excludeFromFees(devWallet, false); devWallet = newDevWallet; if (_isExcludedFromFees[devWallet] = false) excludeFromFees(devWallet, true); } function excludeFromFees(address account, bool excluded) public onlyOwner { require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'"); _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function _setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value"); automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateSwapRouter(address newAddress) public onlyOwner { require(newAddress != address(Router), "The router already has that address"); Router = IRouter(newAddress); address bnbPair = IFactory(Router.factory()) .getPair(address(this), Router.WETH()); if(bnbPair == address(0)) bnbPair = IFactory(Router.factory()).createPair(address(this), Router.WETH()); if (automatedMarketMakerPairs[bnbPair] != true && bnbPair != address(0) ){ _setAutomatedMarketMakerPair(bnbPair, true); } _approve(address(this), address(Router), ~uint256(0)); swapPair = bnbPair; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function setSwapAtAmount(uint256 _newSwapAtAmount) external onlyOwner { swapAtAmount = _newSwapAtAmount; } bool private inSwapAndLiquify; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } function _transfer( address from, address to, uint256 amount ) internal override { // if any account belongs to _isExcludedFromFee account then remove the fee if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { if(automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from]) { if (balanceOf(address(this)) > swapAtAmount && !inSwapAndLiquify && automatedMarketMakerPairs[to]) SwapFees(); uint256 currentFee = automatedMarketMakerPairs[to] ? sellTax : buyTax; uint256 extraFee =(amount * currentFee)/10000; if (extraFee > 0) { super._transfer(from, address(this), extraFee); amount = amount - extraFee; } } } super._transfer(from, to, amount); } function SwapFees() private lockTheSwap { uint256 toSwap = balanceOf(address(this)); address[] memory path = new address[](2); path[0] = address(this); path[1] = Router.WETH(); try Router.swapExactTokensForETHSupportingFeeOnTransferTokens( toSwap, 0, path, address(this), block.timestamp ) {} catch { revert("Failed to swap to eth");} if(marketingSplit > 0) { uint256 mAmount = (address(this).balance * marketingSplit) / 100; payable(marketingWallet).transfer(mAmount); } if(devSplit > 0) payable(devWallet).transfer(address(this).balance); } function manualSwap() external onlyOwner { uint256 toSwap = balanceOf(address(this)); address[] memory path = new address[](2); path[0] = address(this); path[1] = Router.WETH(); try Router.swapExactTokensForETHSupportingFeeOnTransferTokens( toSwap, 0, path, address(this), block.timestamp ) {} catch { revert("Failed to swap to eth");} if(marketingSplit > 0) { uint256 mAmount = (address(this).balance * marketingSplit) / 100; payable(marketingWallet).transfer(mAmount); } if(devSplit > 0) payable(devWallet).transfer(address(this).balance); } function withdawlBNB() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } function withdrawlToken(address _tokenAddress) external onlyOwner { ERC20(_tokenAddress).transfer(msg.sender, ERC20(_tokenAddress).balanceOf(address(this))); } // to receive Eth From Router when Swapping receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_devSplit","type":"uint256"},{"internalType":"uint256","name":"_marketingSplit","type":"uint256"},{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_MarketingWallet","type":"address"},{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"realOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"_setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devSplit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingSplit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSellTax","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapAtAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devSplit","type":"uint256"},{"internalType":"uint256","name":"_marketingSplit","type":"uint256"}],"name":"setTaxSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdawlBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"withdrawlToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005457600080fd5b5060405162005b1138038062005b1183398181016040528101906200007a91906200140d565b8a8a6200009c620000906200023a60201b60201c565b6200024260201b60201c565b8160049080519060200190620000b492919062001120565b508060059080519060200190620000cd92919062001120565b50505083600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000163896200030660201b60201c565b62000174886200036860201b60201c565b620001868787620003ca60201b60201c565b620001998160016200043f60201b60201c565b620001ac3060016200043f60201b60201c565b620001d381670de0b6b3a764000084620001c7919062001587565b6200059060201b60201c565b620f4240600a620001e96200070a60201b60201c565b620001f5919062001587565b62000201919062001617565b600b8190555062000218856200071460201b60201c565b620002298162000cab60201b60201c565b505050505050505050505062001dc4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200031662000d4260201b60201c565b806007819055506107d081111562000365576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200035c90620016b0565b60405180910390fd5b50565b6200037862000d4260201b60201c565b806008819055506107d0811115620003c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003be9062001722565b60405180910390fd5b50565b620003da62000d4260201b60201c565b8160098190555080600a8190555060648183620003f8919062001744565b146200043b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200043290620017f1565b60405180910390fd5b5050565b6200044f62000d4260201b60201c565b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415620004e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004dc9062001889565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620005849190620018c8565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000603576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005fa9062001935565b60405180910390fd5b620006176000838362000dd360201b60201c565b80600360008282546200062b919062001744565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000683919062001744565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006ea919062001968565b60405180910390a3620007066000838362000dd860201b60201c565b5050565b6000600354905090565b6200072462000d4260201b60201c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620007b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007af90620019fb565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000869573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200088f919062001a1d565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000919573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200093f919062001a1d565b6040518363ffffffff1660e01b81526004016200095e92919062001a60565b602060405180830381865afa1580156200097c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009a2919062001a1d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000b8657600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a6e919062001a1d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000af8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b1e919062001a1d565b6040518363ffffffff1660e01b815260040162000b3d92919062001a60565b6020604051808303816000875af115801562000b5d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b83919062001a1d565b90505b60011515601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415801562000c155750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1562000c2f5762000c2e81600162000ddd60201b60201c565b5b62000c6630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660001962000f2460201b60201c565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b62000cbb62000d4260201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000d2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d259062001b03565b60405180910390fd5b62000d3f816200024260201b60201c565b50565b62000d526200023a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000d78620010f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000dd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000dc89062001b75565b60405180910390fd5b565b505050565b505050565b62000ded62000d4260201b60201c565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141562000e83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e7a9062001c0d565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f8e9062001ca5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200100a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010019062001d3d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620010ea919062001968565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200112e9062001d8e565b90600052602060002090601f0160209004810192826200115257600085556200119e565b82601f106200116d57805160ff19168380011785556200119e565b828001600101855582156200119e579182015b828111156200119d57825182559160200191906001019062001180565b5b509050620011ad9190620011b1565b5090565b5b80821115620011cc576000816000905550600101620011b2565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200123982620011ee565b810181811067ffffffffffffffff821117156200125b576200125a620011ff565b5b80604052505050565b600062001270620011d0565b90506200127e82826200122e565b919050565b600067ffffffffffffffff821115620012a157620012a0620011ff565b5b620012ac82620011ee565b9050602081019050919050565b60005b83811015620012d9578082015181840152602081019050620012bc565b83811115620012e9576000848401525b50505050565b600062001306620013008462001283565b62001264565b905082815260208101848484011115620013255762001324620011e9565b5b62001332848285620012b9565b509392505050565b600082601f830112620013525762001351620011e4565b5b815162001364848260208601620012ef565b91505092915050565b6000819050919050565b62001382816200136d565b81146200138e57600080fd5b50565b600081519050620013a28162001377565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620013d582620013a8565b9050919050565b620013e781620013c8565b8114620013f357600080fd5b50565b6000815190506200140781620013dc565b92915050565b60008060008060008060008060008060006101608c8e031215620014365762001435620011da565b5b60008c015167ffffffffffffffff811115620014575762001456620011df565b5b620014658e828f016200133a565b9b505060208c015167ffffffffffffffff811115620014895762001488620011df565b5b620014978e828f016200133a565b9a50506040620014aa8e828f0162001391565b9950506060620014bd8e828f0162001391565b9850506080620014d08e828f0162001391565b97505060a0620014e38e828f0162001391565b96505060c0620014f68e828f01620013f6565b95505060e0620015098e828f01620013f6565b9450506101006200151d8e828f01620013f6565b935050610120620015318e828f0162001391565b925050610140620015458e828f01620013f6565b9150509295989b509295989b9093969950565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062001594826200136d565b9150620015a1836200136d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620015dd57620015dc62001558565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062001624826200136d565b915062001631836200136d565b925082620016445762001643620015e8565b5b828204905092915050565b600082825260208201905092915050565b7f43616e6e6f742065786365656420323030300000000000000000000000000000600082015250565b6000620016986012836200164f565b9150620016a58262001660565b602082019050919050565b60006020820190508181036000830152620016cb8162001689565b9050919050565b7f546f74616c4665652063616e6e6f742065786365656420323030300000000000600082015250565b60006200170a601b836200164f565b91506200171782620016d2565b602082019050919050565b600060208201905081810360008301526200173d81620016fb565b9050919050565b600062001751826200136d565b91506200175e836200136d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001796576200179562001558565b5b828201905092915050565b7f53706c697420636f6d62696e6174696f6e206d75737420657175616c20313030600082015250565b6000620017d96020836200164f565b9150620017e682620017a1565b602082019050919050565b600060208201905081810360008301526200180c81620017ca565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b600062001871602a836200164f565b91506200187e8262001813565b604082019050919050565b60006020820190508181036000830152620018a48162001862565b9050919050565b60008115159050919050565b620018c281620018ab565b82525050565b6000602082019050620018df6000830184620018b7565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200191d601f836200164f565b91506200192a82620018e5565b602082019050919050565b6000602082019050818103600083015262001950816200190e565b9050919050565b62001962816200136d565b82525050565b60006020820190506200197f600083018462001957565b92915050565b7f54686520726f7574657220616c7265616479206861732074686174206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000620019e36023836200164f565b9150620019f08262001985565b604082019050919050565b6000602082019050818103600083015262001a1681620019d4565b9050919050565b60006020828403121562001a365762001a35620011da565b5b600062001a4684828501620013f6565b91505092915050565b62001a5a81620013c8565b82525050565b600060408201905062001a77600083018562001a4f565b62001a86602083018462001a4f565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062001aeb6026836200164f565b915062001af88262001a8d565b604082019050919050565b6000602082019050818103600083015262001b1e8162001adc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001b5d6020836200164f565b915062001b6a8262001b25565b602082019050919050565b6000602082019050818103600083015262001b908162001b4e565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b600062001bf56038836200164f565b915062001c028262001b97565b604082019050919050565b6000602082019050818103600083015262001c288162001be6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062001c8d6024836200164f565b915062001c9a8262001c2f565b604082019050919050565b6000602082019050818103600083015262001cc08162001c7e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062001d256022836200164f565b915062001d328262001cc7565b604082019050919050565b6000602082019050818103600083015262001d588162001d16565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062001da757607f821691505b6020821081141562001dbe5762001dbd62001d5f565b5b50919050565b613d3d8062001dd46000396000f3fe60806040526004361061021e5760003560e01c806382af6e8911610123578063ac5cad56116100ab578063dc1052e21161006f578063dc1052e2146107e0578063dd62ed3e14610809578063e799ffb114610846578063f2fde38b1461085d578063f6d7eade1461088657610225565b8063ac5cad56146106fd578063b62496f514610726578063b98b677f14610763578063c02466681461078c578063cc1776d3146107b557610225565b80638ea5220f116100f25780638ea5220f1461060457806395d89b411461062f578063a457c2d71461065a578063a7f7b36f14610697578063a9059cbb146106c057610225565b806382af6e891461055c57806386917524146105855780638cd09d50146105b05780638da5cb5b146105d957610225565b80634647283d116101a65780635d098b38116101755780635d098b381461048b5780636402511e146104b457806370a08231146104dd578063715018a61461051a57806375f0a8741461053157610225565b80634647283d146103e15780634f7041a51461040c5780634fbee1931461043757806351bc3c851461047457610225565b806323b872dd116101ed57806323b872dd146102e657806326991cc814610323578063313ce5671461034e57806339509351146103795780633d907840146103b657610225565b806306fdde031461022a578063095ea7b31461025557806318160ddd146102925780631f53ac02146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108b1565b60405161024c9190612bca565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c85565b610943565b6040516102899190612ce0565b60405180910390f35b34801561029e57600080fd5b506102a7610966565b6040516102b49190612d0a565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190612d63565b610970565b005b3480156102f257600080fd5b5061030d60048036038101906103089190612d90565b610b14565b60405161031a9190612ce0565b60405180910390f35b34801561032f57600080fd5b50610338610b43565b6040516103459190612df2565b60405180910390f35b34801561035a57600080fd5b50610363610b69565b6040516103709190612e29565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612c85565b610b72565b6040516103ad9190612ce0565b60405180910390f35b3480156103c257600080fd5b506103cb610ba9565b6040516103d89190612d0a565b60405180910390f35b3480156103ed57600080fd5b506103f6610baf565b6040516104039190612d0a565b60405180910390f35b34801561041857600080fd5b50610421610bb5565b60405161042e9190612d0a565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612e44565b610bbb565b60405161046b9190612ce0565b60405180910390f35b34801561048057600080fd5b50610489610c11565b005b34801561049757600080fd5b506104b260048036038101906104ad9190612d63565b610f7d565b005b3480156104c057600080fd5b506104db60048036038101906104d69190612e71565b611121565b005b3480156104e957600080fd5b5061050460048036038101906104ff9190612e44565b611133565b6040516105119190612d0a565b60405180910390f35b34801561052657600080fd5b5061052f61117c565b005b34801561053d57600080fd5b50610546611190565b6040516105539190612ead565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190612ec8565b6111b6565b005b34801561059157600080fd5b5061059a61121e565b6040516105a79190612d0a565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612e71565b611224565b005b3480156105e557600080fd5b506105ee61127b565b6040516105fb9190612df2565b60405180910390f35b34801561061057600080fd5b506106196112a4565b6040516106269190612ead565b60405180910390f35b34801561063b57600080fd5b506106446112ca565b6040516106519190612bca565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612c85565b61135c565b60405161068e9190612ce0565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190612f34565b6113d3565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190612c85565b61150f565b6040516106f49190612ce0565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190612e44565b611532565b005b34801561073257600080fd5b5061074d60048036038101906107489190612e44565b611635565b60405161075a9190612ce0565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612e44565b611655565b005b34801561079857600080fd5b506107b360048036038101906107ae9190612f34565b611bb8565b005b3480156107c157600080fd5b506107ca611cfc565b6040516107d79190612d0a565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612e71565b611d02565b005b34801561081557600080fd5b50610830600480360381019061082b9190612f74565b611d59565b60405161083d9190612d0a565b60405180910390f35b34801561085257600080fd5b5061085b611de0565b005b34801561086957600080fd5b50610884600480360381019061087f9190612e44565b611e31565b005b34801561089257600080fd5b5061089b611eb5565b6040516108a89190613013565b60405180910390f35b6060600480546108c09061305d565b80601f01602080910402602001604051908101604052809291908181526020018280546108ec9061305d565b80156109395780601f1061090e57610100808354040283529160200191610939565b820191906000526020600020905b81548152906001019060200180831161091c57829003601f168201915b5050505050905090565b60008061094e611edb565b905061095b818585611ee3565b600191505092915050565b6000600354905090565b6109786120ae565b600160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905515610a2457610a23600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611bb8565b5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905515610b1157610b10600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611bb8565b5b50565b600080610b1f611edb565b9050610b2c85828561212c565b610b378585856121b8565b60019150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b600080610b7d611edb565b9050610b9e818585610b8f8589611d59565b610b9991906130be565b611ee3565b600191505092915050565b60095481565b600a5481565b60075481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c196120ae565b6000610c2430611133565b90506000600267ffffffffffffffff811115610c4357610c42613114565b5b604051908082528060200260200182016040528015610c715781602001602082028036833780820191505090505b5090503081600081518110610c8957610c88613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190613187565b81600181518110610d6857610d67613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401610e069594939291906132ad565b600060405180830381600087803b158015610e2057600080fd5b505af1925050508015610e31575060015b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790613353565b60405180910390fd5b6000600a541115610f045760006064600a5447610e8d9190613373565b610e9791906133fc565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f01573d6000803e3d6000fd5b50505b60006009541115610f7957600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f77573d6000803e3d6000fd5b505b5050565b610f856120ae565b600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790551561103157611030600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611bb8565b5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790551561111e5761111d600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611bb8565b5b50565b6111296120ae565b80600b8190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111846120ae565b61118e6000612445565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111be6120ae565b8160098190555080600a81905550606481836111da91906130be565b1461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190613479565b60405180910390fd5b5050565b600b5481565b61122c6120ae565b806008819055506107d0811115611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f906134e5565b60405180910390fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600580546112d99061305d565b80601f01602080910402602001604051908101604052809291908181526020018280546113059061305d565b80156113525780601f1061132757610100808354040283529160200191611352565b820191906000526020600020905b81548152906001019060200180831161133557829003601f168201915b5050505050905090565b600080611367611edb565b905060006113758286611d59565b9050838110156113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b190613577565b60405180910390fd5b6113c78286868403611ee3565b60019250505092915050565b6113db6120ae565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146590613609565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008061151a611edb565b90506115278185856121b8565b600191505092915050565b61153a6120ae565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115909190612df2565b602060405180830381865afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d1919061363e565b6040518363ffffffff1660e01b81526004016115ee92919061366b565b6020604051808303816000875af115801561160d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163191906136a9565b5050565b60106020528060005260406000206000915054906101000a900460ff1681565b61165d6120ae565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590613748565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190613187565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f9190613187565b6040518363ffffffff1660e01b815260040161188c929190613768565b602060405180830381865afa1580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190613187565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa557600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190613187565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a429190613187565b6040518363ffffffff1660e01b8152600401611a5f929190613768565b6020604051808303816000875af1158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190613187565b90505b60011515601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514158015611b335750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611b4457611b438160016113d3565b5b611b7330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019611ee3565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611bc06120ae565b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4a90613803565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611cf09190612ce0565b60405180910390a25050565b60085481565b611d0a6120ae565b806007819055506107d0811115611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d9061386f565b60405180910390fd5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611de86120ae565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e2e573d6000803e3d6000fd5b50565b611e396120ae565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea090613901565b60405180910390fd5b611eb281612445565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613993565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613a25565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120a19190612d0a565b60405180910390a3505050565b6120b6611edb565b73ffffffffffffffffffffffffffffffffffffffff166120d461127b565b73ffffffffffffffffffffffffffffffffffffffff161461212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613a91565b60405180910390fd5b565b60006121388484611d59565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121b257818110156121a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219b90613afd565b60405180910390fd5b6121b18484848403611ee3565b5b50505050565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225c5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561243557601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123025750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561243457600b5461231330611133565b11801561232d5750601260009054906101000a900460ff16155b80156123825750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123905761238f612509565b5b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123eb576007546123ef565b6008545b9050600061271082846124029190613373565b61240c91906133fc565b90506000811115612431576124228530836128a3565b808361242e9190613b1d565b92505b50505b5b6124408383836128a3565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260006101000a81548160ff021916908315150217905550600061252f30611133565b90506000600267ffffffffffffffff81111561254e5761254d613114565b5b60405190808252806020026020018201604052801561257c5781602001602082028036833780820191505090505b509050308160008151811061259457612593613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f9190613187565b8160018151811061267357612672613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127119594939291906132ad565b600060405180830381600087803b15801561272b57600080fd5b505af192505050801561273c575060015b61277b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277290613353565b60405180910390fd5b6000600a54111561280f5760006064600a54476127989190613373565b6127a291906133fc565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561280c573d6000803e3d6000fd5b50505b6000600954111561288457600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612882573d6000803e3d6000fd5b505b50506000601260006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290a90613bc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a90613c55565b60405180910390fd5b61298e838383612b27565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0c90613ce7565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612aaa91906130be565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b0e9190612d0a565b60405180910390a3612b21848484612b2c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b6b578082015181840152602081019050612b50565b83811115612b7a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b9c82612b31565b612ba68185612b3c565b9350612bb6818560208601612b4d565b612bbf81612b80565b840191505092915050565b60006020820190508181036000830152612be48184612b91565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1c82612bf1565b9050919050565b612c2c81612c11565b8114612c3757600080fd5b50565b600081359050612c4981612c23565b92915050565b6000819050919050565b612c6281612c4f565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b612bec565b5b6000612caa85828601612c3a565b9250506020612cbb85828601612c70565b9150509250929050565b60008115159050919050565b612cda81612cc5565b82525050565b6000602082019050612cf56000830184612cd1565b92915050565b612d0481612c4f565b82525050565b6000602082019050612d1f6000830184612cfb565b92915050565b6000612d3082612bf1565b9050919050565b612d4081612d25565b8114612d4b57600080fd5b50565b600081359050612d5d81612d37565b92915050565b600060208284031215612d7957612d78612bec565b5b6000612d8784828501612d4e565b91505092915050565b600080600060608486031215612da957612da8612bec565b5b6000612db786828701612c3a565b9350506020612dc886828701612c3a565b9250506040612dd986828701612c70565b9150509250925092565b612dec81612c11565b82525050565b6000602082019050612e076000830184612de3565b92915050565b600060ff82169050919050565b612e2381612e0d565b82525050565b6000602082019050612e3e6000830184612e1a565b92915050565b600060208284031215612e5a57612e59612bec565b5b6000612e6884828501612c3a565b91505092915050565b600060208284031215612e8757612e86612bec565b5b6000612e9584828501612c70565b91505092915050565b612ea781612d25565b82525050565b6000602082019050612ec26000830184612e9e565b92915050565b60008060408385031215612edf57612ede612bec565b5b6000612eed85828601612c70565b9250506020612efe85828601612c70565b9150509250929050565b612f1181612cc5565b8114612f1c57600080fd5b50565b600081359050612f2e81612f08565b92915050565b60008060408385031215612f4b57612f4a612bec565b5b6000612f5985828601612c3a565b9250506020612f6a85828601612f1f565b9150509250929050565b60008060408385031215612f8b57612f8a612bec565b5b6000612f9985828601612c3a565b9250506020612faa85828601612c3a565b9150509250929050565b6000819050919050565b6000612fd9612fd4612fcf84612bf1565b612fb4565b612bf1565b9050919050565b6000612feb82612fbe565b9050919050565b6000612ffd82612fe0565b9050919050565b61300d81612ff2565b82525050565b60006020820190506130286000830184613004565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307557607f821691505b602082108114156130895761308861302e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130c982612c4f565b91506130d483612c4f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131095761310861308f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061318181612c23565b92915050565b60006020828403121561319d5761319c612bec565b5b60006131ab84828501613172565b91505092915050565b6000819050919050565b60006131d96131d46131cf846131b4565b612fb4565b612c4f565b9050919050565b6131e9816131be565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61322481612c11565b82525050565b6000613236838361321b565b60208301905092915050565b6000602082019050919050565b600061325a826131ef565b61326481856131fa565b935061326f8361320b565b8060005b838110156132a0578151613287888261322a565b975061329283613242565b925050600181019050613273565b5085935050505092915050565b600060a0820190506132c26000830188612cfb565b6132cf60208301876131e0565b81810360408301526132e1818661324f565b90506132f06060830185612de3565b6132fd6080830184612cfb565b9695505050505050565b7f4661696c656420746f207377617020746f206574680000000000000000000000600082015250565b600061333d601583612b3c565b915061334882613307565b602082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b600061337e82612c4f565b915061338983612c4f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133c2576133c161308f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340782612c4f565b915061341283612c4f565b925082613422576134216133cd565b5b828204905092915050565b7f53706c697420636f6d62696e6174696f6e206d75737420657175616c20313030600082015250565b6000613463602083612b3c565b915061346e8261342d565b602082019050919050565b6000602082019050818103600083015261349281613456565b9050919050565b7f546f74616c4665652063616e6e6f742065786365656420323030300000000000600082015250565b60006134cf601b83612b3c565b91506134da82613499565b602082019050919050565b600060208201905081810360008301526134fe816134c2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613561602583612b3c565b915061356c82613505565b604082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006135f3603883612b3c565b91506135fe82613597565b604082019050919050565b60006020820190508181036000830152613622816135e6565b9050919050565b60008151905061363881612c59565b92915050565b60006020828403121561365457613653612bec565b5b600061366284828501613629565b91505092915050565b60006040820190506136806000830185612de3565b61368d6020830184612cfb565b9392505050565b6000815190506136a381612f08565b92915050565b6000602082840312156136bf576136be612bec565b5b60006136cd84828501613694565b91505092915050565b7f54686520726f7574657220616c7265616479206861732074686174206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613732602383612b3c565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b600060408201905061377d6000830185612de3565b61378a6020830184612de3565b9392505050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006137ed602a83612b3c565b91506137f882613791565b604082019050919050565b6000602082019050818103600083015261381c816137e0565b9050919050565b7f43616e6e6f742065786365656420323030300000000000000000000000000000600082015250565b6000613859601283612b3c565b915061386482613823565b602082019050919050565b600060208201905081810360008301526138888161384c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138eb602683612b3c565b91506138f68261388f565b604082019050919050565b6000602082019050818103600083015261391a816138de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061397d602483612b3c565b915061398882613921565b604082019050919050565b600060208201905081810360008301526139ac81613970565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a0f602283612b3c565b9150613a1a826139b3565b604082019050919050565b60006020820190508181036000830152613a3e81613a02565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a7b602083612b3c565b9150613a8682613a45565b602082019050919050565b60006020820190508181036000830152613aaa81613a6e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613ae7601d83612b3c565b9150613af282613ab1565b602082019050919050565b60006020820190508181036000830152613b1681613ada565b9050919050565b6000613b2882612c4f565b9150613b3383612c4f565b925082821015613b4657613b4561308f565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bad602583612b3c565b9150613bb882613b51565b604082019050919050565b60006020820190508181036000830152613bdc81613ba0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c3f602383612b3c565b9150613c4a82613be3565b604082019050919050565b60006020820190508181036000830152613c6e81613c32565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613cd1602683612b3c565b9150613cdc82613c75565b604082019050919050565b60006020820190508181036000830152613d0081613cc4565b905091905056fea2646970667358221220c840199f0d5f626e10fdc016b4f20858c96f6504c7fea9166190cbf734f972e464736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000004b0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000665cec53d1741e20b47c1010533272b9aa1382d9000000000000000000000000fd0e8e3aa8910515a2273dfce0d2934ee14d6e4c000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000006bc23f03ffde6fcc44ceddfe381b9018f072d31b0000000000000000000000000000000000000000000000000000000000000009534849425641444552000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495600000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806382af6e8911610123578063ac5cad56116100ab578063dc1052e21161006f578063dc1052e2146107e0578063dd62ed3e14610809578063e799ffb114610846578063f2fde38b1461085d578063f6d7eade1461088657610225565b8063ac5cad56146106fd578063b62496f514610726578063b98b677f14610763578063c02466681461078c578063cc1776d3146107b557610225565b80638ea5220f116100f25780638ea5220f1461060457806395d89b411461062f578063a457c2d71461065a578063a7f7b36f14610697578063a9059cbb146106c057610225565b806382af6e891461055c57806386917524146105855780638cd09d50146105b05780638da5cb5b146105d957610225565b80634647283d116101a65780635d098b38116101755780635d098b381461048b5780636402511e146104b457806370a08231146104dd578063715018a61461051a57806375f0a8741461053157610225565b80634647283d146103e15780634f7041a51461040c5780634fbee1931461043757806351bc3c851461047457610225565b806323b872dd116101ed57806323b872dd146102e657806326991cc814610323578063313ce5671461034e57806339509351146103795780633d907840146103b657610225565b806306fdde031461022a578063095ea7b31461025557806318160ddd146102925780631f53ac02146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108b1565b60405161024c9190612bca565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c85565b610943565b6040516102899190612ce0565b60405180910390f35b34801561029e57600080fd5b506102a7610966565b6040516102b49190612d0a565b60405180910390f35b3480156102c957600080fd5b506102e460048036038101906102df9190612d63565b610970565b005b3480156102f257600080fd5b5061030d60048036038101906103089190612d90565b610b14565b60405161031a9190612ce0565b60405180910390f35b34801561032f57600080fd5b50610338610b43565b6040516103459190612df2565b60405180910390f35b34801561035a57600080fd5b50610363610b69565b6040516103709190612e29565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612c85565b610b72565b6040516103ad9190612ce0565b60405180910390f35b3480156103c257600080fd5b506103cb610ba9565b6040516103d89190612d0a565b60405180910390f35b3480156103ed57600080fd5b506103f6610baf565b6040516104039190612d0a565b60405180910390f35b34801561041857600080fd5b50610421610bb5565b60405161042e9190612d0a565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612e44565b610bbb565b60405161046b9190612ce0565b60405180910390f35b34801561048057600080fd5b50610489610c11565b005b34801561049757600080fd5b506104b260048036038101906104ad9190612d63565b610f7d565b005b3480156104c057600080fd5b506104db60048036038101906104d69190612e71565b611121565b005b3480156104e957600080fd5b5061050460048036038101906104ff9190612e44565b611133565b6040516105119190612d0a565b60405180910390f35b34801561052657600080fd5b5061052f61117c565b005b34801561053d57600080fd5b50610546611190565b6040516105539190612ead565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190612ec8565b6111b6565b005b34801561059157600080fd5b5061059a61121e565b6040516105a79190612d0a565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612e71565b611224565b005b3480156105e557600080fd5b506105ee61127b565b6040516105fb9190612df2565b60405180910390f35b34801561061057600080fd5b506106196112a4565b6040516106269190612ead565b60405180910390f35b34801561063b57600080fd5b506106446112ca565b6040516106519190612bca565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612c85565b61135c565b60405161068e9190612ce0565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190612f34565b6113d3565b005b3480156106cc57600080fd5b506106e760048036038101906106e29190612c85565b61150f565b6040516106f49190612ce0565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190612e44565b611532565b005b34801561073257600080fd5b5061074d60048036038101906107489190612e44565b611635565b60405161075a9190612ce0565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612e44565b611655565b005b34801561079857600080fd5b506107b360048036038101906107ae9190612f34565b611bb8565b005b3480156107c157600080fd5b506107ca611cfc565b6040516107d79190612d0a565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612e71565b611d02565b005b34801561081557600080fd5b50610830600480360381019061082b9190612f74565b611d59565b60405161083d9190612d0a565b60405180910390f35b34801561085257600080fd5b5061085b611de0565b005b34801561086957600080fd5b50610884600480360381019061087f9190612e44565b611e31565b005b34801561089257600080fd5b5061089b611eb5565b6040516108a89190613013565b60405180910390f35b6060600480546108c09061305d565b80601f01602080910402602001604051908101604052809291908181526020018280546108ec9061305d565b80156109395780601f1061090e57610100808354040283529160200191610939565b820191906000526020600020905b81548152906001019060200180831161091c57829003601f168201915b5050505050905090565b60008061094e611edb565b905061095b818585611ee3565b600191505092915050565b6000600354905090565b6109786120ae565b600160116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905515610a2457610a23600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611bb8565b5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905515610b1157610b10600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611bb8565b5b50565b600080610b1f611edb565b9050610b2c85828561212c565b610b378585856121b8565b60019150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b600080610b7d611edb565b9050610b9e818585610b8f8589611d59565b610b9991906130be565b611ee3565b600191505092915050565b60095481565b600a5481565b60075481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c196120ae565b6000610c2430611133565b90506000600267ffffffffffffffff811115610c4357610c42613114565b5b604051908082528060200260200182016040528015610c715781602001602082028036833780820191505090505b5090503081600081518110610c8957610c88613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190613187565b81600181518110610d6857610d67613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401610e069594939291906132ad565b600060405180830381600087803b158015610e2057600080fd5b505af1925050508015610e31575060015b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790613353565b60405180910390fd5b6000600a541115610f045760006064600a5447610e8d9190613373565b610e9791906133fc565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f01573d6000803e3d6000fd5b50505b60006009541115610f7957600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f77573d6000803e3d6000fd5b505b5050565b610f856120ae565b600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790551561103157611030600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611bb8565b5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790551561111e5761111d600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611bb8565b5b50565b6111296120ae565b80600b8190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111846120ae565b61118e6000612445565b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111be6120ae565b8160098190555080600a81905550606481836111da91906130be565b1461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190613479565b60405180910390fd5b5050565b600b5481565b61122c6120ae565b806008819055506107d0811115611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f906134e5565b60405180910390fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600580546112d99061305d565b80601f01602080910402602001604051908101604052809291908181526020018280546113059061305d565b80156113525780601f1061132757610100808354040283529160200191611352565b820191906000526020600020905b81548152906001019060200180831161133557829003601f168201915b5050505050905090565b600080611367611edb565b905060006113758286611d59565b9050838110156113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b190613577565b60405180910390fd5b6113c78286868403611ee3565b60019250505092915050565b6113db6120ae565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146590613609565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008061151a611edb565b90506115278185856121b8565b600191505092915050565b61153a6120ae565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115909190612df2565b602060405180830381865afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d1919061363e565b6040518363ffffffff1660e01b81526004016115ee92919061366b565b6020604051808303816000875af115801561160d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163191906136a9565b5050565b60106020528060005260406000206000915054906101000a900460ff1681565b61165d6120ae565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590613748565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190613187565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f9190613187565b6040518363ffffffff1660e01b815260040161188c929190613768565b602060405180830381865afa1580156118a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cd9190613187565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aa557600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190613187565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a429190613187565b6040518363ffffffff1660e01b8152600401611a5f929190613768565b6020604051808303816000875af1158015611a7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa29190613187565b90505b60011515601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514158015611b335750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611b4457611b438160016113d3565b5b611b7330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019611ee3565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611bc06120ae565b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4a90613803565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611cf09190612ce0565b60405180910390a25050565b60085481565b611d0a6120ae565b806007819055506107d0811115611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d9061386f565b60405180910390fd5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611de86120ae565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e2e573d6000803e3d6000fd5b50565b611e396120ae565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea090613901565b60405180910390fd5b611eb281612445565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613993565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613a25565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120a19190612d0a565b60405180910390a3505050565b6120b6611edb565b73ffffffffffffffffffffffffffffffffffffffff166120d461127b565b73ffffffffffffffffffffffffffffffffffffffff161461212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613a91565b60405180910390fd5b565b60006121388484611d59565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121b257818110156121a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219b90613afd565b60405180910390fd5b6121b18484848403611ee3565b5b50505050565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225c5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561243557601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123025750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561243457600b5461231330611133565b11801561232d5750601260009054906101000a900460ff16155b80156123825750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123905761238f612509565b5b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123eb576007546123ef565b6008545b9050600061271082846124029190613373565b61240c91906133fc565b90506000811115612431576124228530836128a3565b808361242e9190613b1d565b92505b50505b5b6124408383836128a3565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260006101000a81548160ff021916908315150217905550600061252f30611133565b90506000600267ffffffffffffffff81111561254e5761254d613114565b5b60405190808252806020026020018201604052801561257c5781602001602082028036833780820191505090505b509050308160008151811061259457612593613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f9190613187565b8160018151811061267357612672613143565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127119594939291906132ad565b600060405180830381600087803b15801561272b57600080fd5b505af192505050801561273c575060015b61277b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277290613353565b60405180910390fd5b6000600a54111561280f5760006064600a54476127989190613373565b6127a291906133fc565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561280c573d6000803e3d6000fd5b50505b6000600954111561288457600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612882573d6000803e3d6000fd5b505b50506000601260006101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290a90613bc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a90613c55565b60405180910390fd5b61298e838383612b27565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0c90613ce7565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612aaa91906130be565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b0e9190612d0a565b60405180910390a3612b21848484612b2c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b6b578082015181840152602081019050612b50565b83811115612b7a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b9c82612b31565b612ba68185612b3c565b9350612bb6818560208601612b4d565b612bbf81612b80565b840191505092915050565b60006020820190508181036000830152612be48184612b91565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1c82612bf1565b9050919050565b612c2c81612c11565b8114612c3757600080fd5b50565b600081359050612c4981612c23565b92915050565b6000819050919050565b612c6281612c4f565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b612bec565b5b6000612caa85828601612c3a565b9250506020612cbb85828601612c70565b9150509250929050565b60008115159050919050565b612cda81612cc5565b82525050565b6000602082019050612cf56000830184612cd1565b92915050565b612d0481612c4f565b82525050565b6000602082019050612d1f6000830184612cfb565b92915050565b6000612d3082612bf1565b9050919050565b612d4081612d25565b8114612d4b57600080fd5b50565b600081359050612d5d81612d37565b92915050565b600060208284031215612d7957612d78612bec565b5b6000612d8784828501612d4e565b91505092915050565b600080600060608486031215612da957612da8612bec565b5b6000612db786828701612c3a565b9350506020612dc886828701612c3a565b9250506040612dd986828701612c70565b9150509250925092565b612dec81612c11565b82525050565b6000602082019050612e076000830184612de3565b92915050565b600060ff82169050919050565b612e2381612e0d565b82525050565b6000602082019050612e3e6000830184612e1a565b92915050565b600060208284031215612e5a57612e59612bec565b5b6000612e6884828501612c3a565b91505092915050565b600060208284031215612e8757612e86612bec565b5b6000612e9584828501612c70565b91505092915050565b612ea781612d25565b82525050565b6000602082019050612ec26000830184612e9e565b92915050565b60008060408385031215612edf57612ede612bec565b5b6000612eed85828601612c70565b9250506020612efe85828601612c70565b9150509250929050565b612f1181612cc5565b8114612f1c57600080fd5b50565b600081359050612f2e81612f08565b92915050565b60008060408385031215612f4b57612f4a612bec565b5b6000612f5985828601612c3a565b9250506020612f6a85828601612f1f565b9150509250929050565b60008060408385031215612f8b57612f8a612bec565b5b6000612f9985828601612c3a565b9250506020612faa85828601612c3a565b9150509250929050565b6000819050919050565b6000612fd9612fd4612fcf84612bf1565b612fb4565b612bf1565b9050919050565b6000612feb82612fbe565b9050919050565b6000612ffd82612fe0565b9050919050565b61300d81612ff2565b82525050565b60006020820190506130286000830184613004565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307557607f821691505b602082108114156130895761308861302e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130c982612c4f565b91506130d483612c4f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131095761310861308f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061318181612c23565b92915050565b60006020828403121561319d5761319c612bec565b5b60006131ab84828501613172565b91505092915050565b6000819050919050565b60006131d96131d46131cf846131b4565b612fb4565b612c4f565b9050919050565b6131e9816131be565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61322481612c11565b82525050565b6000613236838361321b565b60208301905092915050565b6000602082019050919050565b600061325a826131ef565b61326481856131fa565b935061326f8361320b565b8060005b838110156132a0578151613287888261322a565b975061329283613242565b925050600181019050613273565b5085935050505092915050565b600060a0820190506132c26000830188612cfb565b6132cf60208301876131e0565b81810360408301526132e1818661324f565b90506132f06060830185612de3565b6132fd6080830184612cfb565b9695505050505050565b7f4661696c656420746f207377617020746f206574680000000000000000000000600082015250565b600061333d601583612b3c565b915061334882613307565b602082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b600061337e82612c4f565b915061338983612c4f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133c2576133c161308f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340782612c4f565b915061341283612c4f565b925082613422576134216133cd565b5b828204905092915050565b7f53706c697420636f6d62696e6174696f6e206d75737420657175616c20313030600082015250565b6000613463602083612b3c565b915061346e8261342d565b602082019050919050565b6000602082019050818103600083015261349281613456565b9050919050565b7f546f74616c4665652063616e6e6f742065786365656420323030300000000000600082015250565b60006134cf601b83612b3c565b91506134da82613499565b602082019050919050565b600060208201905081810360008301526134fe816134c2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613561602583612b3c565b915061356c82613505565b604082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006135f3603883612b3c565b91506135fe82613597565b604082019050919050565b60006020820190508181036000830152613622816135e6565b9050919050565b60008151905061363881612c59565b92915050565b60006020828403121561365457613653612bec565b5b600061366284828501613629565b91505092915050565b60006040820190506136806000830185612de3565b61368d6020830184612cfb565b9392505050565b6000815190506136a381612f08565b92915050565b6000602082840312156136bf576136be612bec565b5b60006136cd84828501613694565b91505092915050565b7f54686520726f7574657220616c7265616479206861732074686174206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613732602383612b3c565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b600060408201905061377d6000830185612de3565b61378a6020830184612de3565b9392505050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006137ed602a83612b3c565b91506137f882613791565b604082019050919050565b6000602082019050818103600083015261381c816137e0565b9050919050565b7f43616e6e6f742065786365656420323030300000000000000000000000000000600082015250565b6000613859601283612b3c565b915061386482613823565b602082019050919050565b600060208201905081810360008301526138888161384c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138eb602683612b3c565b91506138f68261388f565b604082019050919050565b6000602082019050818103600083015261391a816138de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061397d602483612b3c565b915061398882613921565b604082019050919050565b600060208201905081810360008301526139ac81613970565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a0f602283612b3c565b9150613a1a826139b3565b604082019050919050565b60006020820190508181036000830152613a3e81613a02565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a7b602083612b3c565b9150613a8682613a45565b602082019050919050565b60006020820190508181036000830152613aaa81613a6e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613ae7601d83612b3c565b9150613af282613ab1565b602082019050919050565b60006020820190508181036000830152613b1681613ada565b9050919050565b6000613b2882612c4f565b9150613b3383612c4f565b925082821015613b4657613b4561308f565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bad602583612b3c565b9150613bb882613b51565b604082019050919050565b60006020820190508181036000830152613bdc81613ba0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c3f602383612b3c565b9150613c4a82613be3565b604082019050919050565b60006020820190508181036000830152613c6e81613c32565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613cd1602683612b3c565b9150613cdc82613c75565b604082019050919050565b60006020820190508181036000830152613d0081613cc4565b905091905056fea2646970667358221220c840199f0d5f626e10fdc016b4f20858c96f6504c7fea9166190cbf734f972e464736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000004b0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000665cec53d1741e20b47c1010533272b9aa1382d9000000000000000000000000fd0e8e3aa8910515a2273dfce0d2934ee14d6e4c000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000006bc23f03ffde6fcc44ceddfe381b9018f072d31b0000000000000000000000000000000000000000000000000000000000000009534849425641444552000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495600000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): SHIBVADER
Arg [1] : _symbol (string): SHIV
Arg [2] : _buyTax (uint256): 500
Arg [3] : _sellTax (uint256): 1000
Arg [4] : _devSplit (uint256): 25
Arg [5] : _marketingSplit (uint256): 75
Arg [6] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [7] : _MarketingWallet (address): 0x665CeC53d1741e20b47c1010533272b9AA1382d9
Arg [8] : _devWallet (address): 0xFD0e8E3AA8910515A2273dfCe0D2934ee14d6e4c
Arg [9] : initialSupply (uint256): 1000000000
Arg [10] : realOwner (address): 0x6bC23F03FfdE6FcC44CEdDFe381B9018F072d31b
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [3] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [5] : 000000000000000000000000000000000000000000000000000000000000004b
Arg [6] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [7] : 000000000000000000000000665cec53d1741e20b47c1010533272b9aa1382d9
Arg [8] : 000000000000000000000000fd0e8e3aa8910515a2273dfce0d2934ee14d6e4c
Arg [9] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [10] : 0000000000000000000000006bc23f03ffde6fcc44ceddfe381b9018f072d31b
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [12] : 5348494256414445520000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [14] : 5348495600000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
21640:7486:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7552:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9903:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8672:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24212:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10684:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21971:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8514:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11388:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21784:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21814:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21727:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25876:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27966:734;;;;;;;;;;;;;:::i;:::-;;23838:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26009:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8843:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20221:103;;;;;;;;;;;;;:::i;:::-;;21925:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23576:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21850:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23406:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19573:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21886:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7771:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24840:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9176:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28844:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22067:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25166:698;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24538:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21755:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23244:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9432:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28712:120;;;;;;;;;;;;;:::i;:::-;;20479:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21693:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7552:100;7606:13;7639:5;7632:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7552:100;:::o;9903:201::-;9986:4;10003:13;10019:12;:10;:12::i;:::-;10003:28;;10042:32;10051:5;10058:7;10067:6;10042:8;:32::i;:::-;10092:4;10085:11;;;9903:201;;;;:::o;8672:108::-;8733:7;8760:12;;8753:19;;8672:108;:::o;24212:318::-;19459:13;:11;:13::i;:::-;24330:4:::1;24297:19;:30;24317:9;;;;;;;;;;;24297:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;24293:89;;;24349:33;24365:9;;;;;;;;;;;24376:5;24349:15;:33::i;:::-;24293:89;24407:12;24395:9;;:24;;;;;;;;;;;;;;;;;;24470:5;24437:19;:30;24457:9;;;;;;;;;;;24437:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;24433:89;;;24490:32;24506:9;;;;;;;;;;;24517:4;24490:15;:32::i;:::-;24433:89;24212:318:::0;:::o;10684:295::-;10815:4;10832:15;10850:12;:10;:12::i;:::-;10832:30;;10873:38;10889:4;10895:7;10904:6;10873:15;:38::i;:::-;10922:27;10932:4;10938:2;10942:6;10922:9;:27::i;:::-;10967:4;10960:11;;;10684:295;;;;;:::o;21971:23::-;;;;;;;;;;;;;:::o;8514:93::-;8572:5;8597:2;8590:9;;8514:93;:::o;11388:238::-;11476:4;11493:13;11509:12;:10;:12::i;:::-;11493:28;;11532:64;11541:5;11548:7;11585:10;11557:25;11567:5;11574:7;11557:9;:25::i;:::-;:38;;;;:::i;:::-;11532:8;:64::i;:::-;11614:4;11607:11;;;11388:238;;;;:::o;21784:23::-;;;;:::o;21814:29::-;;;;:::o;21727:21::-;;;;:::o;25876:125::-;25941:4;25965:19;:28;25985:7;25965:28;;;;;;;;;;;;;;;;;;;;;;;;;25958:35;;25876:125;;;:::o;27966:734::-;19459:13;:11;:13::i;:::-;28024:14:::1;28041:24;28059:4;28041:9;:24::i;:::-;28024:41;;28076:21;28114:1;28100:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28076:40;;28145:4;28127;28132:1;28127:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;28171:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28161:4;28166:1;28161:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;28201:6;;;;;;;;;;;:57;;;28273:6;28294:1;28310:4;28337;28357:15;28201:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;28197:231;;28395:31;;;;;;;;;;:::i;:::-;;;;;;;;28197:231;28464:1;28447:14;;:18;28444:171;;;28482:15;28543:3;28525:14;;28501:21;:38;;;;:::i;:::-;28500:46;;;;:::i;:::-;28482:64;;28569:15;;;;;;;;;;;28561:33;;:42;28595:7;28561:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;28467:148;28444:171;28639:1;28628:8;;:12;28625:67;;;28650:9;;;;;;;;;;;28642:27;;:50;28670:21;28642:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;28625:67;28007:693;;27966:734::o:0;23838:366::-;19459:13;:11;:13::i;:::-;23974:4:::1;23935:19;:36;23955:15;;;;;;;;;;;23935:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;23931:101;;;23993:39;24009:15;;;;;;;;;;;24026:5;23993:15;:39::i;:::-;23931:101;24063:18;24045:15;;:36;;;;;;;;;;;;;;;;;;24138:5;24099:19;:36;24119:15;;;;;;;;;;;24099:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;24095:101;;;24158:38;24174:15;;;;;;;;;;;24191:4;24158:15;:38::i;:::-;24095:101;23838:366:::0;:::o;26009:120::-;19459:13;:11;:13::i;:::-;26105:16:::1;26090:12;:31;;;;26009:120:::0;:::o;8843:127::-;8917:7;8944:9;:18;8954:7;8944:18;;;;;;;;;;;;;;;;8937:25;;8843:127;;;:::o;20221:103::-;19459:13;:11;:13::i;:::-;20286:30:::1;20313:1;20286:18;:30::i;:::-;20221:103::o:0;21925:39::-;;;;;;;;;;;;;:::o;23576:254::-;19459:13;:11;:13::i;:::-;23680:9:::1;23669:8;:20;;;;23717:15;23700:14;:32;;;;23782:3;23763:15;23751:9;:27;;;;:::i;:::-;:34;23743:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;23576:254:::0;;:::o;21850:27::-;;;;:::o;23406:164::-;19459:13;:11;:13::i;:::-;23483:11:::1;23473:7;:21;;;;23526:4;23511:11;:19;;23503:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;23406:164:::0;:::o;19573:87::-;19619:7;19646:6;;;;;;;;;;;19639:13;;19573:87;:::o;21886:32::-;;;;;;;;;;;;;:::o;7771:104::-;7827:13;7860:7;7853:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:104;:::o;12129:436::-;12222:4;12239:13;12255:12;:10;:12::i;:::-;12239:28;;12278:24;12305:25;12315:5;12322:7;12305:9;:25::i;:::-;12278:52;;12369:15;12349:16;:35;;12341:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12462:60;12471:5;12478:7;12506:15;12487:16;:34;12462:8;:60::i;:::-;12553:4;12546:11;;;;12129:436;;;;:::o;24840:315::-;19459:13;:11;:13::i;:::-;24975:5:::1;24940:40;;:25;:31;24966:4;24940:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;24932:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;25086:5;25052:25;:31;25078:4;25052:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;25141:5;25107:40;;25135:4;25107:40;;;;;;;;;;;;24840:315:::0;;:::o;9176:193::-;9255:4;9272:13;9288:12;:10;:12::i;:::-;9272:28;;9311;9321:5;9328:2;9332:6;9311:9;:28::i;:::-;9357:4;9350:11;;;9176:193;;;;:::o;28844:181::-;19459:13;:11;:13::i;:::-;28931::::1;28925:29;;;28955:10;28973:13;28967:30;;;29006:4;28967:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28925:88;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28844:181:::0;:::o;22067:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;25166:698::-;19459:13;:11;:13::i;:::-;25270:6:::1;;;;;;;;;;;25248:29;;:10;:29;;;;25240:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;25345:10;25328:6;;:28;;;;;;;;;;;;;;;;;;25367:15;25394:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25385:48;;;25442:4;25449:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25385:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25367:96;;25498:1;25479:21;;:7;:21;;;25476:116;;;25534:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25525:37;;;25571:4;25578:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25525:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25515:77;;25476:116;25647:4;25609:42;;:25;:34;25635:7;25609:34;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;:67;;;;;25674:1;25655:21;;:7;:21;;;;25609:67;25605:143;;;25693:43;25722:7;25731:4;25693:28;:43::i;:::-;25605:143;25760:53;25777:4;25792:6;;;;;;;;;;;25810:1;25801:11;25760:8;:53::i;:::-;25849:7;25838:8;;:18;;;;;;;;;;;;;;;;;;25229:635;25166:698:::0;:::o;24538:290::-;19459:13;:11;:13::i;:::-;24663:8:::1;24631:40;;:19;:28;24651:7;24631:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;24623:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;24760:8;24729:19;:28;24749:7;24729:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;24802:7;24786:34;;;24811:8;24786:34;;;;;;:::i;:::-;;;;;;;;24538:290:::0;;:::o;21755:22::-;;;;:::o;23244:150::-;19459:13;:11;:13::i;:::-;23318:10:::1;23309:6;:19;;;;23359:4;23345:10;:18;;23337:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;23244:150:::0;:::o;9432:151::-;9521:7;9548:11;:18;9560:5;9548:18;;;;;;;;;;;;;;;:27;9567:7;9548:27;;;;;;;;;;;;;;;;9541:34;;9432:151;;;;:::o;28712:120::-;19459:13;:11;:13::i;:::-;28777:10:::1;28769:28;;:51;28798:21;28769:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;28712:120::o:0;20479:201::-;19459:13;:11;:13::i;:::-;20588:1:::1;20568:22;;:8;:22;;;;20560:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20644:28;20663:8;20644:18;:28::i;:::-;20479:201:::0;:::o;21693:21::-;;;;;;;;;;;;;:::o;5192:98::-;5245:7;5272:10;5265:17;;5192:98;:::o;15754:380::-;15907:1;15890:19;;:5;:19;;;;15882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15988:1;15969:21;;:7;:21;;;;15961:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16072:6;16042:11;:18;16054:5;16042:18;;;;;;;;;;;;;;;:27;16061:7;16042:27;;;;;;;;;;;;;;;:36;;;;16110:7;16094:32;;16103:5;16094:32;;;16119:6;16094:32;;;;;;:::i;:::-;;;;;;;;15754:380;;;:::o;19738:132::-;19813:12;:10;:12::i;:::-;19802:23;;:7;:5;:7::i;:::-;:23;;;19794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19738:132::o;16425:453::-;16560:24;16587:25;16597:5;16604:7;16587:9;:25::i;:::-;16560:52;;16647:17;16627:16;:37;16623:248;;16709:6;16689:16;:26;;16681:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16793:51;16802:5;16809:7;16837:6;16818:16;:25;16793:8;:51::i;:::-;16623:248;16549:329;16425:453;;;:::o;26295:906::-;26520:19;:25;26540:4;26520:25;;;;;;;;;;;;;;;;;;;;;;;;;26519:26;:54;;;;;26550:19;:23;26570:2;26550:23;;;;;;;;;;;;;;;;;;;;;;;;;26549:24;26519:54;26516:632;;;26593:25;:29;26619:2;26593:29;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;26626:25;:31;26652:4;26626:31;;;;;;;;;;;;;;;;;;;;;;;;;26593:64;26590:542;;;26709:12;;26682:24;26700:4;26682:9;:24::i;:::-;:39;:60;;;;;26726:16;;;;;;;;;;;26725:17;26682:60;:93;;;;;26746:25;:29;26772:2;26746:29;;;;;;;;;;;;;;;;;;;;;;;;;26682:93;26678:109;;;26777:10;:8;:10::i;:::-;26678:109;26806:18;26827:25;:29;26853:2;26827:29;;;;;;;;;;;;;;;;;;;;;;;;;:48;;26869:6;;26827:48;;;26859:7;;26827:48;26806:69;;26894:16;26934:5;26922:10;26913:6;:19;;;;:::i;:::-;26912:27;;;;:::i;:::-;26894:45;;26973:1;26962:8;:12;26958:156;;;26999:46;27015:4;27029;27036:8;26999:15;:46::i;:::-;27086:8;27077:6;:17;;;;:::i;:::-;27068:26;;26958:156;26659:473;;26590:542;26516:632;27156:33;27172:4;27178:2;27182:6;27156:15;:33::i;:::-;26295:906;;;:::o;20840:191::-;20914:16;20933:6;;;;;;;;;;;20914:25;;20959:8;20950:6;;:17;;;;;;;;;;;;;;;;;;21014:8;20983:40;;21004:8;20983:40;;;;;;;;;;;;20903:128;20840:191;:::o;27209:749::-;26224:4;26205:16;;:23;;;;;;;;;;;;;;;;;;27260:14:::1;27277:24;27295:4;27277:9;:24::i;:::-;27260:41;;27312:21;27350:1;27336:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27312:40;;27381:4;27363;27368:1;27363:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;27407:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27397:4;27402:1;27397:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;27437:6;;;;;;;;;;;:57;;;27509:6;27530:1;27546:4;27573;27593:15;27437:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;27433:231;;27631:31;;;;;;;;;;:::i;:::-;;;;;;;;27433:231;27700:1;27683:14;;:18;27680:171;;;27718:15;27779:3;27761:14;;27737:21;:38;;;;:::i;:::-;27736:46;;;;:::i;:::-;27718:64;;27805:15;;;;;;;;;;;27797:33;;:42;27831:7;27797:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27703:148;27680:171;27875:1;27864:8;;:12;27861:67;;;27886:9;;;;;;;;;;;27878:27;;:50;27906:21;27878:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;27861:67;27249:709;;26270:5:::0;26251:16;;:24;;;;;;;;;;;;;;;;;;27209:749::o;13035:671::-;13182:1;13166:18;;:4;:18;;;;13158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13259:1;13245:16;;:2;:16;;;;13237:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13314:38;13335:4;13341:2;13345:6;13314:20;:38::i;:::-;13365:19;13387:9;:15;13397:4;13387:15;;;;;;;;;;;;;;;;13365:37;;13436:6;13421:11;:21;;13413:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13553:6;13539:11;:20;13521:9;:15;13531:4;13521:15;;;;;;;;;;;;;;;:38;;;;13598:6;13581:9;:13;13591:2;13581:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;13637:2;13622:26;;13631:4;13622:26;;;13641:6;13622:26;;;;;;:::i;:::-;;;;;;;;13661:37;13681:4;13687:2;13691:6;13661:19;:37::i;:::-;13147:559;13035:671;;;:::o;17478:125::-;;;;:::o;18207:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:104::-;3891:7;3920:24;3938:5;3920:24;:::i;:::-;3909:35;;3846:104;;;:::o;3956:138::-;4037:32;4063:5;4037:32;:::i;:::-;4030:5;4027:43;4017:71;;4084:1;4081;4074:12;4017:71;3956:138;:::o;4100:155::-;4154:5;4192:6;4179:20;4170:29;;4208:41;4243:5;4208:41;:::i;:::-;4100:155;;;;:::o;4261:345::-;4328:6;4377:2;4365:9;4356:7;4352:23;4348:32;4345:119;;;4383:79;;:::i;:::-;4345:119;4503:1;4528:61;4581:7;4572:6;4561:9;4557:22;4528:61;:::i;:::-;4518:71;;4474:125;4261:345;;;;:::o;4612:619::-;4689:6;4697;4705;4754:2;4742:9;4733:7;4729:23;4725:32;4722:119;;;4760:79;;:::i;:::-;4722:119;4880:1;4905:53;4950:7;4941:6;4930:9;4926:22;4905:53;:::i;:::-;4895:63;;4851:117;5007:2;5033:53;5078:7;5069:6;5058:9;5054:22;5033:53;:::i;:::-;5023:63;;4978:118;5135:2;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5106:118;4612:619;;;;;:::o;5237:118::-;5324:24;5342:5;5324:24;:::i;:::-;5319:3;5312:37;5237:118;;:::o;5361:222::-;5454:4;5492:2;5481:9;5477:18;5469:26;;5505:71;5573:1;5562:9;5558:17;5549:6;5505:71;:::i;:::-;5361:222;;;;:::o;5589:86::-;5624:7;5664:4;5657:5;5653:16;5642:27;;5589:86;;;:::o;5681:112::-;5764:22;5780:5;5764:22;:::i;:::-;5759:3;5752:35;5681:112;;:::o;5799:214::-;5888:4;5926:2;5915:9;5911:18;5903:26;;5939:67;6003:1;5992:9;5988:17;5979:6;5939:67;:::i;:::-;5799:214;;;;:::o;6019:329::-;6078:6;6127:2;6115:9;6106:7;6102:23;6098:32;6095:119;;;6133:79;;:::i;:::-;6095:119;6253:1;6278:53;6323:7;6314:6;6303:9;6299:22;6278:53;:::i;:::-;6268:63;;6224:117;6019:329;;;;:::o;6354:::-;6413:6;6462:2;6450:9;6441:7;6437:23;6433:32;6430:119;;;6468:79;;:::i;:::-;6430:119;6588:1;6613:53;6658:7;6649:6;6638:9;6634:22;6613:53;:::i;:::-;6603:63;;6559:117;6354:329;;;;:::o;6689:142::-;6792:32;6818:5;6792:32;:::i;:::-;6787:3;6780:45;6689:142;;:::o;6837:254::-;6946:4;6984:2;6973:9;6969:18;6961:26;;6997:87;7081:1;7070:9;7066:17;7057:6;6997:87;:::i;:::-;6837:254;;;;:::o;7097:474::-;7165:6;7173;7222:2;7210:9;7201:7;7197:23;7193:32;7190:119;;;7228:79;;:::i;:::-;7190:119;7348:1;7373:53;7418:7;7409:6;7398:9;7394:22;7373:53;:::i;:::-;7363:63;;7319:117;7475:2;7501:53;7546:7;7537:6;7526:9;7522:22;7501:53;:::i;:::-;7491:63;;7446:118;7097:474;;;;;:::o;7577:116::-;7647:21;7662:5;7647:21;:::i;:::-;7640:5;7637:32;7627:60;;7683:1;7680;7673:12;7627:60;7577:116;:::o;7699:133::-;7742:5;7780:6;7767:20;7758:29;;7796:30;7820:5;7796:30;:::i;:::-;7699:133;;;;:::o;7838:468::-;7903:6;7911;7960:2;7948:9;7939:7;7935:23;7931:32;7928:119;;;7966:79;;:::i;:::-;7928:119;8086:1;8111:53;8156:7;8147:6;8136:9;8132:22;8111:53;:::i;:::-;8101:63;;8057:117;8213:2;8239:50;8281:7;8272:6;8261:9;8257:22;8239:50;:::i;:::-;8229:60;;8184:115;7838:468;;;;;:::o;8312:474::-;8380:6;8388;8437:2;8425:9;8416:7;8412:23;8408:32;8405:119;;;8443:79;;:::i;:::-;8405:119;8563:1;8588:53;8633:7;8624:6;8613:9;8609:22;8588:53;:::i;:::-;8578:63;;8534:117;8690:2;8716:53;8761:7;8752:6;8741:9;8737:22;8716:53;:::i;:::-;8706:63;;8661:118;8312:474;;;;;:::o;8792:60::-;8820:3;8841:5;8834:12;;8792:60;;;:::o;8858:142::-;8908:9;8941:53;8959:34;8968:24;8986:5;8968:24;:::i;:::-;8959:34;:::i;:::-;8941:53;:::i;:::-;8928:66;;8858:142;;;:::o;9006:126::-;9056:9;9089:37;9120:5;9089:37;:::i;:::-;9076:50;;9006:126;;;:::o;9138:141::-;9203:9;9236:37;9267:5;9236:37;:::i;:::-;9223:50;;9138:141;;;:::o;9285:161::-;9387:52;9433:5;9387:52;:::i;:::-;9382:3;9375:65;9285:161;;:::o;9452:252::-;9560:4;9598:2;9587:9;9583:18;9575:26;;9611:86;9694:1;9683:9;9679:17;9670:6;9611:86;:::i;:::-;9452:252;;;;:::o;9710:180::-;9758:77;9755:1;9748:88;9855:4;9852:1;9845:15;9879:4;9876:1;9869:15;9896:320;9940:6;9977:1;9971:4;9967:12;9957:22;;10024:1;10018:4;10014:12;10045:18;10035:81;;10101:4;10093:6;10089:17;10079:27;;10035:81;10163:2;10155:6;10152:14;10132:18;10129:38;10126:84;;;10182:18;;:::i;:::-;10126:84;9947:269;9896:320;;;:::o;10222:180::-;10270:77;10267:1;10260:88;10367:4;10364:1;10357:15;10391:4;10388:1;10381:15;10408:305;10448:3;10467:20;10485:1;10467:20;:::i;:::-;10462:25;;10501:20;10519:1;10501:20;:::i;:::-;10496:25;;10655:1;10587:66;10583:74;10580:1;10577:81;10574:107;;;10661:18;;:::i;:::-;10574:107;10705:1;10702;10698:9;10691:16;;10408:305;;;;:::o;10719:180::-;10767:77;10764:1;10757:88;10864:4;10861:1;10854:15;10888:4;10885:1;10878:15;10905:180;10953:77;10950:1;10943:88;11050:4;11047:1;11040:15;11074:4;11071:1;11064:15;11091:143;11148:5;11179:6;11173:13;11164:22;;11195:33;11222:5;11195:33;:::i;:::-;11091:143;;;;:::o;11240:351::-;11310:6;11359:2;11347:9;11338:7;11334:23;11330:32;11327:119;;;11365:79;;:::i;:::-;11327:119;11485:1;11510:64;11566:7;11557:6;11546:9;11542:22;11510:64;:::i;:::-;11500:74;;11456:128;11240:351;;;;:::o;11597:85::-;11642:7;11671:5;11660:16;;11597:85;;;:::o;11688:158::-;11746:9;11779:61;11797:42;11806:32;11832:5;11806:32;:::i;:::-;11797:42;:::i;:::-;11779:61;:::i;:::-;11766:74;;11688:158;;;:::o;11852:147::-;11947:45;11986:5;11947:45;:::i;:::-;11942:3;11935:58;11852:147;;:::o;12005:114::-;12072:6;12106:5;12100:12;12090:22;;12005:114;;;:::o;12125:184::-;12224:11;12258:6;12253:3;12246:19;12298:4;12293:3;12289:14;12274:29;;12125:184;;;;:::o;12315:132::-;12382:4;12405:3;12397:11;;12435:4;12430:3;12426:14;12418:22;;12315:132;;;:::o;12453:108::-;12530:24;12548:5;12530:24;:::i;:::-;12525:3;12518:37;12453:108;;:::o;12567:179::-;12636:10;12657:46;12699:3;12691:6;12657:46;:::i;:::-;12735:4;12730:3;12726:14;12712:28;;12567:179;;;;:::o;12752:113::-;12822:4;12854;12849:3;12845:14;12837:22;;12752:113;;;:::o;12901:732::-;13020:3;13049:54;13097:5;13049:54;:::i;:::-;13119:86;13198:6;13193:3;13119:86;:::i;:::-;13112:93;;13229:56;13279:5;13229:56;:::i;:::-;13308:7;13339:1;13324:284;13349:6;13346:1;13343:13;13324:284;;;13425:6;13419:13;13452:63;13511:3;13496:13;13452:63;:::i;:::-;13445:70;;13538:60;13591:6;13538:60;:::i;:::-;13528:70;;13384:224;13371:1;13368;13364:9;13359:14;;13324:284;;;13328:14;13624:3;13617:10;;13025:608;;;12901:732;;;;:::o;13639:831::-;13902:4;13940:3;13929:9;13925:19;13917:27;;13954:71;14022:1;14011:9;14007:17;13998:6;13954:71;:::i;:::-;14035:80;14111:2;14100:9;14096:18;14087:6;14035:80;:::i;:::-;14162:9;14156:4;14152:20;14147:2;14136:9;14132:18;14125:48;14190:108;14293:4;14284:6;14190:108;:::i;:::-;14182:116;;14308:72;14376:2;14365:9;14361:18;14352:6;14308:72;:::i;:::-;14390:73;14458:3;14447:9;14443:19;14434:6;14390:73;:::i;:::-;13639:831;;;;;;;;:::o;14476:171::-;14616:23;14612:1;14604:6;14600:14;14593:47;14476:171;:::o;14653:366::-;14795:3;14816:67;14880:2;14875:3;14816:67;:::i;:::-;14809:74;;14892:93;14981:3;14892:93;:::i;:::-;15010:2;15005:3;15001:12;14994:19;;14653:366;;;:::o;15025:419::-;15191:4;15229:2;15218:9;15214:18;15206:26;;15278:9;15272:4;15268:20;15264:1;15253:9;15249:17;15242:47;15306:131;15432:4;15306:131;:::i;:::-;15298:139;;15025:419;;;:::o;15450:348::-;15490:7;15513:20;15531:1;15513:20;:::i;:::-;15508:25;;15547:20;15565:1;15547:20;:::i;:::-;15542:25;;15735:1;15667:66;15663:74;15660:1;15657:81;15652:1;15645:9;15638:17;15634:105;15631:131;;;15742:18;;:::i;:::-;15631:131;15790:1;15787;15783:9;15772:20;;15450:348;;;;:::o;15804:180::-;15852:77;15849:1;15842:88;15949:4;15946:1;15939:15;15973:4;15970:1;15963:15;15990:185;16030:1;16047:20;16065:1;16047:20;:::i;:::-;16042:25;;16081:20;16099:1;16081:20;:::i;:::-;16076:25;;16120:1;16110:35;;16125:18;;:::i;:::-;16110:35;16167:1;16164;16160:9;16155:14;;15990:185;;;;:::o;16181:182::-;16321:34;16317:1;16309:6;16305:14;16298:58;16181:182;:::o;16369:366::-;16511:3;16532:67;16596:2;16591:3;16532:67;:::i;:::-;16525:74;;16608:93;16697:3;16608:93;:::i;:::-;16726:2;16721:3;16717:12;16710:19;;16369:366;;;:::o;16741:419::-;16907:4;16945:2;16934:9;16930:18;16922:26;;16994:9;16988:4;16984:20;16980:1;16969:9;16965:17;16958:47;17022:131;17148:4;17022:131;:::i;:::-;17014:139;;16741:419;;;:::o;17166:177::-;17306:29;17302:1;17294:6;17290:14;17283:53;17166:177;:::o;17349:366::-;17491:3;17512:67;17576:2;17571:3;17512:67;:::i;:::-;17505:74;;17588:93;17677:3;17588:93;:::i;:::-;17706:2;17701:3;17697:12;17690:19;;17349:366;;;:::o;17721:419::-;17887:4;17925:2;17914:9;17910:18;17902:26;;17974:9;17968:4;17964:20;17960:1;17949:9;17945:17;17938:47;18002:131;18128:4;18002:131;:::i;:::-;17994:139;;17721:419;;;:::o;18146:224::-;18286:34;18282:1;18274:6;18270:14;18263:58;18355:7;18350:2;18342:6;18338:15;18331:32;18146:224;:::o;18376:366::-;18518:3;18539:67;18603:2;18598:3;18539:67;:::i;:::-;18532:74;;18615:93;18704:3;18615:93;:::i;:::-;18733:2;18728:3;18724:12;18717:19;;18376:366;;;:::o;18748:419::-;18914:4;18952:2;18941:9;18937:18;18929:26;;19001:9;18995:4;18991:20;18987:1;18976:9;18972:17;18965:47;19029:131;19155:4;19029:131;:::i;:::-;19021:139;;18748:419;;;:::o;19173:243::-;19313:34;19309:1;19301:6;19297:14;19290:58;19382:26;19377:2;19369:6;19365:15;19358:51;19173:243;:::o;19422:366::-;19564:3;19585:67;19649:2;19644:3;19585:67;:::i;:::-;19578:74;;19661:93;19750:3;19661:93;:::i;:::-;19779:2;19774:3;19770:12;19763:19;;19422:366;;;:::o;19794:419::-;19960:4;19998:2;19987:9;19983:18;19975:26;;20047:9;20041:4;20037:20;20033:1;20022:9;20018:17;20011:47;20075:131;20201:4;20075:131;:::i;:::-;20067:139;;19794:419;;;:::o;20219:143::-;20276:5;20307:6;20301:13;20292:22;;20323:33;20350:5;20323:33;:::i;:::-;20219:143;;;;:::o;20368:351::-;20438:6;20487:2;20475:9;20466:7;20462:23;20458:32;20455:119;;;20493:79;;:::i;:::-;20455:119;20613:1;20638:64;20694:7;20685:6;20674:9;20670:22;20638:64;:::i;:::-;20628:74;;20584:128;20368:351;;;;:::o;20725:332::-;20846:4;20884:2;20873:9;20869:18;20861:26;;20897:71;20965:1;20954:9;20950:17;20941:6;20897:71;:::i;:::-;20978:72;21046:2;21035:9;21031:18;21022:6;20978:72;:::i;:::-;20725:332;;;;;:::o;21063:137::-;21117:5;21148:6;21142:13;21133:22;;21164:30;21188:5;21164:30;:::i;:::-;21063:137;;;;:::o;21206:345::-;21273:6;21322:2;21310:9;21301:7;21297:23;21293:32;21290:119;;;21328:79;;:::i;:::-;21290:119;21448:1;21473:61;21526:7;21517:6;21506:9;21502:22;21473:61;:::i;:::-;21463:71;;21419:125;21206:345;;;;:::o;21557:222::-;21697:34;21693:1;21685:6;21681:14;21674:58;21766:5;21761:2;21753:6;21749:15;21742:30;21557:222;:::o;21785:366::-;21927:3;21948:67;22012:2;22007:3;21948:67;:::i;:::-;21941:74;;22024:93;22113:3;22024:93;:::i;:::-;22142:2;22137:3;22133:12;22126:19;;21785:366;;;:::o;22157:419::-;22323:4;22361:2;22350:9;22346:18;22338:26;;22410:9;22404:4;22400:20;22396:1;22385:9;22381:17;22374:47;22438:131;22564:4;22438:131;:::i;:::-;22430:139;;22157:419;;;:::o;22582:332::-;22703:4;22741:2;22730:9;22726:18;22718:26;;22754:71;22822:1;22811:9;22807:17;22798:6;22754:71;:::i;:::-;22835:72;22903:2;22892:9;22888:18;22879:6;22835:72;:::i;:::-;22582:332;;;;;:::o;22920:229::-;23060:34;23056:1;23048:6;23044:14;23037:58;23129:12;23124:2;23116:6;23112:15;23105:37;22920:229;:::o;23155:366::-;23297:3;23318:67;23382:2;23377:3;23318:67;:::i;:::-;23311:74;;23394:93;23483:3;23394:93;:::i;:::-;23512:2;23507:3;23503:12;23496:19;;23155:366;;;:::o;23527:419::-;23693:4;23731:2;23720:9;23716:18;23708:26;;23780:9;23774:4;23770:20;23766:1;23755:9;23751:17;23744:47;23808:131;23934:4;23808:131;:::i;:::-;23800:139;;23527:419;;;:::o;23952:168::-;24092:20;24088:1;24080:6;24076:14;24069:44;23952:168;:::o;24126:366::-;24268:3;24289:67;24353:2;24348:3;24289:67;:::i;:::-;24282:74;;24365:93;24454:3;24365:93;:::i;:::-;24483:2;24478:3;24474:12;24467:19;;24126:366;;;:::o;24498:419::-;24664:4;24702:2;24691:9;24687:18;24679:26;;24751:9;24745:4;24741:20;24737:1;24726:9;24722:17;24715:47;24779:131;24905:4;24779:131;:::i;:::-;24771:139;;24498:419;;;:::o;24923:225::-;25063:34;25059:1;25051:6;25047:14;25040:58;25132:8;25127:2;25119:6;25115:15;25108:33;24923:225;:::o;25154:366::-;25296:3;25317:67;25381:2;25376:3;25317:67;:::i;:::-;25310:74;;25393:93;25482:3;25393:93;:::i;:::-;25511:2;25506:3;25502:12;25495:19;;25154:366;;;:::o;25526:419::-;25692:4;25730:2;25719:9;25715:18;25707:26;;25779:9;25773:4;25769:20;25765:1;25754:9;25750:17;25743:47;25807:131;25933:4;25807:131;:::i;:::-;25799:139;;25526:419;;;:::o;25951:223::-;26091:34;26087:1;26079:6;26075:14;26068:58;26160:6;26155:2;26147:6;26143:15;26136:31;25951:223;:::o;26180:366::-;26322:3;26343:67;26407:2;26402:3;26343:67;:::i;:::-;26336:74;;26419:93;26508:3;26419:93;:::i;:::-;26537:2;26532:3;26528:12;26521:19;;26180:366;;;:::o;26552:419::-;26718:4;26756:2;26745:9;26741:18;26733:26;;26805:9;26799:4;26795:20;26791:1;26780:9;26776:17;26769:47;26833:131;26959:4;26833:131;:::i;:::-;26825:139;;26552:419;;;:::o;26977:221::-;27117:34;27113:1;27105:6;27101:14;27094:58;27186:4;27181:2;27173:6;27169:15;27162:29;26977:221;:::o;27204:366::-;27346:3;27367:67;27431:2;27426:3;27367:67;:::i;:::-;27360:74;;27443:93;27532:3;27443:93;:::i;:::-;27561:2;27556:3;27552:12;27545:19;;27204:366;;;:::o;27576:419::-;27742:4;27780:2;27769:9;27765:18;27757:26;;27829:9;27823:4;27819:20;27815:1;27804:9;27800:17;27793:47;27857:131;27983:4;27857:131;:::i;:::-;27849:139;;27576:419;;;:::o;28001:182::-;28141:34;28137:1;28129:6;28125:14;28118:58;28001:182;:::o;28189:366::-;28331:3;28352:67;28416:2;28411:3;28352:67;:::i;:::-;28345:74;;28428:93;28517:3;28428:93;:::i;:::-;28546:2;28541:3;28537:12;28530:19;;28189:366;;;:::o;28561:419::-;28727:4;28765:2;28754:9;28750:18;28742:26;;28814:9;28808:4;28804:20;28800:1;28789:9;28785:17;28778:47;28842:131;28968:4;28842:131;:::i;:::-;28834:139;;28561:419;;;:::o;28986:179::-;29126:31;29122:1;29114:6;29110:14;29103:55;28986:179;:::o;29171:366::-;29313:3;29334:67;29398:2;29393:3;29334:67;:::i;:::-;29327:74;;29410:93;29499:3;29410:93;:::i;:::-;29528:2;29523:3;29519:12;29512:19;;29171:366;;;:::o;29543:419::-;29709:4;29747:2;29736:9;29732:18;29724:26;;29796:9;29790:4;29786:20;29782:1;29771:9;29767:17;29760:47;29824:131;29950:4;29824:131;:::i;:::-;29816:139;;29543:419;;;:::o;29968:191::-;30008:4;30028:20;30046:1;30028:20;:::i;:::-;30023:25;;30062:20;30080:1;30062:20;:::i;:::-;30057:25;;30101:1;30098;30095:8;30092:34;;;30106:18;;:::i;:::-;30092:34;30151:1;30148;30144:9;30136:17;;29968:191;;;;:::o;30165:224::-;30305:34;30301:1;30293:6;30289:14;30282:58;30374:7;30369:2;30361:6;30357:15;30350:32;30165:224;:::o;30395:366::-;30537:3;30558:67;30622:2;30617:3;30558:67;:::i;:::-;30551:74;;30634:93;30723:3;30634:93;:::i;:::-;30752:2;30747:3;30743:12;30736:19;;30395:366;;;:::o;30767:419::-;30933:4;30971:2;30960:9;30956:18;30948:26;;31020:9;31014:4;31010:20;31006:1;30995:9;30991:17;30984:47;31048:131;31174:4;31048:131;:::i;:::-;31040:139;;30767:419;;;:::o;31192:222::-;31332:34;31328:1;31320:6;31316:14;31309:58;31401:5;31396:2;31388:6;31384:15;31377:30;31192:222;:::o;31420:366::-;31562:3;31583:67;31647:2;31642:3;31583:67;:::i;:::-;31576:74;;31659:93;31748:3;31659:93;:::i;:::-;31777:2;31772:3;31768:12;31761:19;;31420:366;;;:::o;31792:419::-;31958:4;31996:2;31985:9;31981:18;31973:26;;32045:9;32039:4;32035:20;32031:1;32020:9;32016:17;32009:47;32073:131;32199:4;32073:131;:::i;:::-;32065:139;;31792:419;;;:::o;32217:225::-;32357:34;32353:1;32345:6;32341:14;32334:58;32426:8;32421:2;32413:6;32409:15;32402:33;32217:225;:::o;32448:366::-;32590:3;32611:67;32675:2;32670:3;32611:67;:::i;:::-;32604:74;;32687:93;32776:3;32687:93;:::i;:::-;32805:2;32800:3;32796:12;32789:19;;32448:366;;;:::o;32820:419::-;32986:4;33024:2;33013:9;33009:18;33001:26;;33073:9;33067:4;33063:20;33059:1;33048:9;33044:17;33037:47;33101:131;33227:4;33101:131;:::i;:::-;33093:139;;32820:419;;;:::o
Swarm Source
ipfs://c840199f0d5f626e10fdc016b4f20858c96f6504c7fea9166190cbf734f972e4
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.