ERC-20
Overview
Max Total Supply
2,000,000,000 CZ
Holders
5
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CZ
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-28 */ /** */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Router { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } } 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() external view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the name of the token. */ function name() external view virtual override returns (string memory) { return _name; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @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() external view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @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 ) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @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 ) external 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 ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); 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 ) external 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 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 ) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** @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"); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(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"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(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); } } } 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"); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); } } contract CZ is ERC20, Ownable { mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _sniper; address public _marketingWallet = 0x6F1476534C29ef30CFff3a65918f9B9a7292c3E4; address public _devWallet = 0x6F1476534C29ef30CFff3a65918f9B9a7292c3E4; uint256 public feesBuy = 1000; uint256 public _feesM = 1500; uint256 public _feesLp = 0; uint256 public _feesDev = 0; uint256 public feesSellTotal = _feesLp + _feesM + _feesDev; uint256 public _maxWallet; uint256 public _minTokensBeforeSwapping = 600; IUniswapV2Router public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool public started; bool inSwapAndLiquify; modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() ERC20("Changpeng Zhao", "CZ") { uint256 startSupply = 2e9 * 10 ** decimals(); _mint(msg.sender, (startSupply)); IUniswapV2Router _uniswapV2Router = IUniswapV2Router( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[address(uniswapV2Router)] = true; _isExcludedFromFee[msg.sender] = true; _maxWallet = startSupply / 50; _approve(msg.sender, address(uniswapV2Router), type(uint256).max); _approve(address(this), address(uniswapV2Router), type(uint256).max); } function openTrading() external onlyOwner { started = true; } function removeSnipers(address[] calldata accounts) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _sniper[accounts[i]] = false; } } function addSnipers(address[] calldata accounts) external onlyOwner { uint256 len = accounts.length; for(uint256 i = 0; i < len;) { _sniper[accounts[i]] = true; unchecked { i++; } } } function _transfer( address from, address to, uint256 amount ) internal override { require(!_sniper[from], "Sniper rejected"); if ( _isExcludedFromFee[from] || _isExcludedFromFee[to] || inSwapAndLiquify ) { super._transfer(from, to, amount); } else { require(started, "Not open yet"); uint taxAmount; if (to == uniswapV2Pair) { uint256 bal = balanceOf(address(this)); uint256 threshold = balanceOf(uniswapV2Pair) * _minTokensBeforeSwapping / 10000; if ( bal >= threshold ) { if (bal >= 3 * threshold) bal = 3 * threshold; _swapAndLiquify(bal); } taxAmount = amount * feesSellTotal / 10000; } else if (from == uniswapV2Pair) { taxAmount = amount * feesBuy / 10000; require( balanceOf(to) + amount - taxAmount <= _maxWallet, "Transfer amount exceeds max wallet" ); } else { require( balanceOf(to) + amount <= _maxWallet, "Transfer amount exceeds max wallet" ); } super._transfer(from, to, amount - taxAmount); if (taxAmount > 0) { super._transfer(from, address(this), taxAmount); } } } function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 _feesSellTotal = feesSellTotal; if (_feesSellTotal == 0) return; uint256 feeTotal = _feesSellTotal - _feesLp / 2; uint256 toSell = contractTokenBalance * feeTotal / _feesSellTotal; _swapTokensForEth(toSell); uint256 balance = address(this).balance; uint256 toDev = balance * _feesDev / feeTotal; uint256 toMarketing = balance * _feesM / feeTotal; if (_feesLp > 0) { _addLiquidity( contractTokenBalance - toSell, balance - toDev - toMarketing ); } if (toMarketing > 0) { payable(_marketingWallet).transfer(toMarketing); } if (address(this).balance > 0) { payable(_devWallet).transfer(address(this).balance); } } function _swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), (block.timestamp) ); } function _addLiquidity( uint256 tokenAmount, uint256 ethAmount ) private lockTheSwap { uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function getStatus(address a) external view returns(bool) { return _sniper[a]; } function setDevWallet(address newWallet) external onlyOwner { _devWallet = newWallet; } function setMarketingWallet(address newWallet) external onlyOwner { _marketingWallet = newWallet; } function setMinTokens(uint256 newValue) external onlyOwner { _minTokensBeforeSwapping = newValue; } function excludeFromFees(address[] calldata addresses) external onlyOwner { for (uint256 i = 0; i < addresses.length; i++) { _isExcludedFromFee[addresses[i]] = true; } } function includeInFees(address[] calldata addresses) external onlyOwner { for (uint256 i = 0; i < addresses.length; i++) { _isExcludedFromFee[addresses[i]] = false; } } function editBuyFees(uint256 newValue) external onlyOwner { feesBuy = newValue; } function editSellFees( uint256 __feesDev, uint256 __feesLp, uint256 __feesM ) external onlyOwner { _feesDev = __feesDev; _feesLp = __feesLp; _feesM = __feesM; feesSellTotal = __feesDev + __feesLp + __feesM; } function setMaxWallet(uint256 __maxWallet) external onlyOwner { _maxWallet = __maxWallet; } function getStuckETH() external onlyOwner { payable(msg.sender).transfer(address(this).balance); } function getStuckTokens( IERC20 tokenAddress, address walletAddress, uint256 amt ) external onlyOwner { uint256 bal = tokenAddress.balanceOf(address(this)); IERC20(tokenAddress).transfer( walletAddress, amt > bal ? bal : amt ); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feesM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTokensBeforeSwapping","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"addSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"editBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__feesDev","type":"uint256"},{"internalType":"uint256","name":"__feesLp","type":"uint256"},{"internalType":"uint256","name":"__feesM","type":"uint256"}],"name":"editSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesSellTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"getStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletAddress","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"getStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__maxWallet","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"started","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052736f1476534c29ef30cfff3a65918f9b9a7292c3e4600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736f1476534c29ef30cfff3a65918f9b9a7292c3e4600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600a556105dc600b556000600c556000600d55600d54600b54600c54620000d9919062000937565b620000e5919062000937565b600e55610258601055348015620000fb57600080fd5b506040518060400160405280600e81526020017f4368616e6770656e67205a68616f0000000000000000000000000000000000008152506040518060400160405280600281526020017f435a000000000000000000000000000000000000000000000000000000000000815250816003908162000179919062000be2565b5080600490816200018b919062000be2565b505050620001ae620001a26200051160201b60201c565b6200051960201b60201c565b6000620001c0620005df60201b60201c565b600a620001ce919062000e2a565b6377359400620001df919062000e7b565b9050620001f33382620005e860201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e919062000f30565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030c919062000f30565b6040518363ffffffff1660e01b81526004016200032b92919062000f73565b6020604051808303816000875af11580156200034b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000371919062000f30565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016006600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060328262000499919062000fcf565b600f81905550620004d4336080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200072d60201b60201c565b62000509306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200072d60201b60201c565b5050620011e8565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200065a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006519062001068565b60405180910390fd5b80600260008282546200066e919062000937565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200072191906200109b565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200079f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000796906200112e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080890620011c6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008f191906200109b565b60405180910390a3505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200094482620008fe565b91506200095183620008fe565b92508282019050808211156200096c576200096b62000908565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009f457607f821691505b60208210810362000a0a5762000a09620009ac565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a35565b62000a80868362000a35565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000ac362000abd62000ab784620008fe565b62000a98565b620008fe565b9050919050565b6000819050919050565b62000adf8362000aa2565b62000af762000aee8262000aca565b84845462000a42565b825550505050565b600090565b62000b0e62000aff565b62000b1b81848462000ad4565b505050565b5b8181101562000b435762000b3760008262000b04565b60018101905062000b21565b5050565b601f82111562000b925762000b5c8162000a10565b62000b678462000a25565b8101602085101562000b77578190505b62000b8f62000b868562000a25565b83018262000b20565b50505b505050565b600082821c905092915050565b600062000bb76000198460080262000b97565b1980831691505092915050565b600062000bd2838362000ba4565b9150826002028217905092915050565b62000bed8262000972565b67ffffffffffffffff81111562000c095762000c086200097d565b5b62000c158254620009db565b62000c2282828562000b47565b600060209050601f83116001811462000c5a576000841562000c45578287015190505b62000c51858262000bc4565b86555062000cc1565b601f19841662000c6a8662000a10565b60005b8281101562000c945784890151825560018201915060208501945060208101905062000c6d565b8683101562000cb4578489015162000cb0601f89168262000ba4565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000d285780860481111562000d005762000cff62000908565b5b600185161562000d105780820291505b808102905062000d208562000cc9565b945062000ce0565b94509492505050565b60008262000d43576001905062000e16565b8162000d53576000905062000e16565b816001811462000d6c576002811462000d775762000dad565b600191505062000e16565b60ff84111562000d8c5762000d8b62000908565b5b8360020a91508482111562000da65762000da562000908565b5b5062000e16565b5060208310610133831016604e8410600b841016171562000de75782820a90508381111562000de15762000de062000908565b5b62000e16565b62000df6848484600162000cd6565b9250905081840481111562000e105762000e0f62000908565b5b81810290505b9392505050565b600060ff82169050919050565b600062000e3782620008fe565b915062000e448362000e1d565b925062000e737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d31565b905092915050565b600062000e8882620008fe565b915062000e9583620008fe565b925082820262000ea581620008fe565b9150828204841483151762000ebf5762000ebe62000908565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ef88262000ecb565b9050919050565b62000f0a8162000eeb565b811462000f1657600080fd5b50565b60008151905062000f2a8162000eff565b92915050565b60006020828403121562000f495762000f4862000ec6565b5b600062000f598482850162000f19565b91505092915050565b62000f6d8162000eeb565b82525050565b600060408201905062000f8a600083018562000f62565b62000f99602083018462000f62565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fdc82620008fe565b915062000fe983620008fe565b92508262000ffc5762000ffb62000fa0565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001050601f8362001007565b91506200105d8262001018565b602082019050919050565b60006020820190508181036000830152620010838162001041565b9050919050565b6200109581620008fe565b82525050565b6000602082019050620010b260008301846200108a565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200111660248362001007565b91506200112382620010b8565b604082019050919050565b60006020820190508181036000830152620011498162001107565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011ae60228362001007565b9150620011bb8262001150565b604082019050919050565b60006020820190508181036000830152620011e1816200119f565b9050919050565b60805160a0516133e66200123860003960008181610b8601528181611828015281816118930152611927015260008181610a2e0152818161205c01528181612139015261220701526133e66000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063a9059cbb116100ab578063d3208b131161006f578063d3208b131461085a578063dd62ed3e14610885578063e6991e2d146108c2578063f2fde38b146108eb578063f476b8a41461091457610246565b8063a9059cbb14610789578063b41150c5146107c6578063c9567bf9146107ef578063ca1dd6d414610806578063ce3b9aa31461083157610246565b8063923ffc14116100f2578063923ffc14146106a457806392f42870146106cd57806395d89b41146106f6578063962dfc7514610721578063a457c2d71461074c57610246565b806370a08231146105cf578063713f9cfd1461060c578063715018a61461063757806382247ec01461064e5780638da5cb5b1461067957610246565b8063313ce567116101bc5780635b28b246116101805780635b28b246146105125780635d0044ca1461053b5780635d098b3814610564578063606208041461058d5780636b996150146105b857610246565b8063313ce5671461042b57806333f82cea14610456578063395093511461048157806349bd5a5e146104be57806349f2c4ae146104e957610246565b806318160ddd1161020357806318160ddd146103325780631f2698ab1461035d5780631f53ac021461038857806323b872dd146103b157806330ccebb5146103ee57610246565b806306fdde031461024b578063095ea7b3146102765780630e7e573f146102b357806311a63e17146102dc5780631694505e1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d9190612366565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612426565b6109d1565b6040516102aa9190612481565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061249c565b6109f4565b005b3480156102e857600080fd5b506102f1610a06565b6040516102fe91906124d8565b60405180910390f35b34801561031357600080fd5b5061031c610a2c565b6040516103299190612552565b60405180910390f35b34801561033e57600080fd5b50610347610a50565b604051610354919061257c565b60405180910390f35b34801561036957600080fd5b50610372610a5a565b60405161037f9190612481565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612597565b610a6d565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906125c4565b610ab9565b6040516103e59190612481565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612597565b610ae8565b6040516104229190612481565b60405180910390f35b34801561043757600080fd5b50610440610b3e565b60405161044d9190612633565b60405180910390f35b34801561046257600080fd5b5061046b610b47565b604051610478919061257c565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612426565b610b4d565b6040516104b59190612481565b60405180910390f35b3480156104ca57600080fd5b506104d3610b84565b6040516104e091906124d8565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b91906126b3565b610ba8565b005b34801561051e57600080fd5b506105396004803603810190610534919061273e565b610c55565b005b34801561054757600080fd5b50610562600480360381019061055d919061249c565b610d6e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612597565b610d80565b005b34801561059957600080fd5b506105a2610dcc565b6040516105af919061257c565b60405180910390f35b3480156105c457600080fd5b506105cd610dd2565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612597565b610e23565b604051610603919061257c565b60405180910390f35b34801561061857600080fd5b50610621610e6b565b60405161062e919061257c565b60405180910390f35b34801561064357600080fd5b5061064c610e71565b005b34801561065a57600080fd5b50610663610e85565b604051610670919061257c565b60405180910390f35b34801561068557600080fd5b5061068e610e8b565b60405161069b91906124d8565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126b3565b610eb5565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906126b3565b610f62565b005b34801561070257600080fd5b5061070b61100f565b6040516107189190612366565b60405180910390f35b34801561072d57600080fd5b506107366110a1565b60405161074391906124d8565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612426565b6110c7565b6040516107809190612481565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190612426565b61113e565b6040516107bd9190612481565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190612791565b611161565b005b3480156107fb57600080fd5b506108046111a0565b005b34801561081257600080fd5b5061081b6111c5565b604051610828919061257c565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906126b3565b6111cb565b005b34801561086657600080fd5b5061086f611278565b60405161087c919061257c565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a791906127e4565b61127e565b6040516108b9919061257c565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e4919061249c565b611305565b005b3480156108f757600080fd5b50610912600480360381019061090d9190612597565b611317565b005b34801561092057600080fd5b5061092961139a565b604051610936919061257c565b60405180910390f35b60606003805461094e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612853565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b6000806109dc6113a0565b90506109e98185856113a8565b600191505092915050565b6109fc611571565b8060108190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b601160009054906101000a900460ff1681565b610a75611571565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ac46113a0565b9050610ad18582856115ef565b610adc85858561167b565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b600b5481565b600080610b586113a0565b9050610b79818585610b6a858961127e565b610b7491906128b3565b6113a8565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bb0611571565b60005b82829050811015610c5057600060076000858585818110610bd757610bd66128e7565b5b9050602002016020810190610bec9190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4890612916565b915050610bb3565b505050565b610c5d611571565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9891906124d8565b602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612973565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84838511610d055784610d07565b835b6040518363ffffffff1660e01b8152600401610d249291906129a0565b6020604051808303816000875af1158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906129f5565b5050505050565b610d76611571565b80600f8190555050565b610d88611571565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b610dda611571565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e20573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b610e79611571565b610e836000611a89565b565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebd611571565b60005b82829050811015610f5d57600060066000858585818110610ee457610ee36128e7565b5b9050602002016020810190610ef99190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5590612916565b915050610ec0565b505050565b610f6a611571565b60005b8282905081101561100a57600160066000858585818110610f9157610f906128e7565b5b9050602002016020810190610fa69190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061100290612916565b915050610f6d565b505050565b60606004805461101e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461104a90612853565b80156110975780601f1061106c57610100808354040283529160200191611097565b820191906000526020600020905b81548152906001019060200180831161107a57829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d26113a0565b905060006110e0828661127e565b905083811015611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612a94565b60405180910390fd5b61113282868684036113a8565b60019250505092915050565b6000806111496113a0565b905061115681858561167b565b600191505092915050565b611169611571565b82600d8190555081600c8190555080600b8190555080828461118b91906128b3565b61119591906128b3565b600e81905550505050565b6111a8611571565b6001601160006101000a81548160ff021916908315150217905550565b600e5481565b6111d3611571565b600082829050905060005b81811015611272576001600760008686858181106111ff576111fe6128e7565b5b90506020020160208101906112149190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506111de565b50505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611571565b80600a8190555050565b61131f611571565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612b26565b60405180910390fd5b61139781611a89565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90612c4a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611564919061257c565b60405180910390a3505050565b6115796113a0565b73ffffffffffffffffffffffffffffffffffffffff16611597610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612cb6565b60405180910390fd5b565b60006115fb848461127e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116755781811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90612d22565b60405180910390fd5b61167484848484036113a8565b5b50505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612d8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117a95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750601160019054906101000a900460ff165b156117d5576117d0838383611b4f565b611a84565b601160009054906101000a900460ff16611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612dfa565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361192557600061188430610e23565b905060006127106010546118b77f0000000000000000000000000000000000000000000000000000000000000000610e23565b6118c19190612e1a565b6118cb9190612e8b565b9050808210611901578060036118e19190612e1a565b82106118f7578060036118f49190612e1a565b91505b61190082611daf565b5b612710600e54856119129190612e1a565b61191c9190612e8b565b92505050611a57565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119fd57612710600a54836119899190612e1a565b6119939190612e8b565b9050600f5481836119a386610e23565b6119ad91906128b3565b6119b79190612ebc565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90612f62565b60405180910390fd5b611a56565b600f5482611a0a85610e23565b611a1491906128b3565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612f62565b60405180910390fd5b5b5b611a6d84848385611a689190612ebc565b611b4f565b6000811115611a8257611a81843083611b4f565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613086565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90613118565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da1919061257c565b60405180910390a350505050565b6001601160016101000a81548160ff0219169083151502179055506000600e54905060008103611ddf5750611f84565b60006002600c54611df09190612e8b565b82611dfb9190612ebc565b90506000828285611e0c9190612e1a565b611e169190612e8b565b9050611e2181611fa2565b6000479050600083600d5483611e379190612e1a565b611e419190612e8b565b9050600084600b5484611e549190612e1a565b611e5e9190612e8b565b90506000600c541115611e9757611e968488611e7a9190612ebc565b828486611e879190612ebc565b611e919190612ebc565b6121ea565b5b6000811115611f0a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b505b6000471115611f7d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f7b573d6000803e3d6000fd5b505b5050505050505b6000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fda57611fd9613138565b5b6040519080825280602002602001820160405280156120085781602001602082028036833780820191505090505b50905030816000815181106120205761201f6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e9919061317c565b816001815181106120fd576120fc6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121999594939291906132a2565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061224f610e8b565b426040518863ffffffff1660e01b8152600401612271969594939291906132fc565b60606040518083038185885af115801561228f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b4919061335d565b5050506000601160016101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123105780820151818401526020810190506122f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612338826122d6565b61234281856122e1565b93506123528185602086016122f2565b61235b8161231c565b840191505092915050565b60006020820190508181036000830152612380818461232d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c612388565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6000602082840312156124b2576124b1612388565b5b60006124c084828501612411565b91505092915050565b6124d2816123b2565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6000819050919050565b600061251861251361250e84612392565b6124f3565b612392565b9050919050565b600061252a826124fd565b9050919050565b600061253c8261251f565b9050919050565b61254c81612531565b82525050565b60006020820190506125676000830184612543565b92915050565b612576816123f0565b82525050565b6000602082019050612591600083018461256d565b92915050565b6000602082840312156125ad576125ac612388565b5b60006125bb848285016123db565b91505092915050565b6000806000606084860312156125dd576125dc612388565b5b60006125eb868287016123db565b93505060206125fc868287016123db565b925050604061260d86828701612411565b9150509250925092565b600060ff82169050919050565b61262d81612617565b82525050565b60006020820190506126486000830184612624565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126735761267261264e565b5b8235905067ffffffffffffffff8111156126905761268f612653565b5b6020830191508360208202830111156126ac576126ab612658565b5b9250929050565b600080602083850312156126ca576126c9612388565b5b600083013567ffffffffffffffff8111156126e8576126e761238d565b5b6126f48582860161265d565b92509250509250929050565b600061270b826123b2565b9050919050565b61271b81612700565b811461272657600080fd5b50565b60008135905061273881612712565b92915050565b60008060006060848603121561275757612756612388565b5b600061276586828701612729565b9350506020612776868287016123db565b925050604061278786828701612411565b9150509250925092565b6000806000606084860312156127aa576127a9612388565b5b60006127b886828701612411565b93505060206127c986828701612411565b92505060406127da86828701612411565b9150509250925092565b600080604083850312156127fb576127fa612388565b5b6000612809858286016123db565b925050602061281a858286016123db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061286b57607f821691505b60208210810361287e5761287d612824565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128be826123f0565b91506128c9836123f0565b92508282019050808211156128e1576128e0612884565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612921826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361295357612952612884565b5b600182019050919050565b60008151905061296d816123fa565b92915050565b60006020828403121561298957612988612388565b5b60006129978482850161295e565b91505092915050565b60006040820190506129b560008301856124c9565b6129c2602083018461256d565b9392505050565b6129d281612466565b81146129dd57600080fd5b50565b6000815190506129ef816129c9565b92915050565b600060208284031215612a0b57612a0a612388565b5b6000612a19848285016129e0565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a7e6025836122e1565b9150612a8982612a22565b604082019050919050565b60006020820190508181036000830152612aad81612a71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b106026836122e1565b9150612b1b82612ab4565b604082019050919050565b60006020820190508181036000830152612b3f81612b03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba26024836122e1565b9150612bad82612b46565b604082019050919050565b60006020820190508181036000830152612bd181612b95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c346022836122e1565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca06020836122e1565b9150612cab82612c6a565b602082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d0c601d836122e1565b9150612d1782612cd6565b602082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f536e697065722072656a65637465640000000000000000000000000000000000600082015250565b6000612d78600f836122e1565b9150612d8382612d42565b602082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f4e6f74206f70656e207965740000000000000000000000000000000000000000600082015250565b6000612de4600c836122e1565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b9050919050565b6000612e25826123f0565b9150612e30836123f0565b9250828202612e3e816123f0565b91508282048414831517612e5557612e54612884565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e96826123f0565b9150612ea1836123f0565b925082612eb157612eb0612e5c565b5b828204905092915050565b6000612ec7826123f0565b9150612ed2836123f0565b9250828203905081811115612eea57612ee9612884565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473206d61782077616c6c60008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f4c6022836122e1565b9150612f5782612ef0565b604082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fde6025836122e1565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130706023836122e1565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006131026026836122e1565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613176816123c4565b92915050565b60006020828403121561319257613191612388565b5b60006131a084828501613167565b91505092915050565b6000819050919050565b60006131ce6131c96131c4846131a9565b6124f3565b6123f0565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816123b2565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b7600083018861256d565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e560608301856124c9565b6132f2608083018461256d565b9695505050505050565b600060c08201905061331160008301896124c9565b61331e602083018861256d565b61332b60408301876131d5565b61333860608301866131d5565b61334560808301856124c9565b61335260a083018461256d565b979650505050505050565b60008060006060848603121561337657613375612388565b5b60006133848682870161295e565b93505060206133958682870161295e565b92505060406133a68682870161295e565b915050925092509256fea264697066735822122008ee62c90ff15b1bdfe92a6acdfb6739898dbaa73b4a954d28b7a023444e2d9764736f6c63430008110033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806370a082311161012e578063a9059cbb116100ab578063d3208b131161006f578063d3208b131461085a578063dd62ed3e14610885578063e6991e2d146108c2578063f2fde38b146108eb578063f476b8a41461091457610246565b8063a9059cbb14610789578063b41150c5146107c6578063c9567bf9146107ef578063ca1dd6d414610806578063ce3b9aa31461083157610246565b8063923ffc14116100f2578063923ffc14146106a457806392f42870146106cd57806395d89b41146106f6578063962dfc7514610721578063a457c2d71461074c57610246565b806370a08231146105cf578063713f9cfd1461060c578063715018a61461063757806382247ec01461064e5780638da5cb5b1461067957610246565b8063313ce567116101bc5780635b28b246116101805780635b28b246146105125780635d0044ca1461053b5780635d098b3814610564578063606208041461058d5780636b996150146105b857610246565b8063313ce5671461042b57806333f82cea14610456578063395093511461048157806349bd5a5e146104be57806349f2c4ae146104e957610246565b806318160ddd1161020357806318160ddd146103325780631f2698ab1461035d5780631f53ac021461038857806323b872dd146103b157806330ccebb5146103ee57610246565b806306fdde031461024b578063095ea7b3146102765780630e7e573f146102b357806311a63e17146102dc5780631694505e1461030757610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061093f565b60405161026d9190612366565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612426565b6109d1565b6040516102aa9190612481565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061249c565b6109f4565b005b3480156102e857600080fd5b506102f1610a06565b6040516102fe91906124d8565b60405180910390f35b34801561031357600080fd5b5061031c610a2c565b6040516103299190612552565b60405180910390f35b34801561033e57600080fd5b50610347610a50565b604051610354919061257c565b60405180910390f35b34801561036957600080fd5b50610372610a5a565b60405161037f9190612481565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612597565b610a6d565b005b3480156103bd57600080fd5b506103d860048036038101906103d391906125c4565b610ab9565b6040516103e59190612481565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612597565b610ae8565b6040516104229190612481565b60405180910390f35b34801561043757600080fd5b50610440610b3e565b60405161044d9190612633565b60405180910390f35b34801561046257600080fd5b5061046b610b47565b604051610478919061257c565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612426565b610b4d565b6040516104b59190612481565b60405180910390f35b3480156104ca57600080fd5b506104d3610b84565b6040516104e091906124d8565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b91906126b3565b610ba8565b005b34801561051e57600080fd5b506105396004803603810190610534919061273e565b610c55565b005b34801561054757600080fd5b50610562600480360381019061055d919061249c565b610d6e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612597565b610d80565b005b34801561059957600080fd5b506105a2610dcc565b6040516105af919061257c565b60405180910390f35b3480156105c457600080fd5b506105cd610dd2565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612597565b610e23565b604051610603919061257c565b60405180910390f35b34801561061857600080fd5b50610621610e6b565b60405161062e919061257c565b60405180910390f35b34801561064357600080fd5b5061064c610e71565b005b34801561065a57600080fd5b50610663610e85565b604051610670919061257c565b60405180910390f35b34801561068557600080fd5b5061068e610e8b565b60405161069b91906124d8565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126b3565b610eb5565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906126b3565b610f62565b005b34801561070257600080fd5b5061070b61100f565b6040516107189190612366565b60405180910390f35b34801561072d57600080fd5b506107366110a1565b60405161074391906124d8565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190612426565b6110c7565b6040516107809190612481565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190612426565b61113e565b6040516107bd9190612481565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190612791565b611161565b005b3480156107fb57600080fd5b506108046111a0565b005b34801561081257600080fd5b5061081b6111c5565b604051610828919061257c565b60405180910390f35b34801561083d57600080fd5b50610858600480360381019061085391906126b3565b6111cb565b005b34801561086657600080fd5b5061086f611278565b60405161087c919061257c565b60405180910390f35b34801561089157600080fd5b506108ac60048036038101906108a791906127e4565b61127e565b6040516108b9919061257c565b60405180910390f35b3480156108ce57600080fd5b506108e960048036038101906108e4919061249c565b611305565b005b3480156108f757600080fd5b50610912600480360381019061090d9190612597565b611317565b005b34801561092057600080fd5b5061092961139a565b604051610936919061257c565b60405180910390f35b60606003805461094e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612853565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b6000806109dc6113a0565b90506109e98185856113a8565b600191505092915050565b6109fc611571565b8060108190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b601160009054906101000a900460ff1681565b610a75611571565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610ac46113a0565b9050610ad18582856115ef565b610adc85858561167b565b60019150509392505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006012905090565b600b5481565b600080610b586113a0565b9050610b79818585610b6a858961127e565b610b7491906128b3565b6113a8565b600191505092915050565b7f000000000000000000000000f3d8213659cb2b9656ba4c56e6bb8e9773c0282381565b610bb0611571565b60005b82829050811015610c5057600060076000858585818110610bd757610bd66128e7565b5b9050602002016020810190610bec9190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4890612916565b915050610bb3565b505050565b610c5d611571565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c9891906124d8565b602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612973565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84838511610d055784610d07565b835b6040518363ffffffff1660e01b8152600401610d249291906129a0565b6020604051808303816000875af1158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6791906129f5565b5050505050565b610d76611571565b80600f8190555050565b610d88611571565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b610dda611571565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e20573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b610e79611571565b610e836000611a89565b565b600f5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ebd611571565b60005b82829050811015610f5d57600060066000858585818110610ee457610ee36128e7565b5b9050602002016020810190610ef99190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5590612916565b915050610ec0565b505050565b610f6a611571565b60005b8282905081101561100a57600160066000858585818110610f9157610f906128e7565b5b9050602002016020810190610fa69190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061100290612916565b915050610f6d565b505050565b60606004805461101e90612853565b80601f016020809104026020016040519081016040528092919081815260200182805461104a90612853565b80156110975780601f1061106c57610100808354040283529160200191611097565b820191906000526020600020905b81548152906001019060200180831161107a57829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d26113a0565b905060006110e0828661127e565b905083811015611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612a94565b60405180910390fd5b61113282868684036113a8565b60019250505092915050565b6000806111496113a0565b905061115681858561167b565b600191505092915050565b611169611571565b82600d8190555081600c8190555080600b8190555080828461118b91906128b3565b61119591906128b3565b600e81905550505050565b6111a8611571565b6001601160006101000a81548160ff021916908315150217905550565b600e5481565b6111d3611571565b600082829050905060005b81811015611272576001600760008686858181106111ff576111fe6128e7565b5b90506020020160208101906112149190612597565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506111de565b50505050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611571565b80600a8190555050565b61131f611571565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612b26565b60405180910390fd5b61139781611a89565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90612bb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147d90612c4a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611564919061257c565b60405180910390a3505050565b6115796113a0565b73ffffffffffffffffffffffffffffffffffffffff16611597610e8b565b73ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490612cb6565b60405180910390fd5b565b60006115fb848461127e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116755781811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e90612d22565b60405180910390fd5b61167484848484036113a8565b5b50505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612d8e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117a95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750601160019054906101000a900460ff165b156117d5576117d0838383611b4f565b611a84565b601160009054906101000a900460ff16611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612dfa565b60405180910390fd5b60007f000000000000000000000000f3d8213659cb2b9656ba4c56e6bb8e9773c0282373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361192557600061188430610e23565b905060006127106010546118b77f000000000000000000000000f3d8213659cb2b9656ba4c56e6bb8e9773c02823610e23565b6118c19190612e1a565b6118cb9190612e8b565b9050808210611901578060036118e19190612e1a565b82106118f7578060036118f49190612e1a565b91505b61190082611daf565b5b612710600e54856119129190612e1a565b61191c9190612e8b565b92505050611a57565b7f000000000000000000000000f3d8213659cb2b9656ba4c56e6bb8e9773c0282373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036119fd57612710600a54836119899190612e1a565b6119939190612e8b565b9050600f5481836119a386610e23565b6119ad91906128b3565b6119b79190612ebc565b11156119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90612f62565b60405180910390fd5b611a56565b600f5482611a0a85610e23565b611a1491906128b3565b1115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612f62565b60405180910390fd5b5b5b611a6d84848385611a689190612ebc565b611b4f565b6000811115611a8257611a81843083611b4f565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb590612ff4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613086565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caa90613118565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da1919061257c565b60405180910390a350505050565b6001601160016101000a81548160ff0219169083151502179055506000600e54905060008103611ddf5750611f84565b60006002600c54611df09190612e8b565b82611dfb9190612ebc565b90506000828285611e0c9190612e1a565b611e169190612e8b565b9050611e2181611fa2565b6000479050600083600d5483611e379190612e1a565b611e419190612e8b565b9050600084600b5484611e549190612e1a565b611e5e9190612e8b565b90506000600c541115611e9757611e968488611e7a9190612ebc565b828486611e879190612ebc565b611e919190612ebc565b6121ea565b5b6000811115611f0a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f08573d6000803e3d6000fd5b505b6000471115611f7d57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f7b573d6000803e3d6000fd5b505b5050505050505b6000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fda57611fd9613138565b5b6040519080825280602002602001820160405280156120085781602001602082028036833780820191505090505b50905030816000815181106120205761201f6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e9919061317c565b816001815181106120fd576120fc6128e7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121999594939291906132a2565b600060405180830381600087803b1580156121b357600080fd5b505af11580156121c7573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6001601160016101000a81548160ff0219169083151502179055507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061224f610e8b565b426040518863ffffffff1660e01b8152600401612271969594939291906132fc565b60606040518083038185885af115801561228f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b4919061335d565b5050506000601160016101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123105780820151818401526020810190506122f5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612338826122d6565b61234281856122e1565b93506123528185602086016122f2565b61235b8161231c565b840191505092915050565b60006020820190508181036000830152612380818461232d565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c612388565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6000602082840312156124b2576124b1612388565b5b60006124c084828501612411565b91505092915050565b6124d2816123b2565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6000819050919050565b600061251861251361250e84612392565b6124f3565b612392565b9050919050565b600061252a826124fd565b9050919050565b600061253c8261251f565b9050919050565b61254c81612531565b82525050565b60006020820190506125676000830184612543565b92915050565b612576816123f0565b82525050565b6000602082019050612591600083018461256d565b92915050565b6000602082840312156125ad576125ac612388565b5b60006125bb848285016123db565b91505092915050565b6000806000606084860312156125dd576125dc612388565b5b60006125eb868287016123db565b93505060206125fc868287016123db565b925050604061260d86828701612411565b9150509250925092565b600060ff82169050919050565b61262d81612617565b82525050565b60006020820190506126486000830184612624565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126735761267261264e565b5b8235905067ffffffffffffffff8111156126905761268f612653565b5b6020830191508360208202830111156126ac576126ab612658565b5b9250929050565b600080602083850312156126ca576126c9612388565b5b600083013567ffffffffffffffff8111156126e8576126e761238d565b5b6126f48582860161265d565b92509250509250929050565b600061270b826123b2565b9050919050565b61271b81612700565b811461272657600080fd5b50565b60008135905061273881612712565b92915050565b60008060006060848603121561275757612756612388565b5b600061276586828701612729565b9350506020612776868287016123db565b925050604061278786828701612411565b9150509250925092565b6000806000606084860312156127aa576127a9612388565b5b60006127b886828701612411565b93505060206127c986828701612411565b92505060406127da86828701612411565b9150509250925092565b600080604083850312156127fb576127fa612388565b5b6000612809858286016123db565b925050602061281a858286016123db565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061286b57607f821691505b60208210810361287e5761287d612824565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128be826123f0565b91506128c9836123f0565b92508282019050808211156128e1576128e0612884565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612921826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361295357612952612884565b5b600182019050919050565b60008151905061296d816123fa565b92915050565b60006020828403121561298957612988612388565b5b60006129978482850161295e565b91505092915050565b60006040820190506129b560008301856124c9565b6129c2602083018461256d565b9392505050565b6129d281612466565b81146129dd57600080fd5b50565b6000815190506129ef816129c9565b92915050565b600060208284031215612a0b57612a0a612388565b5b6000612a19848285016129e0565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a7e6025836122e1565b9150612a8982612a22565b604082019050919050565b60006020820190508181036000830152612aad81612a71565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b106026836122e1565b9150612b1b82612ab4565b604082019050919050565b60006020820190508181036000830152612b3f81612b03565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba26024836122e1565b9150612bad82612b46565b604082019050919050565b60006020820190508181036000830152612bd181612b95565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c346022836122e1565b9150612c3f82612bd8565b604082019050919050565b60006020820190508181036000830152612c6381612c27565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ca06020836122e1565b9150612cab82612c6a565b602082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d0c601d836122e1565b9150612d1782612cd6565b602082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f536e697065722072656a65637465640000000000000000000000000000000000600082015250565b6000612d78600f836122e1565b9150612d8382612d42565b602082019050919050565b60006020820190508181036000830152612da781612d6b565b9050919050565b7f4e6f74206f70656e207965740000000000000000000000000000000000000000600082015250565b6000612de4600c836122e1565b9150612def82612dae565b602082019050919050565b60006020820190508181036000830152612e1381612dd7565b9050919050565b6000612e25826123f0565b9150612e30836123f0565b9250828202612e3e816123f0565b91508282048414831517612e5557612e54612884565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e96826123f0565b9150612ea1836123f0565b925082612eb157612eb0612e5c565b5b828204905092915050565b6000612ec7826123f0565b9150612ed2836123f0565b9250828203905081811115612eea57612ee9612884565b5b92915050565b7f5472616e7366657220616d6f756e742065786365656473206d61782077616c6c60008201527f6574000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f4c6022836122e1565b9150612f5782612ef0565b604082019050919050565b60006020820190508181036000830152612f7b81612f3f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fde6025836122e1565b9150612fe982612f82565b604082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130706023836122e1565b915061307b82613014565b604082019050919050565b6000602082019050818103600083015261309f81613063565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006131026026836122e1565b915061310d826130a6565b604082019050919050565b60006020820190508181036000830152613131816130f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613176816123c4565b92915050565b60006020828403121561319257613191612388565b5b60006131a084828501613167565b91505092915050565b6000819050919050565b60006131ce6131c96131c4846131a9565b6124f3565b6123f0565b9050919050565b6131de816131b3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613219816123b2565b82525050565b600061322b8383613210565b60208301905092915050565b6000602082019050919050565b600061324f826131e4565b61325981856131ef565b935061326483613200565b8060005b8381101561329557815161327c888261321f565b975061328783613237565b925050600181019050613268565b5085935050505092915050565b600060a0820190506132b7600083018861256d565b6132c460208301876131d5565b81810360408301526132d68186613244565b90506132e560608301856124c9565b6132f2608083018461256d565b9695505050505050565b600060c08201905061331160008301896124c9565b61331e602083018861256d565b61332b60408301876131d5565b61333860608301866131d5565b61334560808301856124c9565b61335260a083018461256d565b979650505050505050565b60008060006060848603121561337657613375612388565b5b60006133848682870161295e565b93505060206133958682870161295e565b92505060406133a68682870161295e565b915050925092509256fea264697066735822122008ee62c90ff15b1bdfe92a6acdfb6739898dbaa73b4a954d28b7a023444e2d9764736f6c63430008110033
Deployed Bytecode Sourcemap
15926:7426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6945:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9145:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21776:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16153:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16525:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8050:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16631:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21546:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9953:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21444:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7892:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16270:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11662:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16581:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17684:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22993:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22760:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21655:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16471:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22873:112;;;;;;;;;;;;;:::i;:::-;;7110:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16232:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5400:103;;;;;;;;;;;;;:::i;:::-;;16439:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4752:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22133:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21897:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6769:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16070:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10753:500;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8605:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22471:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17601:75;;;;;;;;;;;;;:::i;:::-;;16372:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17882:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16338:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8223:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22368:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5658:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16305:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6945:102;7001:13;7034:5;7027:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6945:102;:::o;9145:228::-;9255:4;9272:13;9288:12;:10;:12::i;:::-;9272:28;;9311:32;9320:5;9327:7;9336:6;9311:8;:32::i;:::-;9361:4;9354:11;;;9145:228;;;;:::o;21776:113::-;4638:13;:11;:13::i;:::-;21873:8:::1;21846:24;:35;;;;21776:113:::0;:::o;16153:70::-;;;;;;;;;;;;;:::o;16525:49::-;;;:::o;8050:110::-;8113:7;8140:12;;8133:19;;8050:110;:::o;16631:19::-;;;;;;;;;;;;;:::o;21546:101::-;4638:13;:11;:13::i;:::-;21630:9:::1;21617:10;;:22;;;;;;;;;;;;;;;;;;21546:101:::0;:::o;9953:297::-;10086:4;10103:15;10121:12;:10;:12::i;:::-;10103:30;;10144:38;10160:4;10166:7;10175:6;10144:15;:38::i;:::-;10193:27;10203:4;10209:2;10213:6;10193:9;:27::i;:::-;10238:4;10231:11;;;9953:297;;;;;:::o;21444:94::-;21496:4;21520:7;:10;21528:1;21520:10;;;;;;;;;;;;;;;;;;;;;;;;;21513:17;;21444:94;;;:::o;7892:93::-;7950:5;7975:2;7968:9;;7892:93;:::o;16270:28::-;;;;:::o;11662:265::-;11777:4;11794:13;11810:12;:10;:12::i;:::-;11794:28;;11833:64;11842:5;11849:7;11886:10;11858:25;11868:5;11875:7;11858:9;:25::i;:::-;:38;;;;:::i;:::-;11833:8;:64::i;:::-;11915:4;11908:11;;;11662:265;;;;:::o;16581:38::-;;;:::o;17684:190::-;4638:13;:11;:13::i;:::-;17771:9:::1;17766:101;17790:8;;:15;;17786:1;:19;17766:101;;;17850:5;17827:7;:20;17835:8;;17844:1;17835:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17827:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17807:3;;;;;:::i;:::-;;;;17766:101;;;;17684:190:::0;;:::o;22993:319::-;4638:13;:11;:13::i;:::-;23138:11:::1;23152:12;:22;;;23183:4;23152:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23138:51;;23207:12;23200:29;;;23244:13;23278:3;23272;:9;:21;;23290:3;23272:21;;;23284:3;23272:21;23200:104;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23127:185;22993:319:::0;;;:::o;22760:105::-;4638:13;:11;:13::i;:::-;22846:11:::1;22833:10;:24;;;;22760:105:::0;:::o;21655:113::-;4638:13;:11;:13::i;:::-;21751:9:::1;21732:16;;:28;;;;;;;;;;;;;;;;;;21655:113:::0;:::o;16471:45::-;;;;:::o;22873:112::-;4638:13;:11;:13::i;:::-;22934:10:::1;22926:28;;:51;22955:21;22926:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22873:112::o:0;7110:143::-;7200:7;7227:9;:18;7237:7;7227:18;;;;;;;;;;;;;;;;7220:25;;7110:143;;;:::o;16232:29::-;;;;:::o;5400:103::-;4638:13;:11;:13::i;:::-;5465:30:::1;5492:1;5465:18;:30::i;:::-;5400:103::o:0;16439:25::-;;;;:::o;4752:87::-;4798:7;4825:6;;;;;;;;;;;4818:13;;4752:87;:::o;22133:227::-;4638:13;:11;:13::i;:::-;22244:9:::1;22239:114;22263:9;;:16;;22259:1;:20;22239:114;;;22336:5;22301:18;:32;22320:9;;22330:1;22320:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22301:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;22281:3;;;;;:::i;:::-;;;;22239:114;;;;22133:227:::0;;:::o;21897:228::-;4638:13;:11;:13::i;:::-;22010:9:::1;22005:113;22029:9;;:16;;22025:1;:20;22005:113;;;22102:4;22067:18;:32;22086:9;;22096:1;22086:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22067:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22047:3;;;;;:::i;:::-;;;;22005:113;;;;21897:228:::0;;:::o;6769:106::-;6827:13;6860:7;6853:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6769:106;:::o;16070:76::-;;;;;;;;;;;;;:::o;10753:500::-;10873:4;10890:13;10906:12;:10;:12::i;:::-;10890:28;;10929:24;10956:25;10966:5;10973:7;10956:9;:25::i;:::-;10929:52;;11034:15;11014:16;:35;;10992:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;11150:60;11159:5;11166:7;11194:15;11175:16;:34;11150:8;:60::i;:::-;11241:4;11234:11;;;;10753:500;;;;:::o;8605:220::-;8711:4;8728:13;8744:12;:10;:12::i;:::-;8728:28;;8767;8777:5;8784:2;8788:6;8767:9;:28::i;:::-;8813:4;8806:11;;;8605:220;;;;:::o;22471:281::-;4638:13;:11;:13::i;:::-;22622:9:::1;22611:8;:20;;;;22652:8;22642:7;:18;;;;22680:7;22671:6;:16;;;;22737:7;22726:8;22714:9;:20;;;;:::i;:::-;:30;;;;:::i;:::-;22698:13;:46;;;;22471:281:::0;;;:::o;17601:75::-;4638:13;:11;:13::i;:::-;17664:4:::1;17654:7;;:14;;;;;;;;;;;;;;;;;;17601:75::o:0;16372:58::-;;;;:::o;17882:271::-;4638:13;:11;:13::i;:::-;17961:11:::1;17975:8;;:15;;17961:29;;18005:9;18001:145;18024:3;18020:1;:7;18001:145;;;18068:4;18045:7;:20;18053:8;;18062:1;18053:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18045:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;18116:3;;;;;;;18001:145;;;;17950:203;17882:271:::0;;:::o;16338:27::-;;;;:::o;8223:176::-;8337:7;8364:11;:18;8376:5;8364:18;;;;;;;;;;;;;;;:27;8383:7;8364:27;;;;;;;;;;;;;;;;8357:34;;8223:176;;;;:::o;22368:95::-;4638:13;:11;:13::i;:::-;22447:8:::1;22437:7;:18;;;;22368:95:::0;:::o;5658:238::-;4638:13;:11;:13::i;:::-;5781:1:::1;5761:22;;:8;:22;;::::0;5739:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5860:28;5879:8;5860:18;:28::i;:::-;5658:238:::0;:::o;16305:26::-;;;;:::o;4052:98::-;4105:7;4132:10;4125:17;;4052:98;:::o;13962:380::-;14115:1;14098:19;;:5;:19;;;14090:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14196:1;14177:21;;:7;:21;;;14169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14280:6;14250:11;:18;14262:5;14250:18;;;;;;;;;;;;;;;:27;14269:7;14250:27;;;;;;;;;;;;;;;:36;;;;14318:7;14302:32;;14311:5;14302:32;;;14327:6;14302:32;;;;;;:::i;:::-;;;;;;;;13962:380;;;:::o;4917:132::-;4992:12;:10;:12::i;:::-;4981:23;;:7;:5;:7::i;:::-;:23;;;4973:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4917:132::o;14633:502::-;14768:24;14795:25;14805:5;14812:7;14795:9;:25::i;:::-;14768:52;;14855:17;14835:16;:37;14831:297;;14935:6;14915:16;:26;;14889:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15050:51;15059:5;15066:7;15094:6;15075:16;:25;15050:8;:51::i;:::-;14831:297;14757:378;14633:502;;;:::o;18161:1585::-;18294:7;:13;18302:4;18294:13;;;;;;;;;;;;;;;;;;;;;;;;;18293:14;18285:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;18356:18;:24;18375:4;18356:24;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;18397:18;:22;18416:2;18397:22;;;;;;;;;;;;;;;;;;;;;;;;;18356:63;:96;;;;18436:16;;;;;;;;;;;18356:96;18338:1401;;;18479:33;18495:4;18501:2;18505:6;18479:15;:33::i;:::-;18338:1401;;;18553:7;;;;;;;;;;;18545:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;18592:14;18631:13;18625:19;;:2;:19;;;18621:932;;18665:11;18679:24;18697:4;18679:9;:24::i;:::-;18665:38;;18722:17;18796:5;18769:24;;18742;18752:13;18742:9;:24::i;:::-;:51;;;;:::i;:::-;:59;;;;:::i;:::-;18722:79;;18853:9;18846:3;:16;18820:193;;18920:9;18916:1;:13;;;;:::i;:::-;18909:3;:20;18905:45;;18941:9;18937:1;:13;;;;:::i;:::-;18931:19;;18905:45;18973:20;18989:3;18973:15;:20::i;:::-;18820:193;19068:5;19052:13;;19043:6;:22;;;;:::i;:::-;:30;;;;:::i;:::-;19031:42;;18646:443;;18621:932;;;19107:13;19099:21;;:4;:21;;;19095:458;;19172:5;19162:7;;19153:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;19141:36;;19264:10;;19251:9;19242:6;19226:13;19236:2;19226:9;:13::i;:::-;:22;;;;:::i;:::-;:34;;;;:::i;:::-;:48;;19196:156;;;;;;;;;;;;:::i;:::-;;;;;;;;;19095:458;;;19449:10;;19439:6;19423:13;19433:2;19423:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;19393:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;19095:458;18621:932;19567:45;19583:4;19589:2;19602:9;19593:6;:18;;;;:::i;:::-;19567:15;:45::i;:::-;19643:1;19631:9;:13;19627:101;;;19665:47;19681:4;19695;19702:9;19665:15;:47::i;:::-;19627:101;18530:1209;18338:1401;18161:1585;;;:::o;6056:191::-;6130:16;6149:6;;;;;;;;;;;6130:25;;6175:8;6166:6;;:17;;;;;;;;;;;;;;;;;;6230:8;6199:40;;6220:8;6199:40;;;;;;;;;;;;6119:128;6056:191;:::o;15143:776::-;15290:1;15274:18;;:4;:18;;;15266:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15367:1;15353:16;;:2;:16;;;15345:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15422:19;15444:9;:15;15454:4;15444:15;;;;;;;;;;;;;;;;15422:37;;15507:6;15492:11;:21;;15470:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;15647:6;15633:11;:20;15615:9;:15;15625:4;15615:15;;;;;;;;;;;;;;;:38;;;;15850:6;15833:9;:13;15843:2;15833:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15900:2;15885:26;;15894:4;15885:26;;;15904:6;15885:26;;;;;;:::i;:::-;;;;;;;;15255:664;15143:776;;;:::o;19754:928::-;16740:4;16721:16;;:23;;;;;;;;;;;;;;;;;;19840:22:::1;19865:13;;19840:38;;19911:1;19893:14;:19:::0;19889:32:::1;;19914:7;;;19889:32;19931:16;19977:1;19967:7;;:11;;;;:::i;:::-;19950:14;:28;;;;:::i;:::-;19931:47;;19989:14;20040;20029:8;20006:20;:31;;;;:::i;:::-;:48;;;;:::i;:::-;19989:65;;20067:25;20085:6;20067:17;:25::i;:::-;20103:15;20121:21;20103:39;;20155:13;20192:8;20181;;20171:7;:18;;;;:::i;:::-;:29;;;;:::i;:::-;20155:45;;20211:19;20252:8;20243:6;;20233:7;:16;;;;:::i;:::-;:27;;;;:::i;:::-;20211:49;;20295:1;20285:7;;:11;20281:168;;;20313:124;20368:6;20345:20;:29;;;;:::i;:::-;20411:11;20403:5;20393:7;:15;;;;:::i;:::-;:29;;;;:::i;:::-;20313:13;:124::i;:::-;20281:168;20477:1;20463:11;:15;20459:95;;;20503:16;;;;;;;;;;;20495:34;;:47;20530:11;20495:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20459:95;20594:1;20570:21;:25;20566:109;;;20620:10;;;;;;;;;;;20612:28;;:51;20641:21;20612:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20566:109;19829:853;;;;;;16755:1;16786:5:::0;16767:16;;:24;;;;;;;;;;;;;;;;;;19754:928;:::o;20690:413::-;16740:4;16721:16;;:23;;;;;;;;;;;;;;;;;;20769:21:::1;20807:1;20793:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20769:40;;20838:4;20820;20825:1;20820:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;20864:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20854:4;20859:1;20854:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;20897:15;:66;;;20978:11;21004:1;21020:4;21047;21068:15;20897:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20758:345;16786:5:::0;16767:16;;:24;;;;;;;;;;;;;;;;;;20690:413;:::o;21111:325::-;16740:4;16721:16;;:23;;;;;;;;;;;;;;;;;;21230:15:::1;:31;;;21269:9;21302:4;21322:11;21348:1;21364::::0;21380:7:::1;:5;:7::i;:::-;21402:15;21230:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16786:5:::0;16767:16;;:24;;;;;;;;;;;;;;;;;;21111:325;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:60::-;4161:3;4182:5;4175:12;;4133:60;;;:::o;4199:142::-;4249:9;4282:53;4300:34;4309:24;4327:5;4309:24;:::i;:::-;4300:34;:::i;:::-;4282:53;:::i;:::-;4269:66;;4199:142;;;:::o;4347:126::-;4397:9;4430:37;4461:5;4430:37;:::i;:::-;4417:50;;4347:126;;;:::o;4479:150::-;4553:9;4586:37;4617:5;4586:37;:::i;:::-;4573:50;;4479:150;;;:::o;4635:179::-;4746:61;4801:5;4746:61;:::i;:::-;4741:3;4734:74;4635:179;;:::o;4820:270::-;4937:4;4975:2;4964:9;4960:18;4952:26;;4988:95;5080:1;5069:9;5065:17;5056:6;4988:95;:::i;:::-;4820:270;;;;:::o;5096:118::-;5183:24;5201:5;5183:24;:::i;:::-;5178:3;5171:37;5096:118;;:::o;5220:222::-;5313:4;5351:2;5340:9;5336:18;5328:26;;5364:71;5432:1;5421:9;5417:17;5408:6;5364:71;:::i;:::-;5220:222;;;;:::o;5448:329::-;5507:6;5556:2;5544:9;5535:7;5531:23;5527:32;5524:119;;;5562:79;;:::i;:::-;5524:119;5682:1;5707:53;5752:7;5743:6;5732:9;5728:22;5707:53;:::i;:::-;5697:63;;5653:117;5448:329;;;;:::o;5783:619::-;5860:6;5868;5876;5925:2;5913:9;5904:7;5900:23;5896:32;5893:119;;;5931:79;;:::i;:::-;5893:119;6051:1;6076:53;6121:7;6112:6;6101:9;6097:22;6076:53;:::i;:::-;6066:63;;6022:117;6178:2;6204:53;6249:7;6240:6;6229:9;6225:22;6204:53;:::i;:::-;6194:63;;6149:118;6306:2;6332:53;6377:7;6368:6;6357:9;6353:22;6332:53;:::i;:::-;6322:63;;6277:118;5783:619;;;;;:::o;6408:86::-;6443:7;6483:4;6476:5;6472:16;6461:27;;6408:86;;;:::o;6500:112::-;6583:22;6599:5;6583:22;:::i;:::-;6578:3;6571:35;6500:112;;:::o;6618:214::-;6707:4;6745:2;6734:9;6730:18;6722:26;;6758:67;6822:1;6811:9;6807:17;6798:6;6758:67;:::i;:::-;6618:214;;;;:::o;6838:117::-;6947:1;6944;6937:12;6961:117;7070:1;7067;7060:12;7084:117;7193:1;7190;7183:12;7224:568;7297:8;7307:6;7357:3;7350:4;7342:6;7338:17;7334:27;7324:122;;7365:79;;:::i;:::-;7324:122;7478:6;7465:20;7455:30;;7508:18;7500:6;7497:30;7494:117;;;7530:79;;:::i;:::-;7494:117;7644:4;7636:6;7632:17;7620:29;;7698:3;7690:4;7682:6;7678:17;7668:8;7664:32;7661:41;7658:128;;;7705:79;;:::i;:::-;7658:128;7224:568;;;;;:::o;7798:559::-;7884:6;7892;7941:2;7929:9;7920:7;7916:23;7912:32;7909:119;;;7947:79;;:::i;:::-;7909:119;8095:1;8084:9;8080:17;8067:31;8125:18;8117:6;8114:30;8111:117;;;8147:79;;:::i;:::-;8111:117;8260:80;8332:7;8323:6;8312:9;8308:22;8260:80;:::i;:::-;8242:98;;;;8038:312;7798:559;;;;;:::o;8363:109::-;8413:7;8442:24;8460:5;8442:24;:::i;:::-;8431:35;;8363:109;;;:::o;8478:148::-;8564:37;8595:5;8564:37;:::i;:::-;8557:5;8554:48;8544:76;;8616:1;8613;8606:12;8544:76;8478:148;:::o;8632:165::-;8691:5;8729:6;8716:20;8707:29;;8745:46;8785:5;8745:46;:::i;:::-;8632:165;;;;:::o;8803:645::-;8893:6;8901;8909;8958:2;8946:9;8937:7;8933:23;8929:32;8926:119;;;8964:79;;:::i;:::-;8926:119;9084:1;9109:66;9167:7;9158:6;9147:9;9143:22;9109:66;:::i;:::-;9099:76;;9055:130;9224:2;9250:53;9295:7;9286:6;9275:9;9271:22;9250:53;:::i;:::-;9240:63;;9195:118;9352:2;9378:53;9423:7;9414:6;9403:9;9399:22;9378:53;:::i;:::-;9368:63;;9323:118;8803:645;;;;;:::o;9454:619::-;9531:6;9539;9547;9596:2;9584:9;9575:7;9571:23;9567:32;9564:119;;;9602:79;;:::i;:::-;9564:119;9722:1;9747:53;9792:7;9783:6;9772:9;9768:22;9747:53;:::i;:::-;9737:63;;9693:117;9849:2;9875:53;9920:7;9911:6;9900:9;9896:22;9875:53;:::i;:::-;9865:63;;9820:118;9977:2;10003:53;10048:7;10039:6;10028:9;10024:22;10003:53;:::i;:::-;9993:63;;9948:118;9454:619;;;;;:::o;10079:474::-;10147:6;10155;10204:2;10192:9;10183:7;10179:23;10175:32;10172:119;;;10210:79;;:::i;:::-;10172:119;10330:1;10355:53;10400:7;10391:6;10380:9;10376:22;10355:53;:::i;:::-;10345:63;;10301:117;10457:2;10483:53;10528:7;10519:6;10508:9;10504:22;10483:53;:::i;:::-;10473:63;;10428:118;10079:474;;;;;:::o;10559:180::-;10607:77;10604:1;10597:88;10704:4;10701:1;10694:15;10728:4;10725:1;10718:15;10745:320;10789:6;10826:1;10820:4;10816:12;10806:22;;10873:1;10867:4;10863:12;10894:18;10884:81;;10950:4;10942:6;10938:17;10928:27;;10884:81;11012:2;11004:6;11001:14;10981:18;10978:38;10975:84;;11031:18;;:::i;:::-;10975:84;10796:269;10745:320;;;:::o;11071:180::-;11119:77;11116:1;11109:88;11216:4;11213:1;11206:15;11240:4;11237:1;11230:15;11257:191;11297:3;11316:20;11334:1;11316:20;:::i;:::-;11311:25;;11350:20;11368:1;11350:20;:::i;:::-;11345:25;;11393:1;11390;11386:9;11379:16;;11414:3;11411:1;11408:10;11405:36;;;11421:18;;:::i;:::-;11405:36;11257:191;;;;:::o;11454:180::-;11502:77;11499:1;11492:88;11599:4;11596:1;11589:15;11623:4;11620:1;11613:15;11640:233;11679:3;11702:24;11720:5;11702:24;:::i;:::-;11693:33;;11748:66;11741:5;11738:77;11735:103;;11818:18;;:::i;:::-;11735:103;11865:1;11858:5;11854:13;11847:20;;11640:233;;;:::o;11879:143::-;11936:5;11967:6;11961:13;11952:22;;11983:33;12010:5;11983:33;:::i;:::-;11879:143;;;;:::o;12028:351::-;12098:6;12147:2;12135:9;12126:7;12122:23;12118:32;12115:119;;;12153:79;;:::i;:::-;12115:119;12273:1;12298:64;12354:7;12345:6;12334:9;12330:22;12298:64;:::i;:::-;12288:74;;12244:128;12028:351;;;;:::o;12385:332::-;12506:4;12544:2;12533:9;12529:18;12521:26;;12557:71;12625:1;12614:9;12610:17;12601:6;12557:71;:::i;:::-;12638:72;12706:2;12695:9;12691:18;12682:6;12638:72;:::i;:::-;12385:332;;;;;:::o;12723:116::-;12793:21;12808:5;12793:21;:::i;:::-;12786:5;12783:32;12773:60;;12829:1;12826;12819:12;12773:60;12723:116;:::o;12845:137::-;12899:5;12930:6;12924:13;12915:22;;12946:30;12970:5;12946:30;:::i;:::-;12845:137;;;;:::o;12988:345::-;13055:6;13104:2;13092:9;13083:7;13079:23;13075:32;13072:119;;;13110:79;;:::i;:::-;13072:119;13230:1;13255:61;13308:7;13299:6;13288:9;13284:22;13255:61;:::i;:::-;13245:71;;13201:125;12988:345;;;;:::o;13339:224::-;13479:34;13475:1;13467:6;13463:14;13456:58;13548:7;13543:2;13535:6;13531:15;13524:32;13339:224;:::o;13569:366::-;13711:3;13732:67;13796:2;13791:3;13732:67;:::i;:::-;13725:74;;13808:93;13897:3;13808:93;:::i;:::-;13926:2;13921:3;13917:12;13910:19;;13569:366;;;:::o;13941:419::-;14107:4;14145:2;14134:9;14130:18;14122:26;;14194:9;14188:4;14184:20;14180:1;14169:9;14165:17;14158:47;14222:131;14348:4;14222:131;:::i;:::-;14214:139;;13941:419;;;:::o;14366:225::-;14506:34;14502:1;14494:6;14490:14;14483:58;14575:8;14570:2;14562:6;14558:15;14551:33;14366:225;:::o;14597:366::-;14739:3;14760:67;14824:2;14819:3;14760:67;:::i;:::-;14753:74;;14836:93;14925:3;14836:93;:::i;:::-;14954:2;14949:3;14945:12;14938:19;;14597:366;;;:::o;14969:419::-;15135:4;15173:2;15162:9;15158:18;15150:26;;15222:9;15216:4;15212:20;15208:1;15197:9;15193:17;15186:47;15250:131;15376:4;15250:131;:::i;:::-;15242:139;;14969:419;;;:::o;15394:223::-;15534:34;15530:1;15522:6;15518:14;15511:58;15603:6;15598:2;15590:6;15586:15;15579:31;15394:223;:::o;15623:366::-;15765:3;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15862:93;15951:3;15862:93;:::i;:::-;15980:2;15975:3;15971:12;15964:19;;15623:366;;;:::o;15995:419::-;16161:4;16199:2;16188:9;16184:18;16176:26;;16248:9;16242:4;16238:20;16234:1;16223:9;16219:17;16212:47;16276:131;16402:4;16276:131;:::i;:::-;16268:139;;15995:419;;;:::o;16420:221::-;16560:34;16556:1;16548:6;16544:14;16537:58;16629:4;16624:2;16616:6;16612:15;16605:29;16420:221;:::o;16647:366::-;16789:3;16810:67;16874:2;16869:3;16810:67;:::i;:::-;16803:74;;16886:93;16975:3;16886:93;:::i;:::-;17004:2;16999:3;16995:12;16988:19;;16647:366;;;:::o;17019:419::-;17185:4;17223:2;17212:9;17208:18;17200:26;;17272:9;17266:4;17262:20;17258:1;17247:9;17243:17;17236:47;17300:131;17426:4;17300:131;:::i;:::-;17292:139;;17019:419;;;:::o;17444:182::-;17584:34;17580:1;17572:6;17568:14;17561:58;17444:182;:::o;17632:366::-;17774:3;17795:67;17859:2;17854:3;17795:67;:::i;:::-;17788:74;;17871:93;17960:3;17871:93;:::i;:::-;17989:2;17984:3;17980:12;17973:19;;17632:366;;;:::o;18004:419::-;18170:4;18208:2;18197:9;18193:18;18185:26;;18257:9;18251:4;18247:20;18243:1;18232:9;18228:17;18221:47;18285:131;18411:4;18285:131;:::i;:::-;18277:139;;18004:419;;;:::o;18429:179::-;18569:31;18565:1;18557:6;18553:14;18546:55;18429:179;:::o;18614:366::-;18756:3;18777:67;18841:2;18836:3;18777:67;:::i;:::-;18770:74;;18853:93;18942:3;18853:93;:::i;:::-;18971:2;18966:3;18962:12;18955:19;;18614:366;;;:::o;18986:419::-;19152:4;19190:2;19179:9;19175:18;19167:26;;19239:9;19233:4;19229:20;19225:1;19214:9;19210:17;19203:47;19267:131;19393:4;19267:131;:::i;:::-;19259:139;;18986:419;;;:::o;19411:165::-;19551:17;19547:1;19539:6;19535:14;19528:41;19411:165;:::o;19582:366::-;19724:3;19745:67;19809:2;19804:3;19745:67;:::i;:::-;19738:74;;19821:93;19910:3;19821:93;:::i;:::-;19939:2;19934:3;19930:12;19923:19;;19582:366;;;:::o;19954:419::-;20120:4;20158:2;20147:9;20143:18;20135:26;;20207:9;20201:4;20197:20;20193:1;20182:9;20178:17;20171:47;20235:131;20361:4;20235:131;:::i;:::-;20227:139;;19954:419;;;:::o;20379:162::-;20519:14;20515:1;20507:6;20503:14;20496:38;20379:162;:::o;20547:366::-;20689:3;20710:67;20774:2;20769:3;20710:67;:::i;:::-;20703:74;;20786:93;20875:3;20786:93;:::i;:::-;20904:2;20899:3;20895:12;20888:19;;20547:366;;;:::o;20919:419::-;21085:4;21123:2;21112:9;21108:18;21100:26;;21172:9;21166:4;21162:20;21158:1;21147:9;21143:17;21136:47;21200:131;21326:4;21200:131;:::i;:::-;21192:139;;20919:419;;;:::o;21344:410::-;21384:7;21407:20;21425:1;21407:20;:::i;:::-;21402:25;;21441:20;21459:1;21441:20;:::i;:::-;21436:25;;21496:1;21493;21489:9;21518:30;21536:11;21518:30;:::i;:::-;21507:41;;21697:1;21688:7;21684:15;21681:1;21678:22;21658:1;21651:9;21631:83;21608:139;;21727:18;;:::i;:::-;21608:139;21392:362;21344:410;;;;:::o;21760:180::-;21808:77;21805:1;21798:88;21905:4;21902:1;21895:15;21929:4;21926:1;21919:15;21946:185;21986:1;22003:20;22021:1;22003:20;:::i;:::-;21998:25;;22037:20;22055:1;22037:20;:::i;:::-;22032:25;;22076:1;22066:35;;22081:18;;:::i;:::-;22066:35;22123:1;22120;22116:9;22111:14;;21946:185;;;;:::o;22137:194::-;22177:4;22197:20;22215:1;22197:20;:::i;:::-;22192:25;;22231:20;22249:1;22231:20;:::i;:::-;22226:25;;22275:1;22272;22268:9;22260:17;;22299:1;22293:4;22290:11;22287:37;;;22304:18;;:::i;:::-;22287:37;22137:194;;;;:::o;22337:221::-;22477:34;22473:1;22465:6;22461:14;22454:58;22546:4;22541:2;22533:6;22529:15;22522:29;22337:221;:::o;22564:366::-;22706:3;22727:67;22791:2;22786:3;22727:67;:::i;:::-;22720:74;;22803:93;22892:3;22803:93;:::i;:::-;22921:2;22916:3;22912:12;22905:19;;22564:366;;;:::o;22936:419::-;23102:4;23140:2;23129:9;23125:18;23117:26;;23189:9;23183:4;23179:20;23175:1;23164:9;23160:17;23153:47;23217:131;23343:4;23217:131;:::i;:::-;23209:139;;22936:419;;;:::o;23361:224::-;23501:34;23497:1;23489:6;23485:14;23478:58;23570:7;23565:2;23557:6;23553:15;23546:32;23361:224;:::o;23591:366::-;23733:3;23754:67;23818:2;23813:3;23754:67;:::i;:::-;23747:74;;23830:93;23919:3;23830:93;:::i;:::-;23948:2;23943:3;23939:12;23932:19;;23591:366;;;:::o;23963:419::-;24129:4;24167:2;24156:9;24152:18;24144:26;;24216:9;24210:4;24206:20;24202:1;24191:9;24187:17;24180:47;24244:131;24370:4;24244:131;:::i;:::-;24236:139;;23963:419;;;:::o;24388:222::-;24528:34;24524:1;24516:6;24512:14;24505:58;24597:5;24592:2;24584:6;24580:15;24573:30;24388:222;:::o;24616:366::-;24758:3;24779:67;24843:2;24838:3;24779:67;:::i;:::-;24772:74;;24855:93;24944:3;24855:93;:::i;:::-;24973:2;24968:3;24964:12;24957:19;;24616:366;;;:::o;24988:419::-;25154:4;25192:2;25181:9;25177:18;25169:26;;25241:9;25235:4;25231:20;25227:1;25216:9;25212:17;25205:47;25269:131;25395:4;25269:131;:::i;:::-;25261:139;;24988:419;;;:::o;25413:225::-;25553:34;25549:1;25541:6;25537:14;25530:58;25622:8;25617:2;25609:6;25605:15;25598:33;25413:225;:::o;25644:366::-;25786:3;25807:67;25871:2;25866:3;25807:67;:::i;:::-;25800:74;;25883:93;25972:3;25883:93;:::i;:::-;26001:2;25996:3;25992:12;25985:19;;25644:366;;;:::o;26016:419::-;26182:4;26220:2;26209:9;26205:18;26197:26;;26269:9;26263:4;26259:20;26255:1;26244:9;26240:17;26233:47;26297:131;26423:4;26297:131;:::i;:::-;26289:139;;26016:419;;;:::o;26441:180::-;26489:77;26486:1;26479:88;26586:4;26583:1;26576:15;26610:4;26607:1;26600:15;26627:143;26684:5;26715:6;26709:13;26700:22;;26731:33;26758:5;26731:33;:::i;:::-;26627:143;;;;:::o;26776:351::-;26846:6;26895:2;26883:9;26874:7;26870:23;26866:32;26863:119;;;26901:79;;:::i;:::-;26863:119;27021:1;27046:64;27102:7;27093:6;27082:9;27078:22;27046:64;:::i;:::-;27036:74;;26992:128;26776:351;;;;:::o;27133:85::-;27178:7;27207:5;27196:16;;27133:85;;;:::o;27224:158::-;27282:9;27315:61;27333:42;27342:32;27368:5;27342:32;:::i;:::-;27333:42;:::i;:::-;27315:61;:::i;:::-;27302:74;;27224:158;;;:::o;27388:147::-;27483:45;27522:5;27483:45;:::i;:::-;27478:3;27471:58;27388:147;;:::o;27541:114::-;27608:6;27642:5;27636:12;27626:22;;27541:114;;;:::o;27661:184::-;27760:11;27794:6;27789:3;27782:19;27834:4;27829:3;27825:14;27810:29;;27661:184;;;;:::o;27851:132::-;27918:4;27941:3;27933:11;;27971:4;27966:3;27962:14;27954:22;;27851:132;;;:::o;27989:108::-;28066:24;28084:5;28066:24;:::i;:::-;28061:3;28054:37;27989:108;;:::o;28103:179::-;28172:10;28193:46;28235:3;28227:6;28193:46;:::i;:::-;28271:4;28266:3;28262:14;28248:28;;28103:179;;;;:::o;28288:113::-;28358:4;28390;28385:3;28381:14;28373:22;;28288:113;;;:::o;28437:732::-;28556:3;28585:54;28633:5;28585:54;:::i;:::-;28655:86;28734:6;28729:3;28655:86;:::i;:::-;28648:93;;28765:56;28815:5;28765:56;:::i;:::-;28844:7;28875:1;28860:284;28885:6;28882:1;28879:13;28860:284;;;28961:6;28955:13;28988:63;29047:3;29032:13;28988:63;:::i;:::-;28981:70;;29074:60;29127:6;29074:60;:::i;:::-;29064:70;;28920:224;28907:1;28904;28900:9;28895:14;;28860:284;;;28864:14;29160:3;29153:10;;28561:608;;;28437:732;;;;:::o;29175:831::-;29438:4;29476:3;29465:9;29461:19;29453:27;;29490:71;29558:1;29547:9;29543:17;29534:6;29490:71;:::i;:::-;29571:80;29647:2;29636:9;29632:18;29623:6;29571:80;:::i;:::-;29698:9;29692:4;29688:20;29683:2;29672:9;29668:18;29661:48;29726:108;29829:4;29820:6;29726:108;:::i;:::-;29718:116;;29844:72;29912:2;29901:9;29897:18;29888:6;29844:72;:::i;:::-;29926:73;29994:3;29983:9;29979:19;29970:6;29926:73;:::i;:::-;29175:831;;;;;;;;:::o;30012:807::-;30261:4;30299:3;30288:9;30284:19;30276:27;;30313:71;30381:1;30370:9;30366:17;30357:6;30313:71;:::i;:::-;30394:72;30462:2;30451:9;30447:18;30438:6;30394:72;:::i;:::-;30476:80;30552:2;30541:9;30537:18;30528:6;30476:80;:::i;:::-;30566;30642:2;30631:9;30627:18;30618:6;30566:80;:::i;:::-;30656:73;30724:3;30713:9;30709:19;30700:6;30656:73;:::i;:::-;30739;30807:3;30796:9;30792:19;30783:6;30739:73;:::i;:::-;30012:807;;;;;;;;;:::o;30825:663::-;30913:6;30921;30929;30978:2;30966:9;30957:7;30953:23;30949:32;30946:119;;;30984:79;;:::i;:::-;30946:119;31104:1;31129:64;31185:7;31176:6;31165:9;31161:22;31129:64;:::i;:::-;31119:74;;31075:128;31242:2;31268:64;31324:7;31315:6;31304:9;31300:22;31268:64;:::i;:::-;31258:74;;31213:129;31381:2;31407:64;31463:7;31454:6;31443:9;31439:22;31407:64;:::i;:::-;31397:74;;31352:129;30825:663;;;;;:::o
Swarm Source
ipfs://08ee62c90ff15b1bdfe92a6acdfb6739898dbaa73b4a954d28b7a023444e2d97
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.