Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 $GODDOG
Holders
16
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 $GODDOGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GODDOG
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-11 */ /* Name: DOG SAVE AMERICA Ticker: $GODDOG Telegram: https://t.me/GODDOG_ETH https://t.me/GODDOG_CHAT Twitter: https://x.com/GODDOG_eth Website: https://goddog.biz/ */ // SPDX-License-Identifier: MIT pragma solidity 0.8.22; interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library Address { function sendValue(address payable recipient, uint256 amount) internal returns(bool){ require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); return success; // always proceeds } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mintOnce(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } 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; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } 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); } } contract GODDOG is ERC20, Ownable { using Address for address payable; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => bool) private _isExcludedFromFees; address public feeReceiver; uint256 public swapTokensAtAmount; bool private swapping; bool public swapEnabled; event ExcludeFromFees(address indexed account, bool isExcluded); event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); constructor () ERC20("DOG SAVE AMERICA", "$GODDOG") { address router; if (block.chainid == 56) { router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router } else if (block.chainid == 97) { router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router } else if (block.chainid == 1 || block.chainid == 5) { router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet } else { revert(); } IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _approve(address(this), address(uniswapV2Router), type(uint256).max); feeReceiver = 0xB9d7B23685b9FC38c96725DA98e1a39207D3C02C; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; maxWalletLimitEnabled = true; _isExcludedFromMaxWalletLimit[owner()] = true; _isExcludedFromMaxWalletLimit[address(this)] = true; _isExcludedFromMaxWalletLimit[address(0xdead)] = true; _isExcludedFromMaxWalletLimit[feeReceiver] = true; _mintOnce(owner(), 1e9 * (10 ** decimals())); swapTokensAtAmount = totalSupply() * 5 / 1000; maxWalletAmount = totalSupply() * 20 / 1000; // 2% swapEnabled = false; } receive() external payable {} function claimStuckTokens(address token) external onlyOwner { if (token == address(0x0)) { payable(msg.sender).sendValue(address(this).balance); return; } IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this))); } function excludeFromFees(address account, bool excluded) external onlyOwner{ _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } event FeeReceiverChanged(address feeReceiver); function changeFeeReceiver(address _feeReceiver) external onlyOwner{ require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address"); feeReceiver = _feeReceiver; emit FeeReceiverChanged(feeReceiver); } event TradingEnabled(bool tradingEnabled); bool public tradingEnabled; uint256 public tradingBlock; function enableTrading() external onlyOwner{ require(!tradingEnabled, "CSLT: Trading already enabled."); tradingEnabled = true; swapEnabled = true; tradingBlock = block.number; emit TradingEnabled(tradingEnabled); } function _transfer(address from,address to,uint256 amount) internal override { require(from != address(0), "CSLT: transfer from the zero address"); require(to != address(0), "CSLT: transfer to the zero address"); require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && to == uniswapV2Pair && !_isExcludedFromFees[from] && swapEnabled ) { swapping = true; swapAndSendFee(swapTokensAtAmount); swapping = false; } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; } else if (from == uniswapV2Pair || to == uniswapV2Pair) { if(block.number > tradingBlock + 100){ _totalFees = 0; } else if(block.number > tradingBlock + 40){ _totalFees = 3; } else if(block.number > tradingBlock + 10){ _totalFees = 5; } else { _totalFees = 30; } } else { _totalFees = 0; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(this), fees); } if (maxWalletLimitEnabled) { if (!_isExcludedFromMaxWalletLimit[from] && !_isExcludedFromMaxWalletLimit[to] && to != uniswapV2Pair ) { uint256 balance = balanceOf(to); require( balance + amount <= maxWalletAmount, "MaxWallet: Recipient exceeds the maxWalletAmount" ); } } super._transfer(from, to, amount); } function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{ require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply"); require(newAmount < totalSupply(), "CSLT: SwapTokensAtAmount must be smaller than total supply"); swapTokensAtAmount = newAmount; swapEnabled = _swapEnabled; emit SwapTokensAtAmountUpdated(swapTokensAtAmount); } function swapAndSendFee(uint256 tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ) {} catch { return; } uint256 newBalance = address(this).balance - initialBalance; payable(feeReceiver).sendValue(newBalance); emit SwapAndSendFee(tokenAmount, newBalance); } mapping(address => bool) private _isExcludedFromMaxWalletLimit; bool public maxWalletLimitEnabled; uint256 public maxWalletAmount; event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded); event MaxWalletLimitStateChanged(bool maxWalletLimit); event MaxWalletLimitAmountChanged(uint256 maxWalletAmount); function setEnableMaxWalletLimit(bool enable) external onlyOwner { require(enable != maxWalletLimitEnabled,"Max wallet limit is already set to that state"); maxWalletLimitEnabled = enable; emit MaxWalletLimitStateChanged(maxWalletLimitEnabled); } function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner { require(_maxWalletAmount >= (totalSupply() / (10 ** decimals())) / 100, "Max wallet percentage cannot be lower than 1%"); maxWalletAmount = _maxWalletAmount * (10 ** decimals()); emit MaxWalletLimitAmountChanged(maxWalletAmount); } function excludeFromMaxWallet(address account, bool exclude) external onlyOwner { require( _isExcludedFromMaxWalletLimit[account] != exclude,"Account is already set to that state"); require(account != address(this), "Can't set this address."); _isExcludedFromMaxWalletLimit[account] = exclude; emit ExcludedFromMaxWalletLimit(account, exclude); } function isExcludedFromMaxWalletLimit(address account) public view returns(bool) { return _isExcludedFromMaxWalletLimit[account]; } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"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":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801562000010575f80fd5b506040518060400160405280601081526020016f444f47205341564520414d455249434160801b8152506040518060400160405280600781526020016624474f44444f4760c81b81525081600390816200006b919062000781565b5060046200007a828262000781565b5050505f6200008e620004d260201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f466038036200010157507310ed43c718714eb63d5aa57b78b54704e256024e6200015c565b4660610362000126575073d99d1c33f9fc3444f8101754abc46c52416550d16200015c565b4660011480620001365750466005145b15620001585750737a250d5630b4cf539739df2c5dacb4c659f2488d6200015c565b5f80fd5b5f8190505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c491906200084d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000210573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023691906200084d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000281573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a791906200084d565b600680546001600160a01b038086166001600160a01b031992831681179093556007805491851691909216179055909150620002e79030905f19620004d6565b600980546001600160a01b03191673b9d7b23685b9fc38c96725da98e1a39207d3c02c179055600160085f620003256005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff1995861617905560089092527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841660019081179091553083529082208054841682179055600e80549093168117909255600d90620003b26005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600d9093528183208054851660019081179091557fdc7fafdc41998a74ecacb8f8bd877011aba1f1d03a3a0d37a2e7879a393b1d6a80548616821790556009549091168352912080549092161790556200046c620004486005546001600160a01b031690565b620004566012600a6200098b565b6200046690633b9aca006200099b565b62000601565b6103e86200047960025490565b620004869060056200099b565b620004929190620009b5565b600a556103e8620004a260025490565b620004af9060146200099b565b620004bb9190620009b5565b600f555050600b805461ff001916905550620009eb565b3390565b6001600160a01b0383166200053e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005a15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000535565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000535565b8060025f8282546200066c9190620009d5565b90915550506001600160a01b0382165f90815260208190526040812080548392906200069a908490620009d5565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200070c57607f821691505b6020821081036200072b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200077c57805f5260205f20601f840160051c81016020851015620007585750805b601f840160051c820191505b8181101562000779575f815560010162000764565b50505b505050565b81516001600160401b038111156200079d576200079d620006e3565b620007b581620007ae8454620006f7565b8462000731565b602080601f831160018114620007eb575f8415620007d35750858301515b5f19600386901b1c1916600185901b17855562000845565b5f85815260208120601f198616915b828110156200081b57888601518255948401946001909101908401620007fa565b50858210156200083957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156200085e575f80fd5b81516001600160a01b038116811462000875575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620008d057815f1904821115620008b457620008b46200087c565b80851615620008c257918102915b93841c939080029062000895565b509250929050565b5f82620008e85750600162000985565b81620008f657505f62000985565b81600181146200090f57600281146200091a576200093a565b600191505062000985565b60ff8411156200092e576200092e6200087c565b50506001821b62000985565b5060208310610133831016604e8410600b84101617156200095f575081810a62000985565b6200096b838362000890565b805f19048211156200098157620009816200087c565b0290505b92915050565b5f6200087560ff841683620008d8565b80820281158282048414176200098557620009856200087c565b5f82620009d057634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200098557620009856200087c565b61201280620009f95f395ff3fe6080604052600436106101e9575f3560e01c80637c08b96411610108578063b1fde9f81161009d578063d2fcc0011161006d578063d2fcc0011461058f578063dd62ed3e146105ae578063e2f45605146105f2578063f2fde38b14610607578063f9d0831a14610626575f80fd5b8063b1fde9f81461051d578063b3f006741461053c578063c02466681461055b578063cd51e6d41461057a575f80fd5b8063a457c2d7116100d8578063a457c2d714610493578063a8a69b9d146104b2578063a9059cbb146104e9578063aa4bde2814610508575f80fd5b80637c08b9641461042f5780638a8c523c1461044e5780638da5cb5b1461046257806395d89b411461047f575f80fd5b8063313ce5671161017e5780634fbee1931161014e5780634fbee193146103925780636ddd1713146103c957806370a08231146103e7578063715018a61461041b575f80fd5b8063313ce5671461031a578063395093511461033557806349bd5a5e146103545780634ada218b14610373575f80fd5b806321a9d82a116101b957806321a9d82a146102a257806323b872dd146102bb57806327a14fc2146102da5780632a6c7dba146102fb575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780631694505e1461024d57806318160ddd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610208610645565b6040516102159190611b90565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611bf0565b6106d5565b6040519015158152602001610215565b348015610258575f80fd5b5060065461026c906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561028f575f80fd5b506002545b604051908152602001610215565b3480156102ad575f80fd5b50600e5461023d9060ff1681565b3480156102c6575f80fd5b5061023d6102d5366004611c1a565b6106eb565b3480156102e5575f80fd5b506102f96102f4366004611c58565b61079f565b005b348015610306575f80fd5b506102f9610315366004611c7c565b6108a5565b348015610325575f80fd5b5060405160128152602001610215565b348015610340575f80fd5b5061023d61034f366004611bf0565b610984565b34801561035f575f80fd5b5060075461026c906001600160a01b031681565b34801561037e575f80fd5b50600b5461023d9062010000900460ff1681565b34801561039d575f80fd5b5061023d6103ac366004611c9e565b6001600160a01b03165f9081526008602052604090205460ff1690565b3480156103d4575f80fd5b50600b5461023d90610100900460ff1681565b3480156103f2575f80fd5b50610294610401366004611c9e565b6001600160a01b03165f9081526020819052604090205490565b348015610426575f80fd5b506102f96109bf565b34801561043a575f80fd5b506102f9610449366004611c9e565b610a32565b348015610459575f80fd5b506102f9610b16565b34801561046d575f80fd5b506005546001600160a01b031661026c565b34801561048a575f80fd5b50610208610bf2565b34801561049e575f80fd5b5061023d6104ad366004611bf0565b610c01565b3480156104bd575f80fd5b5061023d6104cc366004611c9e565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156104f4575f80fd5b5061023d610503366004611bf0565b610c99565b348015610513575f80fd5b50610294600f5481565b348015610528575f80fd5b506102f9610537366004611cb9565b610ca5565b348015610547575f80fd5b5060095461026c906001600160a01b031681565b348015610566575f80fd5b506102f9610575366004611ce7565b610e2e565b348015610585575f80fd5b50610294600c5481565b34801561059a575f80fd5b506102f96105a9366004611ce7565b610eb7565b3480156105b9575f80fd5b506102946105c8366004611d13565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105fd575f80fd5b50610294600a5481565b348015610612575f80fd5b506102f9610621366004611c9e565b61100b565b348015610631575f80fd5b506102f9610640366004611c9e565b6110f5565b60606003805461065490611d3f565b80601f016020809104026020016040519081016040528092919081815260200182805461068090611d3f565b80156106cb5780601f106106a2576101008083540402835291602001916106cb565b820191905f5260205f20905b8154815290600101906020018083116106ae57829003601f168201915b5050505050905090565b5f6106e133848461121a565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f198114610789578281101561077c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610789853385840361121a565b61079485858561133d565b506001949350505050565b6005546001600160a01b031633146107c95760405162461bcd60e51b815260040161077390611d77565b60646107d76012600a611ea0565b6002546107e49190611eae565b6107ee9190611eae565b8110156108535760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b6064820152608401610773565b61085f6012600a611ea0565b6108699082611ecd565b600f8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb5942906020015b60405180910390a150565b6005546001600160a01b031633146108cf5760405162461bcd60e51b815260040161077390611d77565b600e5460ff1615158115150361093d5760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060448201526c746f207468617420737461746560981b6064820152608401610773565b600e805460ff191682151590811790915560405160ff909116151581527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f19060200161089a565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106e19185906109ba908690611ee4565b61121a565b6005546001600160a01b031633146109e95760405162461bcd60e51b815260040161077390611d77565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b815260040161077390611d77565b6001600160a01b038116610ac85760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610773565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200161089a565b6005546001600160a01b03163314610b405760405162461bcd60e51b815260040161077390611d77565b600b5462010000900460ff1615610b995760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610773565b600b80546201010062ffff0019909116179081905543600c556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461065490611d3f565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610c825760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610773565b610c8f338585840361121a565b5060019392505050565b5f6106e133848461133d565b6005546001600160a01b03163314610ccf5760405162461bcd60e51b815260040161077390611d77565b620f4240610cdc60025490565b610ce69190611eae565b8211610d685760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610773565b6002548210610ddf5760405162461bcd60e51b815260206004820152603a60248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f20736d616c6c6572207468616e20746f74616c20737570706c790000000000006064820152608401610773565b600a829055600b805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610e585760405162461bcd60e51b815260040161077390611d77565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b6005546001600160a01b03163314610ee15760405162461bcd60e51b815260040161077390611d77565b6001600160a01b0382165f908152600d602052604090205481151560ff909116151503610f5c5760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610773565b306001600160a01b03831603610fb45760405162461bcd60e51b815260206004820152601760248201527f43616e277420736574207468697320616464726573732e0000000000000000006044820152606401610773565b6001600160a01b0382165f818152600d6020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c9101610eab565b6005546001600160a01b031633146110355760405162461bcd60e51b815260040161077390611d77565b6001600160a01b03811661109a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461111f5760405162461bcd60e51b815260040161077390611d77565b6001600160a01b03811661113b57611137334761177a565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015611187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ab9190611ef7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156111f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111379190611f0e565b50565b6001600160a01b03831661127c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166112dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661139f5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166114005760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b600b5462010000900460ff168061142e57506001600160a01b0383165f9081526008602052604090205460ff165b8061145057506001600160a01b0382165f9081526008602052604090205460ff165b61149c5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610773565b805f036114b3576114ae83835f611824565b505050565b305f90815260208190526040902054600a54811080159081906114d95750600b5460ff16155b80156114f257506007546001600160a01b038581169116145b801561151657506001600160a01b0385165f9081526008602052604090205460ff16155b80156115295750600b54610100900460ff165b1561155257600b805460ff19166001179055600a54611547906119f1565b600b805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff168061158f57506001600160a01b0385165f9081526008602052604090205460ff165b8061159c5750600b5460ff165b156115a857505f611637565b6007546001600160a01b03878116911614806115d157506007546001600160a01b038681169116145b1561163457600c546115e4906064611ee4565b4311156115f257505f611637565b600c54611600906028611ee4565b43111561160f57506003611637565b600c5461161d90600a611ee4565b43111561162c57506005611637565b50601e611637565b505f5b801561166f575f606461164a8387611ecd565b6116549190611eae565b90506116608186611f29565b945061166d873083611824565b505b600e5460ff1615611767576001600160a01b0386165f908152600d602052604090205460ff161580156116ba57506001600160a01b0385165f908152600d602052604090205460ff16155b80156116d457506007546001600160a01b03868116911614155b15611767576001600160a01b0385165f90815260208190526040902054600f546116fe8683611ee4565b11156117655760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b6064820152608401610773565b505b611772868686611824565b505050505050565b5f814710156117cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610773565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114611814576040519150601f19603f3d011682016040523d82523d5f602084013e611819565b606091505b509095945050505050565b6001600160a01b0383166118885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610773565b6001600160a01b0382166118ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610773565b6001600160a01b0383165f90815260208190526040902054818110156119615760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610773565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611997908490611ee4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119e391815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f81518110611a2857611a28611f3c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa39190611f50565b81600181518110611ab657611ab6611f3c565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac94790611afb9086905f90869030904290600401611f6b565b5f604051808303815f87803b158015611b12575f80fd5b505af1925050508015611b23575060015b611b2c57505050565b5f611b378347611f29565b600954909150611b50906001600160a01b03168261177a565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f602080835283518060208501525f5b81811015611bbc57858101830151858201604001528201611ba0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611217575f80fd5b5f8060408385031215611c01575f80fd5b8235611c0c81611bdc565b946020939093013593505050565b5f805f60608486031215611c2c575f80fd5b8335611c3781611bdc565b92506020840135611c4781611bdc565b929592945050506040919091013590565b5f60208284031215611c68575f80fd5b5035919050565b8015158114611217575f80fd5b5f60208284031215611c8c575f80fd5b8135611c9781611c6f565b9392505050565b5f60208284031215611cae575f80fd5b8135611c9781611bdc565b5f8060408385031215611cca575f80fd5b823591506020830135611cdc81611c6f565b809150509250929050565b5f8060408385031215611cf8575f80fd5b8235611d0381611bdc565b91506020830135611cdc81611c6f565b5f8060408385031215611d24575f80fd5b8235611d2f81611bdc565b91506020830135611cdc81611bdc565b600181811c90821680611d5357607f821691505b602082108103611d7157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611dfa57815f1904821115611de057611de0611dac565b80851615611ded57918102915b93841c9390800290611dc5565b509250929050565b5f82611e10575060016106e5565b81611e1c57505f6106e5565b8160018114611e325760028114611e3c57611e58565b60019150506106e5565b60ff841115611e4d57611e4d611dac565b50506001821b6106e5565b5060208310610133831016604e8410600b8410161715611e7b575081810a6106e5565b611e858383611dc0565b805f1904821115611e9857611e98611dac565b029392505050565b5f611c9760ff841683611e02565b5f82611ec857634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106e5576106e5611dac565b808201808211156106e5576106e5611dac565b5f60208284031215611f07575f80fd5b5051919050565b5f60208284031215611f1e575f80fd5b8151611c9781611c6f565b818103818111156106e5576106e5611dac565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f60575f80fd5b8151611c9781611bdc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fbb5784516001600160a01b031683529383019391830191600101611f96565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a7c33428aecc42737c0fec35380567bfaf4f6c36d5eda51a260aebef7f308d6a64736f6c63430008160033
Deployed Bytecode
0x6080604052600436106101e9575f3560e01c80637c08b96411610108578063b1fde9f81161009d578063d2fcc0011161006d578063d2fcc0011461058f578063dd62ed3e146105ae578063e2f45605146105f2578063f2fde38b14610607578063f9d0831a14610626575f80fd5b8063b1fde9f81461051d578063b3f006741461053c578063c02466681461055b578063cd51e6d41461057a575f80fd5b8063a457c2d7116100d8578063a457c2d714610493578063a8a69b9d146104b2578063a9059cbb146104e9578063aa4bde2814610508575f80fd5b80637c08b9641461042f5780638a8c523c1461044e5780638da5cb5b1461046257806395d89b411461047f575f80fd5b8063313ce5671161017e5780634fbee1931161014e5780634fbee193146103925780636ddd1713146103c957806370a08231146103e7578063715018a61461041b575f80fd5b8063313ce5671461031a578063395093511461033557806349bd5a5e146103545780634ada218b14610373575f80fd5b806321a9d82a116101b957806321a9d82a146102a257806323b872dd146102bb57806327a14fc2146102da5780632a6c7dba146102fb575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780631694505e1461024d57806318160ddd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50610208610645565b6040516102159190611b90565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611bf0565b6106d5565b6040519015158152602001610215565b348015610258575f80fd5b5060065461026c906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561028f575f80fd5b506002545b604051908152602001610215565b3480156102ad575f80fd5b50600e5461023d9060ff1681565b3480156102c6575f80fd5b5061023d6102d5366004611c1a565b6106eb565b3480156102e5575f80fd5b506102f96102f4366004611c58565b61079f565b005b348015610306575f80fd5b506102f9610315366004611c7c565b6108a5565b348015610325575f80fd5b5060405160128152602001610215565b348015610340575f80fd5b5061023d61034f366004611bf0565b610984565b34801561035f575f80fd5b5060075461026c906001600160a01b031681565b34801561037e575f80fd5b50600b5461023d9062010000900460ff1681565b34801561039d575f80fd5b5061023d6103ac366004611c9e565b6001600160a01b03165f9081526008602052604090205460ff1690565b3480156103d4575f80fd5b50600b5461023d90610100900460ff1681565b3480156103f2575f80fd5b50610294610401366004611c9e565b6001600160a01b03165f9081526020819052604090205490565b348015610426575f80fd5b506102f96109bf565b34801561043a575f80fd5b506102f9610449366004611c9e565b610a32565b348015610459575f80fd5b506102f9610b16565b34801561046d575f80fd5b506005546001600160a01b031661026c565b34801561048a575f80fd5b50610208610bf2565b34801561049e575f80fd5b5061023d6104ad366004611bf0565b610c01565b3480156104bd575f80fd5b5061023d6104cc366004611c9e565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156104f4575f80fd5b5061023d610503366004611bf0565b610c99565b348015610513575f80fd5b50610294600f5481565b348015610528575f80fd5b506102f9610537366004611cb9565b610ca5565b348015610547575f80fd5b5060095461026c906001600160a01b031681565b348015610566575f80fd5b506102f9610575366004611ce7565b610e2e565b348015610585575f80fd5b50610294600c5481565b34801561059a575f80fd5b506102f96105a9366004611ce7565b610eb7565b3480156105b9575f80fd5b506102946105c8366004611d13565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156105fd575f80fd5b50610294600a5481565b348015610612575f80fd5b506102f9610621366004611c9e565b61100b565b348015610631575f80fd5b506102f9610640366004611c9e565b6110f5565b60606003805461065490611d3f565b80601f016020809104026020016040519081016040528092919081815260200182805461068090611d3f565b80156106cb5780601f106106a2576101008083540402835291602001916106cb565b820191905f5260205f20905b8154815290600101906020018083116106ae57829003601f168201915b5050505050905090565b5f6106e133848461121a565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f198114610789578281101561077c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610789853385840361121a565b61079485858561133d565b506001949350505050565b6005546001600160a01b031633146107c95760405162461bcd60e51b815260040161077390611d77565b60646107d76012600a611ea0565b6002546107e49190611eae565b6107ee9190611eae565b8110156108535760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c65742070657263656e746167652063616e6e6f742062652060448201526c6c6f776572207468616e20312560981b6064820152608401610773565b61085f6012600a611ea0565b6108699082611ecd565b600f8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb5942906020015b60405180910390a150565b6005546001600160a01b031633146108cf5760405162461bcd60e51b815260040161077390611d77565b600e5460ff1615158115150361093d5760405162461bcd60e51b815260206004820152602d60248201527f4d61782077616c6c6574206c696d697420697320616c7265616479207365742060448201526c746f207468617420737461746560981b6064820152608401610773565b600e805460ff191682151590811790915560405160ff909116151581527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f19060200161089a565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916106e19185906109ba908690611ee4565b61121a565b6005546001600160a01b031633146109e95760405162461bcd60e51b815260040161077390611d77565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b815260040161077390611d77565b6001600160a01b038116610ac85760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610773565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200161089a565b6005546001600160a01b03163314610b405760405162461bcd60e51b815260040161077390611d77565b600b5462010000900460ff1615610b995760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610773565b600b80546201010062ffff0019909116179081905543600c556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461065490611d3f565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610c825760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610773565b610c8f338585840361121a565b5060019392505050565b5f6106e133848461133d565b6005546001600160a01b03163314610ccf5760405162461bcd60e51b815260040161077390611d77565b620f4240610cdc60025490565b610ce69190611eae565b8211610d685760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610773565b6002548210610ddf5760405162461bcd60e51b815260206004820152603a60248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f20736d616c6c6572207468616e20746f74616c20737570706c790000000000006064820152608401610773565b600a829055600b805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b6005546001600160a01b03163314610e585760405162461bcd60e51b815260040161077390611d77565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b6005546001600160a01b03163314610ee15760405162461bcd60e51b815260040161077390611d77565b6001600160a01b0382165f908152600d602052604090205481151560ff909116151503610f5c5760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610773565b306001600160a01b03831603610fb45760405162461bcd60e51b815260206004820152601760248201527f43616e277420736574207468697320616464726573732e0000000000000000006044820152606401610773565b6001600160a01b0382165f818152600d6020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c9101610eab565b6005546001600160a01b031633146110355760405162461bcd60e51b815260040161077390611d77565b6001600160a01b03811661109a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610773565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461111f5760405162461bcd60e51b815260040161077390611d77565b6001600160a01b03811661113b57611137334761177a565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015611187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ab9190611ef7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156111f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111379190611f0e565b50565b6001600160a01b03831661127c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166112dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661139f5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610773565b6001600160a01b0382166114005760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610773565b600b5462010000900460ff168061142e57506001600160a01b0383165f9081526008602052604090205460ff165b8061145057506001600160a01b0382165f9081526008602052604090205460ff165b61149c5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610773565b805f036114b3576114ae83835f611824565b505050565b305f90815260208190526040902054600a54811080159081906114d95750600b5460ff16155b80156114f257506007546001600160a01b038581169116145b801561151657506001600160a01b0385165f9081526008602052604090205460ff16155b80156115295750600b54610100900460ff165b1561155257600b805460ff19166001179055600a54611547906119f1565b600b805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff168061158f57506001600160a01b0385165f9081526008602052604090205460ff165b8061159c5750600b5460ff165b156115a857505f611637565b6007546001600160a01b03878116911614806115d157506007546001600160a01b038681169116145b1561163457600c546115e4906064611ee4565b4311156115f257505f611637565b600c54611600906028611ee4565b43111561160f57506003611637565b600c5461161d90600a611ee4565b43111561162c57506005611637565b50601e611637565b505f5b801561166f575f606461164a8387611ecd565b6116549190611eae565b90506116608186611f29565b945061166d873083611824565b505b600e5460ff1615611767576001600160a01b0386165f908152600d602052604090205460ff161580156116ba57506001600160a01b0385165f908152600d602052604090205460ff16155b80156116d457506007546001600160a01b03868116911614155b15611767576001600160a01b0385165f90815260208190526040902054600f546116fe8683611ee4565b11156117655760405162461bcd60e51b815260206004820152603060248201527f4d617857616c6c65743a20526563697069656e7420657863656564732074686560448201526f081b585e15d85b1b195d105b5bdd5b9d60821b6064820152608401610773565b505b611772868686611824565b505050505050565b5f814710156117cb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610773565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114611814576040519150601f19603f3d011682016040523d82523d5f602084013e611819565b606091505b509095945050505050565b6001600160a01b0383166118885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610773565b6001600160a01b0382166118ea5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610773565b6001600160a01b0383165f90815260208190526040902054818110156119615760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610773565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611997908490611ee4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119e391815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f81518110611a2857611a28611f3c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa39190611f50565b81600181518110611ab657611ab6611f3c565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac94790611afb9086905f90869030904290600401611f6b565b5f604051808303815f87803b158015611b12575f80fd5b505af1925050508015611b23575060015b611b2c57505050565b5f611b378347611f29565b600954909150611b50906001600160a01b03168261177a565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f602080835283518060208501525f5b81811015611bbc57858101830151858201604001528201611ba0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611217575f80fd5b5f8060408385031215611c01575f80fd5b8235611c0c81611bdc565b946020939093013593505050565b5f805f60608486031215611c2c575f80fd5b8335611c3781611bdc565b92506020840135611c4781611bdc565b929592945050506040919091013590565b5f60208284031215611c68575f80fd5b5035919050565b8015158114611217575f80fd5b5f60208284031215611c8c575f80fd5b8135611c9781611c6f565b9392505050565b5f60208284031215611cae575f80fd5b8135611c9781611bdc565b5f8060408385031215611cca575f80fd5b823591506020830135611cdc81611c6f565b809150509250929050565b5f8060408385031215611cf8575f80fd5b8235611d0381611bdc565b91506020830135611cdc81611c6f565b5f8060408385031215611d24575f80fd5b8235611d2f81611bdc565b91506020830135611cdc81611bdc565b600181811c90821680611d5357607f821691505b602082108103611d7157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611dfa57815f1904821115611de057611de0611dac565b80851615611ded57918102915b93841c9390800290611dc5565b509250929050565b5f82611e10575060016106e5565b81611e1c57505f6106e5565b8160018114611e325760028114611e3c57611e58565b60019150506106e5565b60ff841115611e4d57611e4d611dac565b50506001821b6106e5565b5060208310610133831016604e8410600b8410161715611e7b575081810a6106e5565b611e858383611dc0565b805f1904821115611e9857611e98611dac565b029392505050565b5f611c9760ff841683611e02565b5f82611ec857634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106e5576106e5611dac565b808201808211156106e5576106e5611dac565b5f60208284031215611f07575f80fd5b5051919050565b5f60208284031215611f1e575f80fd5b8151611c9781611c6f565b818103818111156106e5576106e5611dac565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611f60575f80fd5b8151611c9781611bdc565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611fbb5784516001600160a01b031683529383019391830191600101611f96565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a7c33428aecc42737c0fec35380567bfaf4f6c36d5eda51a260aebef7f308d6a64736f6c63430008160033
Deployed Bytecode Sourcemap
8163:8624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4074:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4988:169;;;;;;;;;;-1:-1:-1;4988:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4988:169:0;1023:187:1;8246:41:0;;;;;;;;;;-1:-1:-1;8246:41:0;;;;-1:-1:-1;;;;;8246:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;8246:41:0;1215:228:1;4395:108:0;;;;;;;;;;-1:-1:-1;4483:12:0;;4395:108;;;1594:25:1;;;1582:2;1567:18;4395:108:0;1448:177:1;15314:36:0;;;;;;;;;;-1:-1:-1;15314:36:0;;;;;;;;5165:573;;;;;;;;;;-1:-1:-1;5165:573:0;;;;;:::i;:::-;;:::i;15892:340::-;;;;;;;;;;-1:-1:-1;15892:340:0;;;;;:::i;:::-;;:::i;:::-;;15604:280;;;;;;;;;;-1:-1:-1;15604:280:0;;;;;:::i;:::-;;:::i;4294:93::-;;;;;;;;;;-1:-1:-1;4294:93:0;;4377:2;2787:36:1;;2775:2;2760:18;4294:93:0;2645:184:1;5746:215:0;;;;;;;;;;-1:-1:-1;5746:215:0;;;;;:::i;:::-;;:::i;8294:29::-;;;;;;;;;;-1:-1:-1;8294:29:0;;;;-1:-1:-1;;;;;8294:29:0;;;11495:26;;;;;;;;;;-1:-1:-1;11495:26:0;;;;;;;;;;;10990:125;;;;;;;;;;-1:-1:-1;10990:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11079:28:0;11055:4;11079:28;;;:19;:28;;;;;;;;;10990:125;8504:26;;;;;;;;;;-1:-1:-1;8504:26:0;;;;;;;;;;;4511:127;;;;;;;;;;-1:-1:-1;4511:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4612:18:0;4585:7;4612:18;;;;;;;;;;;;4511:127;3263:148;;;;;;;;;;;;;:::i;11177:256::-;;;;;;;;;;-1:-1:-1;11177:256:0;;;;;:::i;:::-;;:::i;11564:267::-;;;;;;;;;;;;;:::i;3049:79::-;;;;;;;;;;-1:-1:-1;3114:6:0;;-1:-1:-1;;;;;3114:6:0;3049:79;;4182:104;;;;;;;;;;;;;:::i;5969:413::-;;;;;;;;;;-1:-1:-1;5969:413:0;;;;;:::i;:::-;;:::i;16639:145::-;;;;;;;;;;-1:-1:-1;16639:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;16738:38:0;16714:4;16738:38;;;:29;:38;;;;;;;;;16639:145;4646:175;;;;;;;;;;-1:-1:-1;4646:175:0;;;;;:::i;:::-;;:::i;15357:30::-;;;;;;;;;;;;;;;;14069:473;;;;;;;;;;-1:-1:-1;14069:473:0;;;;;:::i;:::-;;:::i;8394:27::-;;;;;;;;;;-1:-1:-1;8394:27:0;;;;-1:-1:-1;;;;;8394:27:0;;;10797:185;;;;;;;;;;-1:-1:-1;10797:185:0;;;;;:::i;:::-;;:::i;11528:27::-;;;;;;;;;;;;;;;;16240:391;;;;;;;;;;-1:-1:-1;16240:391:0;;;;;:::i;:::-;;:::i;4829:151::-;;;;;;;;;;-1:-1:-1;4829:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4945:18:0;;;4918:7;4945:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4829:151;8430:34;;;;;;;;;;;;;;;;3419:244;;;;;;;;;;-1:-1:-1;3419:244:0;;;;;:::i;:::-;;:::i;10489:300::-;;;;;;;;;;-1:-1:-1;10489:300:0;;;;;:::i;:::-;;:::i;4074:100::-;4128:13;4161:5;4154:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4074:100;:::o;4988:169::-;5071:4;5088:39;2452:10;5111:7;5120:6;5088:8;:39::i;:::-;-1:-1:-1;5145:4:0;4988:169;;;;;:::o;5165:573::-;-1:-1:-1;;;;;5349:19:0;;5305:4;5349:19;;;:11;:19;;;;;;;;2452:10;5349:33;;;;;;;;-1:-1:-1;;5397:37:0;;5393:265;;5479:6;5459:16;:26;;5451:79;;;;-1:-1:-1;;;5451:79:0;;4975:2:1;5451:79:0;;;4957:21:1;5014:2;4994:18;;;4987:30;5053:34;5033:18;;;5026:62;-1:-1:-1;;;5104:18:1;;;5097:38;5152:19;;5451:79:0;;;;;;;;;5574:57;5583:6;2452:10;5624:6;5605:16;:25;5574:8;:57::i;:::-;5670:36;5680:6;5688:9;5699:6;5670:9;:36::i;:::-;-1:-1:-1;5726:4:0;;5165:573;-1:-1:-1;;;;5165:573:0:o;15892:340::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;16043:3:::1;16022:16;4377:2:::0;16022::::1;:16;:::i;:::-;4483:12:::0;;16005:34:::1;;;;:::i;:::-;16004:42;;;;:::i;:::-;15984:16;:62;;15976:120;;;::::0;-1:-1:-1;;;15976:120:0;;7476:2:1;15976:120:0::1;::::0;::::1;7458:21:1::0;7515:2;7495:18;;;7488:30;7554:34;7534:18;;;7527:62;-1:-1:-1;;;7605:18:1;;;7598:43;7658:19;;15976:120:0::1;7274:409:1::0;15976:120:0::1;16145:16;4377:2:::0;16145::::1;:16;:::i;:::-;16125:37;::::0;:16;:37:::1;:::i;:::-;16107:15;:55:::0;;;16180:44:::1;::::0;1594:25:1;;;16180:44:0::1;::::0;1582:2:1;1567:18;16180:44:0::1;;;;;;;;15892:340:::0;:::o;15604:280::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;15698:21:::1;::::0;::::1;;15688:31;;::::0;::::1;;::::0;15680:88:::1;;;::::0;-1:-1:-1;;;15680:88:0;;8063:2:1;15680:88:0::1;::::0;::::1;8045:21:1::0;8102:2;8082:18;;;8075:30;8141:34;8121:18;;;8114:62;-1:-1:-1;;;8192:18:1;;;8185:43;8245:19;;15680:88:0::1;7861:409:1::0;15680:88:0::1;15779:21;:30:::0;;-1:-1:-1;;15779:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15827:49:::1;::::0;15779:30:::1;15854:21:::0;;;1188:14:1;1181:22;1163:41;;15827:49:0::1;::::0;1151:2:1;1136:18;15827:49:0::1;1023:187:1::0;5746:215:0;2452:10;5834:4;5883:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5883:34:0;;;;;;;;;;5834:4;;5851:80;;5874:7;;5883:47;;5920:10;;5883:47;:::i;:::-;5851:8;:80::i;3263:148::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;3354:6:::1;::::0;3333:40:::1;::::0;3370:1:::1;::::0;-1:-1:-1;;;;;3354:6:0::1;::::0;3333:40:::1;::::0;3370:1;;3333:40:::1;3384:6;:19:::0;;-1:-1:-1;;;;;;3384:19:0::1;::::0;;3263:148::o;11177:256::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11263:26:0;::::1;11255:84;;;::::0;-1:-1:-1;;;11255:84:0;;8607:2:1;11255:84:0::1;::::0;::::1;8589:21:1::0;8646:2;8626:18;;;8619:30;8685:34;8665:18;;;8658:62;-1:-1:-1;;;8736:18:1;;;8729:43;8789:19;;11255:84:0::1;8405:409:1::0;11255:84:0::1;11350:11;:26:::0;;-1:-1:-1;;;;;;11350:26:0::1;-1:-1:-1::0;;;;;11350:26:0;::::1;::::0;;::::1;::::0;;;11394:31:::1;::::0;1386:51:1;;;11394:31:0::1;::::0;1374:2:1;1359:18;11394:31:0::1;1215:228:1::0;11564:267:0;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;11627:14:::1;::::0;;;::::1;;;11626:15;11618:58;;;::::0;-1:-1:-1;;;11618:58:0;;9021:2:1;11618:58:0::1;::::0;::::1;9003:21:1::0;9060:2;9040:18;;;9033:30;9099:32;9079:18;;;9072:60;9149:18;;11618:58:0::1;8819:354:1::0;11618:58:0::1;11687:14;:21:::0;;11719:18;-1:-1:-1;;11719:18:0;;;;;;;;11763:12:::1;11748;:27:::0;11793:30:::1;::::0;11687:21;11808:14;;::::1;11687:21;11808:14;1188::1::0;1181:22;1163:41;;11793:30:0::1;::::0;1151:2:1;1136:18;11793:30:0::1;;;;;;;11564:267::o:0;4182:104::-;4238:13;4271:7;4264:14;;;;;:::i;5969:413::-;2452:10;6062:4;6106:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6106:34:0;;;;;;;;;;6159:35;;;;6151:85;;;;-1:-1:-1;;;6151:85:0;;9380:2:1;6151:85:0;;;9362:21:1;9419:2;9399:18;;;9392:30;9458:34;9438:18;;;9431:62;-1:-1:-1;;;9509:18:1;;;9502:35;9554:19;;6151:85:0;9178:401:1;6151:85:0;6272:67;2452:10;6295:7;6323:15;6304:16;:34;6272:8;:67::i;:::-;-1:-1:-1;6370:4:0;;5969:413;-1:-1:-1;;;5969:413:0:o;4646:175::-;4732:4;4749:42;2452:10;4773:9;4784:6;4749:9;:42::i;14069:473::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;14203:9:::1;14187:13;4483:12:::0;;;4395:108;14187:13:::1;:25;;;;:::i;:::-;14175:9;:37;14167:119;;;::::0;-1:-1:-1;;;14167:119:0;;9786:2:1;14167:119:0::1;::::0;::::1;9768:21:1::0;9825:2;9805:18;;;9798:30;9864:34;9844:18;;;9837:62;9935:34;9915:18;;;9908:62;-1:-1:-1;;;9986:19:1;;;9979:36;10032:19;;14167:119:0::1;9584:473:1::0;14167:119:0::1;4483:12:::0;;14305:9:::1;:25;14297:96;;;::::0;-1:-1:-1;;;14297:96:0;;10264:2:1;14297:96:0::1;::::0;::::1;10246:21:1::0;10303:2;10283:18;;;10276:30;10342:34;10322:18;;;10315:62;10413:28;10393:18;;;10386:56;10459:19;;14297:96:0::1;10062:422:1::0;14297:96:0::1;14404:18;:30:::0;;;14445:11:::1;:26:::0;;-1:-1:-1;;14445:26:0::1;;::::0;::::1;;;;::::0;;14489:45:::1;::::0;1594:25:1;;;14489:45:0::1;::::0;1582:2:1;1567:18;14489:45:0::1;;;;;;;14069:473:::0;;:::o;10797:185::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10883:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;10883:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10940:34;;1163:41:1;;;10940:34:0::1;::::0;1136:18:1;10940:34:0::1;;;;;;;;10797:185:::0;;:::o;16240:391::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16340:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;16331:98:::1;;;::::0;-1:-1:-1;;;16331:98:0;;10691:2:1;16331:98:0::1;::::0;::::1;10673:21:1::0;10730:2;10710:18;;;10703:30;10769:34;10749:18;;;10742:62;-1:-1:-1;;;10820:18:1;;;10813:34;10864:19;;16331:98:0::1;10489:400:1::0;16331:98:0::1;16467:4;-1:-1:-1::0;;;;;16448:24:0;::::1;::::0;16440:60:::1;;;::::0;-1:-1:-1;;;16440:60:0;;11096:2:1;16440:60:0::1;::::0;::::1;11078:21:1::0;11135:2;11115:18;;;11108:30;11174:25;11154:18;;;11147:53;11217:18;;16440:60:0::1;10894:347:1::0;16440:60:0::1;-1:-1:-1::0;;;;;16513:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;16513:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16579:44;;1163:41:1;;;16579:44:0::1;::::0;1136:18:1;16579:44:0::1;1023:187:1::0;3419:244:0;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:22:0;::::1;3500:73;;;::::0;-1:-1:-1;;;3500:73:0;;11448:2:1;3500:73:0::1;::::0;::::1;11430:21:1::0;11487:2;11467:18;;;11460:30;11526:34;11506:18;;;11499:62;-1:-1:-1;;;11577:18:1;;;11570:36;11623:19;;3500:73:0::1;11246:402:1::0;3500:73:0::1;3610:6;::::0;3589:38:::1;::::0;-1:-1:-1;;;;;3589:38:0;;::::1;::::0;3610:6:::1;::::0;3589:38:::1;::::0;3610:6:::1;::::0;3589:38:::1;3638:6;:17:::0;;-1:-1:-1;;;;;;3638:17:0::1;-1:-1:-1::0;;;;;3638:17:0;;;::::1;::::0;;;::::1;::::0;;3419:244::o;10489:300::-;3176:6;;-1:-1:-1;;;;;3176:6:0;2452:10;3176:22;3168:67;;;;-1:-1:-1;;;3168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10564:21:0;::::1;10560:127;;10602:52;10610:10;10632:21;10602:29;:52::i;:::-;;10489:300:::0;:::o;10560:127::-:1;10742:38;::::0;-1:-1:-1;;;10742:38:0;;10774:4:::1;10742:38;::::0;::::1;1386:51:1::0;-1:-1:-1;;;;;10707:22:0;::::1;::::0;::::1;::::0;10730:10:::1;::::0;10707:22;;10742:23:::1;::::0;1359:18:1;;10742:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10707:74;::::0;-1:-1:-1;;;;;;10707:74:0::1;::::0;;;;;;-1:-1:-1;;;;;12034:32:1;;;10707:74:0::1;::::0;::::1;12016:51:1::0;12083:18;;;12076:34;11989:18;;10707:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3246:1::-;10489:300:::0;:::o;7776:380::-;-1:-1:-1;;;;;7912:19:0;;7904:68;;;;-1:-1:-1;;;7904:68:0;;12573:2:1;7904:68:0;;;12555:21:1;12612:2;12592:18;;;12585:30;12651:34;12631:18;;;12624:62;-1:-1:-1;;;12702:18:1;;;12695:34;12746:19;;7904:68:0;12371:400:1;7904:68:0;-1:-1:-1;;;;;7991:21:0;;7983:68;;;;-1:-1:-1;;;7983:68:0;;12978:2:1;7983:68:0;;;12960:21:1;13017:2;12997:18;;;12990:30;13056:34;13036:18;;;13029:62;-1:-1:-1;;;13107:18:1;;;13100:32;13149:19;;7983:68:0;12776:398:1;7983:68:0;-1:-1:-1;;;;;8064:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8116:32;;1594:25:1;;;8116:32:0;;1567:18:1;8116:32:0;;;;;;;7776:380;;;:::o;11839:2222::-;-1:-1:-1;;;;;11936:18:0;;11928:67;;;;-1:-1:-1;;;11928:67:0;;13381:2:1;11928:67:0;;;13363:21:1;13420:2;13400:18;;;13393:30;13459:34;13439:18;;;13432:62;-1:-1:-1;;;13510:18:1;;;13503:34;13554:19;;11928:67:0;13179:400:1;11928:67:0;-1:-1:-1;;;;;12014:16:0;;12006:63;;;;-1:-1:-1;;;12006:63:0;;13786:2:1;12006:63:0;;;13768:21:1;13825:2;13805:18;;;13798:30;13864:34;13844:18;;;13837:62;-1:-1:-1;;;13915:18:1;;;13908:32;13957:19;;12006:63:0;13584:398:1;12006:63:0;12088:14;;;;;;;;:43;;-1:-1:-1;;;;;;12106:25:0;;;;;;:19;:25;;;;;;;;12088:43;:70;;;-1:-1:-1;;;;;;12135:23:0;;;;;;:19;:23;;;;;;;;12088:70;12080:113;;;;-1:-1:-1;;;12080:113:0;;14189:2:1;12080:113:0;;;14171:21:1;14228:2;14208:18;;;14201:30;14267:32;14247:18;;;14240:60;14317:18;;12080:113:0;13987:354:1;12080:113:0;12217:6;12227:1;12217:11;12213:93;;12245:28;12261:4;12267:2;12271:1;12245:15;:28::i;:::-;11839:2222;;;:::o;12213:93::-;12361:4;12312:28;4612:18;;;;;;;;;;;12419;;12395:42;;;;;;;12454:33;;-1:-1:-1;12479:8:0;;;;12478:9;12454:33;:69;;;;-1:-1:-1;12510:13:0;;-1:-1:-1;;;;;12504:19:0;;;12510:13;;12504:19;12454:69;:112;;;;-1:-1:-1;;;;;;12541:25:0;;;;;;:19;:25;;;;;;;;12540:26;12454:112;:140;;;;-1:-1:-1;12583:11:0;;;;;;;12454:140;12450:287;;;12621:8;:15;;-1:-1:-1;;12621:15:0;12632:4;12621:15;;;12668:18;;12653:34;;:14;:34::i;:::-;12709:8;:16;;-1:-1:-1;;12709:16:0;;;12450:287;-1:-1:-1;;;;;12782:25:0;;12749:18;12782:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;12811:23:0;;;;;;:19;:23;;;;;;;;12782:52;:64;;;-1:-1:-1;12838:8:0;;;;12782:64;12778:564;;;-1:-1:-1;12876:1:0;12778:564;;;12907:13;;-1:-1:-1;;;;;12899:21:0;;;12907:13;;12899:21;;:44;;-1:-1:-1;12930:13:0;;-1:-1:-1;;;;;12924:19:0;;;12930:13;;12924:19;12899:44;12895:447;;;12978:12;;:18;;12993:3;12978:18;:::i;:::-;12963:12;:33;12960:324;;;-1:-1:-1;13029:1:0;12895:447;;12960:324;13070:12;;:17;;13085:2;13070:17;:::i;:::-;13055:12;:32;13052:232;;;-1:-1:-1;13120:1:0;12895:447;;13052:232;13161:12;;:17;;13176:2;13161:17;:::i;:::-;13146:12;:32;13143:141;;;-1:-1:-1;13211:1:0;12895:447;;13143:141;-1:-1:-1;13266:2:0;12895:447;;;-1:-1:-1;13329:1:0;12895:447;13358:14;;13354:183;;13389:12;13428:3;13405:19;13414:10;13405:6;:19;:::i;:::-;13404:27;;;;:::i;:::-;13389:42;-1:-1:-1;13455:13:0;13389:42;13455:6;:13;:::i;:::-;13446:22;;13483:42;13499:4;13513;13520;13483:15;:42::i;:::-;13374:163;13354:183;13553:21;;;;13549:459;;;-1:-1:-1;;;;;13606:35:0;;;;;;:29;:35;;;;;;;;13605:36;:92;;;;-1:-1:-1;;;;;;13664:33:0;;;;;;:29;:33;;;;;;;;13663:34;13605:92;:132;;;;-1:-1:-1;13724:13:0;;-1:-1:-1;;;;;13718:19:0;;;13724:13;;13718:19;;13605:132;13601:396;;;-1:-1:-1;;;;;4612:18:0;;13772:15;4612:18;;;;;;;;;;;13873:15;;13853:16;13863:6;4612:18;13853:16;:::i;:::-;:35;;13823:158;;;;-1:-1:-1;;;13823:158:0;;14681:2:1;13823:158:0;;;14663:21:1;14720:2;14700:18;;;14693:30;14759:34;14739:18;;;14732:62;-1:-1:-1;;;14810:18:1;;;14803:46;14866:19;;13823:158:0;14479:412:1;13823:158:0;13753:244;13601:396;14020:33;14036:4;14042:2;14046:6;14020:15;:33::i;:::-;11917:2144;;;11839:2222;;;:::o;2047:285::-;2126:4;2175:6;2150:21;:31;;2142:73;;;;-1:-1:-1;;;2142:73:0;;15098:2:1;2142:73:0;;;15080:21:1;15137:2;15117:18;;;15110:30;15176:31;15156:18;;;15149:59;15225:18;;2142:73:0;14896:353:1;2142:73:0;2229:12;2247:9;-1:-1:-1;;;;;2247:14:0;2269:6;2247:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2228:52:0;;2047:285;-1:-1:-1;;;;;2047:285:0:o;6390:614::-;-1:-1:-1;;;;;6530:20:0;;6522:70;;;;-1:-1:-1;;;6522:70:0;;15666:2:1;6522:70:0;;;15648:21:1;15705:2;15685:18;;;15678:30;15744:34;15724:18;;;15717:62;-1:-1:-1;;;15795:18:1;;;15788:35;15840:19;;6522:70:0;15464:401:1;6522:70:0;-1:-1:-1;;;;;6611:23:0;;6603:71;;;;-1:-1:-1;;;6603:71:0;;16072:2:1;6603:71:0;;;16054:21:1;16111:2;16091:18;;;16084:30;16150:34;16130:18;;;16123:62;-1:-1:-1;;;16201:18:1;;;16194:33;16244:19;;6603:71:0;15870:399:1;6603:71:0;-1:-1:-1;;;;;6711:17:0;;6687:21;6711:17;;;;;;;;;;;6747:23;;;;6739:74;;;;-1:-1:-1;;;6739:74:0;;16476:2:1;6739:74:0;;;16458:21:1;16515:2;16495:18;;;16488:30;16554:34;16534:18;;;16527:62;-1:-1:-1;;;16605:18:1;;;16598:36;16651:19;;6739:74:0;16274:402:1;6739:74:0;-1:-1:-1;;;;;6849:17:0;;;:9;:17;;;;;;;;;;;6869:22;;;6849:42;;6913:20;;;;;;;;:30;;6885:6;;6849:9;6913:30;;6885:6;;6913:30;:::i;:::-;;;;;;;;6978:9;-1:-1:-1;;;;;6961:35:0;6970:6;-1:-1:-1;;;;;6961:35:0;;6989:6;6961:35;;;;1594:25:1;;1582:2;1567:18;;1448:177;6961:35:0;;;;;;;;6511:493;6390:614;;;:::o;14550:687::-;14697:16;;;14711:1;14697:16;;;;;;;;14639:21;;14614:22;;14697:16;14711:1;14697:16;;;;;;;;;;-1:-1:-1;14697:16:0;14673:40;;14742:4;14724;14729:1;14724:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14724:23:0;;;:7;;;;;;;;;;:23;;;;14768:15;;:22;;;-1:-1:-1;;;14768:22:0;;;;:15;;;;;:20;;:22;;;;;14724:7;;14768:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14758:4;14763:1;14758:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14758:32:0;;;:7;;;;;;;;;:32;14807:15;;:196;;-1:-1:-1;;;14807:196:0;;:15;;;:66;;:196;;14888:11;;14807:15;;14930:4;;14957;;14977:15;;14807:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14803:243;;15028:7;;14550:687;:::o;14803:243::-;15058:18;15079:38;15103:14;15079:21;:38;:::i;:::-;15138:11;;15058:59;;-1:-1:-1;15130:42:0;;-1:-1:-1;;;;;15138:11:0;15058:59;15130:30;:42::i;:::-;-1:-1:-1;15190:39:0;;;18360:25:1;;;18416:2;18401:18;;18394:34;;;15190:39:0;;18333:18:1;15190:39:0;;;;;;;14603:634;;;14550:687;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2091:180::-;2150:6;2203:2;2191:9;2182:7;2178:23;2174:32;2171:52;;;2219:1;2216;2209:12;2171:52;-1:-1:-1;2242:23:1;;2091:180;-1:-1:-1;2091:180:1:o;2276:118::-;2362:5;2355:13;2348:21;2341:5;2338:32;2328:60;;2384:1;2381;2374:12;2399:241;2455:6;2508:2;2496:9;2487:7;2483:23;2479:32;2476:52;;;2524:1;2521;2514:12;2476:52;2563:9;2550:23;2582:28;2604:5;2582:28;:::i;:::-;2629:5;2399:241;-1:-1:-1;;;2399:241:1:o;3042:247::-;3101:6;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;3209:9;3196:23;3228:31;3253:5;3228:31;:::i;3294:309::-;3359:6;3367;3420:2;3408:9;3399:7;3395:23;3391:32;3388:52;;;3436:1;3433;3426:12;3388:52;3472:9;3459:23;3449:33;;3532:2;3521:9;3517:18;3504:32;3545:28;3567:5;3545:28;:::i;:::-;3592:5;3582:15;;;3294:309;;;;;:::o;3608:382::-;3673:6;3681;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;3789:9;3776:23;3808:31;3833:5;3808:31;:::i;:::-;3858:5;-1:-1:-1;3915:2:1;3900:18;;3887:32;3928:30;3887:32;3928:30;:::i;3995:388::-;4063:6;4071;4124:2;4112:9;4103:7;4099:23;4095:32;4092:52;;;4140:1;4137;4130:12;4092:52;4179:9;4166:23;4198:31;4223:5;4198:31;:::i;:::-;4248:5;-1:-1:-1;4305:2:1;4290:18;;4277:32;4318:33;4277:32;4318:33;:::i;4388:380::-;4467:1;4463:12;;;;4510;;;4531:61;;4585:4;4577:6;4573:17;4563:27;;4531:61;4638:2;4630:6;4627:14;4607:18;4604:38;4601:161;;4684:10;4679:3;4675:20;4672:1;4665:31;4719:4;4716:1;4709:15;4747:4;4744:1;4737:15;4601:161;;4388:380;;;:::o;5182:356::-;5384:2;5366:21;;;5403:18;;;5396:30;5462:34;5457:2;5442:18;;5435:62;5529:2;5514:18;;5182:356::o;5543:127::-;5604:10;5599:3;5595:20;5592:1;5585:31;5635:4;5632:1;5625:15;5659:4;5656:1;5649:15;5675:416;5764:1;5801:5;5764:1;5815:270;5836:7;5826:8;5823:21;5815:270;;;5895:4;5891:1;5887:6;5883:17;5877:4;5874:27;5871:53;;;5904:18;;:::i;:::-;5954:7;5944:8;5940:22;5937:55;;;5974:16;;;;5937:55;6053:22;;;;6013:15;;;;5815:270;;;5819:3;5675:416;;;;;:::o;6096:806::-;6145:5;6175:8;6165:80;;-1:-1:-1;6216:1:1;6230:5;;6165:80;6264:4;6254:76;;-1:-1:-1;6301:1:1;6315:5;;6254:76;6346:4;6364:1;6359:59;;;;6432:1;6427:130;;;;6339:218;;6359:59;6389:1;6380:10;;6403:5;;;6427:130;6464:3;6454:8;6451:17;6448:43;;;6471:18;;:::i;:::-;-1:-1:-1;;6527:1:1;6513:16;;6542:5;;6339:218;;6641:2;6631:8;6628:16;6622:3;6616:4;6613:13;6609:36;6603:2;6593:8;6590:16;6585:2;6579:4;6576:12;6572:35;6569:77;6566:159;;;-1:-1:-1;6678:19:1;;;6710:5;;6566:159;6757:34;6782:8;6776:4;6757:34;:::i;:::-;6827:6;6823:1;6819:6;6815:19;6806:7;6803:32;6800:58;;;6838:18;;:::i;:::-;6876:20;;6096:806;-1:-1:-1;;;6096:806:1:o;6907:140::-;6965:5;6994:47;7035:4;7025:8;7021:19;7015:4;6994:47;:::i;7052:217::-;7092:1;7118;7108:132;;7162:10;7157:3;7153:20;7150:1;7143:31;7197:4;7194:1;7187:15;7225:4;7222:1;7215:15;7108:132;-1:-1:-1;7254:9:1;;7052:217::o;7688:168::-;7761:9;;;7792;;7809:15;;;7803:22;;7789:37;7779:71;;7830:18;;:::i;8275:125::-;8340:9;;;8361:10;;;8358:36;;;8374:18;;:::i;11653:184::-;11723:6;11776:2;11764:9;11755:7;11751:23;11747:32;11744:52;;;11792:1;11789;11782:12;11744:52;-1:-1:-1;11815:16:1;;11653:184;-1:-1:-1;11653:184:1:o;12121:245::-;12188:6;12241:2;12229:9;12220:7;12216:23;12212:32;12209:52;;;12257:1;12254;12247:12;12209:52;12289:9;12283:16;12308:28;12330:5;12308:28;:::i;14346:128::-;14413:9;;;14434:11;;;14431:37;;;14448:18;;:::i;16813:127::-;16874:10;16869:3;16865:20;16862:1;16855:31;16905:4;16902:1;16895:15;16929:4;16926:1;16919:15;16945:251;17015:6;17068:2;17056:9;17047:7;17043:23;17039:32;17036:52;;;17084:1;17081;17074:12;17036:52;17116:9;17110:16;17135:31;17160:5;17135:31;:::i;17201:980::-;17463:4;17511:3;17500:9;17496:19;17542:6;17531:9;17524:25;17568:2;17606:6;17601:2;17590:9;17586:18;17579:34;17649:3;17644:2;17633:9;17629:18;17622:31;17673:6;17708;17702:13;17739:6;17731;17724:22;17777:3;17766:9;17762:19;17755:26;;17816:2;17808:6;17804:15;17790:29;;17837:1;17847:195;17861:6;17858:1;17855:13;17847:195;;;17926:13;;-1:-1:-1;;;;;17922:39:1;17910:52;;18017:15;;;;17982:12;;;;17958:1;17876:9;17847:195;;;-1:-1:-1;;;;;;;18098:32:1;;;;18093:2;18078:18;;18071:60;-1:-1:-1;;;18162:3:1;18147:19;18140:35;18059:3;17201:980;-1:-1:-1;;;17201:980:1:o
Swarm Source
ipfs://a7c33428aecc42737c0fec35380567bfaf4f6c36d5eda51a260aebef7f308d6a
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.