ERC-20
Overview
Max Total Supply
100,000,000 RedFlokiCEO
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,312,012.925635853 RedFlokiCEOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RedFlokiCEO
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-25 */ /** _____ _ ______ _ _ _ _____ ______ ____ | __ \ | | | ____| | | | (_) / ____| ____/ __ \ | |__) |___ __| | | |__ | | ___ | | ___ | | | |__ | | | | | _ // _ \/ _` | | __| | |/ _ \| |/ / | | | | __|| | | | | | \ \ __/ (_| | | | | | (_) | <| | | |____| |___| |__| | |_| \_\___|\__,_| |_| |_|\___/|_|\_\_| \_____|______\____/ */ // SPDX-License-Identifier: UNLICENSE pragma solidity ^0.8.17; 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); } 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() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract RedFlokiCEO is Context, IERC20, Ownable { using Address for address payable; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; address[] private _excluded; bool private swapping; IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1_00_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 200_0 * 10**_decimals; address public deadWallet = 0x000000000000000000000000000000000000dEaD; address public marketingWallet = 0xF403536c5f5965905FDea54e85aB3D71f68bd82C; string private constant _name = "Red Floki CEO"; string private constant _symbol = "RedFlokiCEO"; struct Taxes { uint256 rfi; uint256 marketing; } // tax 7% reflection, 3% mkt Taxes public taxes = Taxes(5, 5); struct TotFeesPaidStruct { uint256 rfi; uint256 marketing; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues { uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rMarketing; uint256 tTransferAmount; uint256 tRfi; uint256 tMarketing; } modifier lockTheSwap() { swapping = true; _; swapping = false; } constructor(address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); excludeFromReward(deadWallet); _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; _isExcludedFromFee[deadWallet] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } //override ERC20: function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true); return s.rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount / currentRate; } //@dev kept original RFI naming -> "reward" as in reflection function excludeFromReward(address account) public onlyOwner { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -= rRfi; totFeesPaid.rfi += tRfi; } function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private { totFeesPaid.marketing += tMarketing; if (_isExcluded[address(this)]) { _tOwned[address(this)] += tMarketing; } _rOwned[address(this)] += rMarketing; } function _getValues( uint256 tAmount, bool takeFee ) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee); ( to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rMarketing ) = _getRValues(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues( uint256 tAmount, bool takeFee ) private view returns (valuesFromGetValues memory s) { if (!takeFee) { s.tTransferAmount = tAmount; return s; } s.tRfi = (tAmount * taxes.rfi) / 100; s.tMarketing = (tAmount * taxes.marketing) / 100; s.tTransferAmount = tAmount - s.tRfi - s.tMarketing; return s; } function _getRValues( valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate ) private pure returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rMarketing ) { rAmount = tAmount * currentRate; if (!takeFee) { return (rAmount, rAmount, 0, 0); } rRfi = s.tRfi * currentRate; rMarketing = s.tMarketing * currentRate; rTransferAmount = rAmount - rRfi - rMarketing; return (rAmount, rTransferAmount, rRfi, rMarketing); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply / tSupply; } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply - _rOwned[_excluded[i]]; tSupply = tSupply - _tOwned[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require( amount <= balanceOf(from), "You are trying to transfer more than your balance" ); bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if ( !swapping && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapAndLiquify(); } bool takeFee = true; if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to] || from == pair) takeFee = false; _tokenTransfer(from, to, amount, takeFee); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee ) private { valuesFromGetValues memory s = _getValues(tAmount, takeFee); if (_isExcluded[sender]) { //from excluded _tOwned[sender] = _tOwned[sender] - tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount; } _rOwned[sender] = _rOwned[sender] - s.rAmount; _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount; if (s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if (s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify() private lockTheSwap { uint256 contractBalance = balanceOf(address(this)); swapTokensForBNB(contractBalance); uint256 deltaBalance = address(this).balance; if (deltaBalance > 0) { payable(marketingWallet).sendValue(deltaBalance); } } function swapTokensForBNB(uint256 tokenAmount) private { // generate the pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = state; } } function updateMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0),"Fee Address cannot be zero address"); marketingWallet = newWallet; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner { require(amount >= 100_000 && amount <= 10_000_000, "Cannot set swap threshold amount higher than 1% of tokens"); swapTokensAtAmount = amount * 1e9; } function manualSwap(uint256 tokens) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner or marketing wallet can call this."); uint256 caBalance = balanceOf(address(this)); uint256 convertedTokens = tokens * 1e9; require(caBalance >= 1*1e9 && tokens >= 1, "Contract should have at least 1 token and tokens should be equal or above 1."); swapTokensForBNB(convertedTokens); payable(msg.sender).sendValue(address(this).balance); } //Use this in case BNB are sent to the contract by mistake function rescueBNB() external { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner or marketing wallet can call this."); require(address(this).balance > 0, "insufficient BNB balance"); payable(msg.sender).transfer(address(this).balance); } //Use this in case ERC20 Tokens are sent to the contract by mistake function rescueAnyERC20Tokens(address _tokenAddr) public { require(msg.sender == owner() || msg.sender == marketingWallet, "Only owner or marketing wallet can call this."); require(_tokenAddr != address(this), "Owner can't claim contract's balance of its own tokens"); uint256 caBalance = IERC20(_tokenAddr).balanceOf(address(this)); IERC20(_tokenAddr).transfer(msg.sender, caBalance); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"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":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a6200091d565b62000022906305f5e1006200092e565b600981905562000035906000196200095e565b620000439060001962000975565b600a556009600a6200005691906200091d565b62000064906107d06200092e565b600b55600c80546001600160a01b031990811661dead17909155600d805490911673f403536c5f5965905fdea54e85ab3d71f68bd82c1790556040805180820190915260058082526020909101819052600e819055600f55348015620000c957600080fd5b5060405162002fb838038062002fb8833981016040819052620000ec916200098b565b620000f733620003de565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016391906200098b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d791906200098b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b91906200098b565b600780546001600160a01b0380861661010002610100600160a81b031990921691909117909155600880549183166001600160a01b03199092168217905590915062000297906200042e565b600c54620002ae906001600160a01b03166200042e565b600a5460016000620002c86000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003176000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600d54821681526004909352818320805485166001908117909155600c54909116835291208054909216179055620003856000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620003cd91815260200190565b60405180910390a3505050620009ff565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200048e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620004f95760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000485565b6001600160a01b0381166000908152600160205260409020541562000556576001600160a01b0381166000908152600160205260409020546200053c90620005bc565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000600a54821115620006255760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000485565b60006200063162000646565b90506200063f8184620009b6565b9392505050565b60008080620006546200066c565b9092509050620006658183620009b6565b9250505090565b600a546009546000918291825b600654811015620007d4578260016000600684815481106200069f576200069f620009cd565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200070e5750816002600060068481548110620006e757620006e7620009cd565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200072557600a54600954945094505050509091565b60016000600683815481106200073f576200073f620009cd565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000770908462000975565b925060026000600683815481106200078c576200078c620009cd565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007bd908362000975565b915080620007cb81620009e3565b91505062000679565b50600954600a54620007e79190620009b6565b821015620007ff57600a546009549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200085f57816000190482111562000843576200084362000808565b808516156200085157918102915b93841c939080029062000823565b509250929050565b600082620008785750600162000917565b81620008875750600062000917565b8160018114620008a05760028114620008ab57620008cb565b600191505062000917565b60ff841115620008bf57620008bf62000808565b50506001821b62000917565b5060208310610133831016604e8410600b8410161715620008f0575081810a62000917565b620008fc83836200081e565b806000190482111562000913576200091362000808565b0290505b92915050565b60006200063f60ff84168362000867565b808202811582820484141762000917576200091762000808565b634e487b7160e01b600052601260045260246000fd5b60008262000970576200097062000948565b500690565b8181038181111562000917576200091762000808565b6000602082840312156200099e57600080fd5b81516001600160a01b03811681146200063f57600080fd5b600082620009c857620009c862000948565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201620009f857620009f862000808565b5060010190565b6125a98062000a0f6000396000f3fe6080604052600436106102085760003560e01c806385141a7711610118578063aacebbe3116100a0578063e2f456051161006f578063e2f456051461068b578063ea2f0b37146106a1578063f25f136c146106c1578063f2fde38b146106d6578063f887ea40146106f657600080fd5b8063aacebbe3146105e5578063b70143c914610605578063d257b34f14610625578063dd62ed3e1461064557600080fd5b806395d89b41116100e757806395d89b41146105365780639ba5e4d51461056a578063a457c2d714610585578063a8aa1b31146105a5578063a9059cbb146105c557600080fd5b806385141a771461049f57806388f82020146104bf5780638da5cb5b146104f85780638e2839ff1461051657600080fd5b8063437823ec1161019b5780636dec1ed91161016a5780636dec1ed9146103e257806370a0823114610402578063715018a614610422578063728f8eea1461043757806375f0a8741461046757600080fd5b8063437823ec146103495780634549b0391461036957806352390c02146103895780635342acb4146103a957600080fd5b80632d838119116101d75780632d838119146102cb578063313ce567146102eb5780633685d41914610307578063395093511461032957600080fd5b806306fdde0314610214578063095ea7b31461025c57806318160ddd1461028c57806323b872dd146102ab57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600d81526c52656420466c6f6b692043454f60981b60208201525b60405161025391906120f9565b60405180910390f35b34801561026857600080fd5b5061027c61027736600461216c565b61071b565b6040519015158152602001610253565b34801561029857600080fd5b506009545b604051908152602001610253565b3480156102b757600080fd5b5061027c6102c6366004612198565b610732565b3480156102d757600080fd5b5061029d6102e63660046121d9565b6107e8565b3480156102f757600080fd5b5060405160098152602001610253565b34801561031357600080fd5b506103276103223660046121f2565b61086c565b005b34801561033557600080fd5b5061027c61034436600461216c565b610a22565b34801561035557600080fd5b506103276103643660046121f2565b610a59565b34801561037557600080fd5b5061029d610384366004612228565b610aa7565b34801561039557600080fd5b506103276103a43660046121f2565b610b31565b3480156103b557600080fd5b5061027c6103c43660046121f2565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156103ee57600080fd5b506103276103fd3660046121f2565b610c84565b34801561040e57600080fd5b5061029d61041d3660046121f2565b610e1e565b34801561042e57600080fd5b50610327610e7d565b34801561044357600080fd5b50600e54600f54610452919082565b60408051928352602083019190915201610253565b34801561047357600080fd5b50600d54610487906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b3480156104ab57600080fd5b50600c54610487906001600160a01b031681565b3480156104cb57600080fd5b5061027c6104da3660046121f2565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050457600080fd5b506000546001600160a01b0316610487565b34801561052257600080fd5b5061032761053136600461226e565b610eb3565b34801561054257600080fd5b5060408051808201909152600b81526a526564466c6f6b6943454f60a81b6020820152610246565b34801561057657600080fd5b50601054601154610452919082565b34801561059157600080fd5b5061027c6105a036600461216c565b610f44565b3480156105b157600080fd5b50600854610487906001600160a01b031681565b3480156105d157600080fd5b5061027c6105e036600461216c565b610fdf565b3480156105f157600080fd5b506103276106003660046121f2565b610fec565b34801561061157600080fd5b506103276106203660046121d9565b611099565b34801561063157600080fd5b506103276106403660046121d9565b6111a6565b34801561065157600080fd5b5061029d610660366004612345565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561069757600080fd5b5061029d600b5481565b3480156106ad57600080fd5b506103276106bc3660046121f2565b61126c565b3480156106cd57600080fd5b506103276112b7565b3480156106e257600080fd5b506103276106f13660046121f2565b611375565b34801561070257600080fd5b506007546104879061010090046001600160a01b031681565b600061072833848461140d565b5060015b92915050565b600061073f848484611531565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107c95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107dd85336107d88685612389565b61140d565b506001949350505050565b6000600a5482111561084f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107c0565b60006108596117e2565b9050610865818461239c565b9392505050565b6000546001600160a01b031633146108965760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03811660009081526005602052604090205460ff166108fe5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016107c0565b60005b600654811015610a1e57816001600160a01b031660068281548110610928576109286123f3565b6000918252602090912001546001600160a01b031603610a0c576006805461095290600190612389565b81548110610962576109626123f3565b600091825260209091200154600680546001600160a01b03909216918390811061098e5761098e6123f3565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff1916905560068054806109e6576109e6612409565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610a168161241f565b915050610901565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107289185906107d8908690612438565b6000546001600160a01b03163314610a835760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600954831115610afb5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107c0565b81610b17576000610b0d846001611805565b51915061072c9050565b6000610b24846001611805565b60200151915061072c9050565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03811660009081526005602052604090205460ff1615610bc45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107c0565b6001600160a01b03811660009081526001602052604090205415610c1e576001600160a01b038116600090815260016020526040902054610c04906107e8565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000546001600160a01b0316331480610ca75750600d546001600160a01b031633145b610cc35760405162461bcd60e51b81526004016107c09061244b565b306001600160a01b03821603610d3a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107c0565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da59190612498565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1991906124b1565b505050565b6001600160a01b03811660009081526005602052604081205460ff1615610e5b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461072c906107e8565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016107c0906123be565b610eb1600061187b565b565b6000546001600160a01b03163314610edd5760405162461bcd60e51b81526004016107c0906123be565b60005b8251811015610e19578160046000858481518110610f0057610f006123f3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f3c8161241f565b915050610ee0565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610fc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c0565b610fd533856107d88685612389565b5060019392505050565b6000610728338484611531565b6000546001600160a01b031633146110165760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b0381166110775760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016107c0565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806110bc5750600d546001600160a01b031633145b6110d85760405162461bcd60e51b81526004016107c09061244b565b60006110e330610e1e565b905060006110f583633b9aca006124ce565b9050633b9aca00821015801561110c575060018310155b6111935760405162461bcd60e51b815260206004820152604c60248201527f436f6e74726163742073686f756c642068617665206174206c6561737420312060448201527f746f6b656e20616e6420746f6b656e732073686f756c6420626520657175616c60648201526b1037b91030b137bb3290189760a11b608482015260a4016107c0565b61119c816118cb565b610e193347611a48565b6000546001600160a01b031633146111d05760405162461bcd60e51b81526004016107c0906123be565b620186a081101580156111e65750629896808111155b6112585760405162461bcd60e51b815260206004820152603960248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f20686967686572207468616e203125206f6620746f6b656e730000000000000060648201526084016107c0565b61126681633b9aca006124ce565b600b5550565b6000546001600160a01b031633146112965760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314806112da5750600d546001600160a01b031633145b6112f65760405162461bcd60e51b81526004016107c09061244b565b600047116113465760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016107c0565b60405133904780156108fc02916000818181858888f19350505050158015611372573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461139f5760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b0381166114045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c0565b6113728161187b565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c0565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115955760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c0565b6001600160a01b0382166115f75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c0565b600081116116595760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c0565b61166283610e1e565b8111156116cb5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107c0565b6000600b546116d930610e1e565b600754911115915060ff161580156116ee5750805b801561170857506008546001600160a01b03858116911614155b801561172d57506001600160a01b03841660009081526004602052604090205460ff16155b801561175257506001600160a01b03831660009081526004602052604090205460ff16155b1561175f5761175f611b61565b60075460019060ff168061178b57506001600160a01b03851660009081526004602052604090205460ff165b806117ae57506001600160a01b03841660009081526004602052604090205460ff165b806117c657506008546001600160a01b038681169116145b156117cf575060005b6117db85858584611baf565b5050505050565b60008060006117ef611dab565b90925090506117fe818361239c565b9250505090565b6118456040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61184f8383611f2e565b905061186481848461185f6117e2565b611fe3565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611900576119006123f3565b60200260200101906001600160a01b031690816001600160a01b031681525050600760019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199791906124e5565b816001815181106119aa576119aa6123f3565b6001600160a01b0392831660209182029290920101526007546119d59130916101009004168461140d565b60075460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611a12908590600090869030904290600401612502565b600060405180830381600087803b158015611a2c57600080fd5b505af1158015611a40573d6000803e3d6000fd5b505050505050565b80471015611a985760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107c0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ae5576040519150601f19603f3d011682016040523d82523d6000602084013e611aea565b606091505b5050905080610e195760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107c0565b6007805460ff191660011790556000611b7930610e1e565b9050611b84816118cb565b478015611ba157600d54611ba1906001600160a01b031682611a48565b50506007805460ff19169055565b6000611bbb8383611805565b6001600160a01b03861660009081526005602052604090205490915060ff1615611c1d576001600160a01b038516600090815260026020526040902054611c03908490612389565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611c805760808101516001600160a01b038516600090815260026020526040902054611c669190612438565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611ca59190612389565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611cdc9190612438565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611d0e575060008160a00151115b15611d2557611d2581604001518260a0015161204e565b600081606001511180611d3c575060008160c00151115b15611d5357611d5381606001518260c00151612083565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051611d9c91815260200190565b60405180910390a35050505050565b600a546009546000918291825b600654811015611efd57826001600060068481548110611dda57611dda6123f3565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611e455750816002600060068481548110611e1e57611e1e6123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611e5b57600a54600954945094505050509091565b6001600060068381548110611e7257611e726123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ea19084612389565b92506002600060068381548110611eba57611eba6123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ee99083612389565b915080611ef58161241f565b915050611db8565b50600954600a54611f0e919061239c565b821015611f2557600a546009549350935050509091565b90939092509050565b611f6e6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81611f7f576080810183905261072c565b600e54606490611f8f90856124ce565b611f99919061239c565b60a0820152600f54606490611fae90856124ce565b611fb8919061239c565b60c0820181905260a0820151611fce9085612389565b611fd89190612389565b608082015292915050565b6000808080611ff285886124ce565b93508561200757508291506000905080612043565b848860a0015161201791906124ce565b9150848860c0015161202991906124ce565b9050806120368386612389565b6120409190612389565b92505b945094509450949050565b81600a60008282546120609190612389565b90915550506010805482919060009061207a908490612438565b90915550505050565b80601060010160008282546120989190612438565b90915550503060009081526005602052604090205460ff16156120da5730600090815260026020526040812080548392906120d4908490612438565b90915550505b306000908152600160205260408120805484929061207a908490612438565b600060208083528351808285015260005b818110156121265785810183015185820160400152820161210a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461137257600080fd5b803561216781612147565b919050565b6000806040838503121561217f57600080fd5b823561218a81612147565b946020939093013593505050565b6000806000606084860312156121ad57600080fd5b83356121b881612147565b925060208401356121c881612147565b929592945050506040919091013590565b6000602082840312156121eb57600080fd5b5035919050565b60006020828403121561220457600080fd5b813561086581612147565b801515811461137257600080fd5b80356121678161220f565b6000806040838503121561223b57600080fd5b82359150602083013561224d8161220f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561228157600080fd5b823567ffffffffffffffff8082111561229957600080fd5b818501915085601f8301126122ad57600080fd5b81356020828211156122c1576122c1612258565b8160051b604051601f19603f830116810181811086821117156122e6576122e6612258565b60405292835281830193508481018201928984111561230457600080fd5b948201945b838610156123295761231a8661215c565b85529482019493820193612309565b9650612338905087820161221d565b9450505050509250929050565b6000806040838503121561235857600080fd5b823561236381612147565b9150602083013561224d81612147565b634e487b7160e01b600052601160045260246000fd5b8181038181111561072c5761072c612373565b6000826123b957634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006001820161243157612431612373565b5060010190565b8082018082111561072c5761072c612373565b6020808252602d908201527f4f6e6c79206f776e6572206f72206d61726b6574696e672077616c6c6574206360408201526c30b71031b0b636103a3434b99760991b606082015260800190565b6000602082840312156124aa57600080fd5b5051919050565b6000602082840312156124c357600080fd5b81516108658161220f565b808202811582820484141761072c5761072c612373565b6000602082840312156124f757600080fd5b815161086581612147565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125525784516001600160a01b03168352938301939183019160010161252d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220368a32391b985986ed792ed3a7f90a2b8f0be995550c8d9714f1c53031936e2464736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106102085760003560e01c806385141a7711610118578063aacebbe3116100a0578063e2f456051161006f578063e2f456051461068b578063ea2f0b37146106a1578063f25f136c146106c1578063f2fde38b146106d6578063f887ea40146106f657600080fd5b8063aacebbe3146105e5578063b70143c914610605578063d257b34f14610625578063dd62ed3e1461064557600080fd5b806395d89b41116100e757806395d89b41146105365780639ba5e4d51461056a578063a457c2d714610585578063a8aa1b31146105a5578063a9059cbb146105c557600080fd5b806385141a771461049f57806388f82020146104bf5780638da5cb5b146104f85780638e2839ff1461051657600080fd5b8063437823ec1161019b5780636dec1ed91161016a5780636dec1ed9146103e257806370a0823114610402578063715018a614610422578063728f8eea1461043757806375f0a8741461046757600080fd5b8063437823ec146103495780634549b0391461036957806352390c02146103895780635342acb4146103a957600080fd5b80632d838119116101d75780632d838119146102cb578063313ce567146102eb5780633685d41914610307578063395093511461032957600080fd5b806306fdde0314610214578063095ea7b31461025c57806318160ddd1461028c57806323b872dd146102ab57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600d81526c52656420466c6f6b692043454f60981b60208201525b60405161025391906120f9565b60405180910390f35b34801561026857600080fd5b5061027c61027736600461216c565b61071b565b6040519015158152602001610253565b34801561029857600080fd5b506009545b604051908152602001610253565b3480156102b757600080fd5b5061027c6102c6366004612198565b610732565b3480156102d757600080fd5b5061029d6102e63660046121d9565b6107e8565b3480156102f757600080fd5b5060405160098152602001610253565b34801561031357600080fd5b506103276103223660046121f2565b61086c565b005b34801561033557600080fd5b5061027c61034436600461216c565b610a22565b34801561035557600080fd5b506103276103643660046121f2565b610a59565b34801561037557600080fd5b5061029d610384366004612228565b610aa7565b34801561039557600080fd5b506103276103a43660046121f2565b610b31565b3480156103b557600080fd5b5061027c6103c43660046121f2565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156103ee57600080fd5b506103276103fd3660046121f2565b610c84565b34801561040e57600080fd5b5061029d61041d3660046121f2565b610e1e565b34801561042e57600080fd5b50610327610e7d565b34801561044357600080fd5b50600e54600f54610452919082565b60408051928352602083019190915201610253565b34801561047357600080fd5b50600d54610487906001600160a01b031681565b6040516001600160a01b039091168152602001610253565b3480156104ab57600080fd5b50600c54610487906001600160a01b031681565b3480156104cb57600080fd5b5061027c6104da3660046121f2565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561050457600080fd5b506000546001600160a01b0316610487565b34801561052257600080fd5b5061032761053136600461226e565b610eb3565b34801561054257600080fd5b5060408051808201909152600b81526a526564466c6f6b6943454f60a81b6020820152610246565b34801561057657600080fd5b50601054601154610452919082565b34801561059157600080fd5b5061027c6105a036600461216c565b610f44565b3480156105b157600080fd5b50600854610487906001600160a01b031681565b3480156105d157600080fd5b5061027c6105e036600461216c565b610fdf565b3480156105f157600080fd5b506103276106003660046121f2565b610fec565b34801561061157600080fd5b506103276106203660046121d9565b611099565b34801561063157600080fd5b506103276106403660046121d9565b6111a6565b34801561065157600080fd5b5061029d610660366004612345565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561069757600080fd5b5061029d600b5481565b3480156106ad57600080fd5b506103276106bc3660046121f2565b61126c565b3480156106cd57600080fd5b506103276112b7565b3480156106e257600080fd5b506103276106f13660046121f2565b611375565b34801561070257600080fd5b506007546104879061010090046001600160a01b031681565b600061072833848461140d565b5060015b92915050565b600061073f848484611531565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107c95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107dd85336107d88685612389565b61140d565b506001949350505050565b6000600a5482111561084f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107c0565b60006108596117e2565b9050610865818461239c565b9392505050565b6000546001600160a01b031633146108965760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03811660009081526005602052604090205460ff166108fe5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c7564656400000000000000000060448201526064016107c0565b60005b600654811015610a1e57816001600160a01b031660068281548110610928576109286123f3565b6000918252602090912001546001600160a01b031603610a0c576006805461095290600190612389565b81548110610962576109626123f3565b600091825260209091200154600680546001600160a01b03909216918390811061098e5761098e6123f3565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff1916905560068054806109e6576109e6612409565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610a168161241f565b915050610901565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107289185906107d8908690612438565b6000546001600160a01b03163314610a835760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600954831115610afb5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016107c0565b81610b17576000610b0d846001611805565b51915061072c9050565b6000610b24846001611805565b60200151915061072c9050565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03811660009081526005602052604090205460ff1615610bc45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016107c0565b6001600160a01b03811660009081526001602052604090205415610c1e576001600160a01b038116600090815260016020526040902054610c04906107e8565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000546001600160a01b0316331480610ca75750600d546001600160a01b031633145b610cc35760405162461bcd60e51b81526004016107c09061244b565b306001600160a01b03821603610d3a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016107c0565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da59190612498565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1991906124b1565b505050565b6001600160a01b03811660009081526005602052604081205460ff1615610e5b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461072c906107e8565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016107c0906123be565b610eb1600061187b565b565b6000546001600160a01b03163314610edd5760405162461bcd60e51b81526004016107c0906123be565b60005b8251811015610e19578160046000858481518110610f0057610f006123f3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f3c8161241f565b915050610ee0565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610fc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c0565b610fd533856107d88685612389565b5060019392505050565b6000610728338484611531565b6000546001600160a01b031633146110165760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b0381166110775760405162461bcd60e51b815260206004820152602260248201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604482015261737360f01b60648201526084016107c0565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806110bc5750600d546001600160a01b031633145b6110d85760405162461bcd60e51b81526004016107c09061244b565b60006110e330610e1e565b905060006110f583633b9aca006124ce565b9050633b9aca00821015801561110c575060018310155b6111935760405162461bcd60e51b815260206004820152604c60248201527f436f6e74726163742073686f756c642068617665206174206c6561737420312060448201527f746f6b656e20616e6420746f6b656e732073686f756c6420626520657175616c60648201526b1037b91030b137bb3290189760a11b608482015260a4016107c0565b61119c816118cb565b610e193347611a48565b6000546001600160a01b031633146111d05760405162461bcd60e51b81526004016107c0906123be565b620186a081101580156111e65750629896808111155b6112585760405162461bcd60e51b815260206004820152603960248201527f43616e6e6f74207365742073776170207468726573686f6c6420616d6f756e7460448201527f20686967686572207468616e203125206f6620746f6b656e730000000000000060648201526084016107c0565b61126681633b9aca006124ce565b600b5550565b6000546001600160a01b031633146112965760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314806112da5750600d546001600160a01b031633145b6112f65760405162461bcd60e51b81526004016107c09061244b565b600047116113465760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e6365000000000000000060448201526064016107c0565b60405133904780156108fc02916000818181858888f19350505050158015611372573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461139f5760405162461bcd60e51b81526004016107c0906123be565b6001600160a01b0381166114045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c0565b6113728161187b565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c0565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c0565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115955760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c0565b6001600160a01b0382166115f75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c0565b600081116116595760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107c0565b61166283610e1e565b8111156116cb5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107c0565b6000600b546116d930610e1e565b600754911115915060ff161580156116ee5750805b801561170857506008546001600160a01b03858116911614155b801561172d57506001600160a01b03841660009081526004602052604090205460ff16155b801561175257506001600160a01b03831660009081526004602052604090205460ff16155b1561175f5761175f611b61565b60075460019060ff168061178b57506001600160a01b03851660009081526004602052604090205460ff165b806117ae57506001600160a01b03841660009081526004602052604090205460ff165b806117c657506008546001600160a01b038681169116145b156117cf575060005b6117db85858584611baf565b5050505050565b60008060006117ef611dab565b90925090506117fe818361239c565b9250505090565b6118456040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61184f8383611f2e565b905061186481848461185f6117e2565b611fe3565b606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611900576119006123f3565b60200260200101906001600160a01b031690816001600160a01b031681525050600760019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199791906124e5565b816001815181106119aa576119aa6123f3565b6001600160a01b0392831660209182029290920101526007546119d59130916101009004168461140d565b60075460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611a12908590600090869030904290600401612502565b600060405180830381600087803b158015611a2c57600080fd5b505af1158015611a40573d6000803e3d6000fd5b505050505050565b80471015611a985760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107c0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ae5576040519150601f19603f3d011682016040523d82523d6000602084013e611aea565b606091505b5050905080610e195760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107c0565b6007805460ff191660011790556000611b7930610e1e565b9050611b84816118cb565b478015611ba157600d54611ba1906001600160a01b031682611a48565b50506007805460ff19169055565b6000611bbb8383611805565b6001600160a01b03861660009081526005602052604090205490915060ff1615611c1d576001600160a01b038516600090815260026020526040902054611c03908490612389565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff1615611c805760808101516001600160a01b038516600090815260026020526040902054611c669190612438565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b038616600090815260016020526040902054611ca59190612389565b6001600160a01b0380871660009081526001602090815260408083209490945584015191871681529190912054611cdc9190612438565b6001600160a01b0385166000908152600160205260409081902091909155810151151580611d0e575060008160a00151115b15611d2557611d2581604001518260a0015161204e565b600081606001511180611d3c575060008160c00151115b15611d5357611d5381606001518260c00151612083565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051611d9c91815260200190565b60405180910390a35050505050565b600a546009546000918291825b600654811015611efd57826001600060068481548110611dda57611dda6123f3565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611e455750816002600060068481548110611e1e57611e1e6123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611e5b57600a54600954945094505050509091565b6001600060068381548110611e7257611e726123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ea19084612389565b92506002600060068381548110611eba57611eba6123f3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611ee99083612389565b915080611ef58161241f565b915050611db8565b50600954600a54611f0e919061239c565b821015611f2557600a546009549350935050509091565b90939092509050565b611f6e6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81611f7f576080810183905261072c565b600e54606490611f8f90856124ce565b611f99919061239c565b60a0820152600f54606490611fae90856124ce565b611fb8919061239c565b60c0820181905260a0820151611fce9085612389565b611fd89190612389565b608082015292915050565b6000808080611ff285886124ce565b93508561200757508291506000905080612043565b848860a0015161201791906124ce565b9150848860c0015161202991906124ce565b9050806120368386612389565b6120409190612389565b92505b945094509450949050565b81600a60008282546120609190612389565b90915550506010805482919060009061207a908490612438565b90915550505050565b80601060010160008282546120989190612438565b90915550503060009081526005602052604090205460ff16156120da5730600090815260026020526040812080548392906120d4908490612438565b90915550505b306000908152600160205260408120805484929061207a908490612438565b600060208083528351808285015260005b818110156121265785810183015185820160400152820161210a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461137257600080fd5b803561216781612147565b919050565b6000806040838503121561217f57600080fd5b823561218a81612147565b946020939093013593505050565b6000806000606084860312156121ad57600080fd5b83356121b881612147565b925060208401356121c881612147565b929592945050506040919091013590565b6000602082840312156121eb57600080fd5b5035919050565b60006020828403121561220457600080fd5b813561086581612147565b801515811461137257600080fd5b80356121678161220f565b6000806040838503121561223b57600080fd5b82359150602083013561224d8161220f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561228157600080fd5b823567ffffffffffffffff8082111561229957600080fd5b818501915085601f8301126122ad57600080fd5b81356020828211156122c1576122c1612258565b8160051b604051601f19603f830116810181811086821117156122e6576122e6612258565b60405292835281830193508481018201928984111561230457600080fd5b948201945b838610156123295761231a8661215c565b85529482019493820193612309565b9650612338905087820161221d565b9450505050509250929050565b6000806040838503121561235857600080fd5b823561236381612147565b9150602083013561224d81612147565b634e487b7160e01b600052601160045260246000fd5b8181038181111561072c5761072c612373565b6000826123b957634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006001820161243157612431612373565b5060010190565b8082018082111561072c5761072c612373565b6020808252602d908201527f4f6e6c79206f776e6572206f72206d61726b6574696e672077616c6c6574206360408201526c30b71031b0b636103a3434b99760991b606082015260800190565b6000602082840312156124aa57600080fd5b5051919050565b6000602082840312156124c357600080fd5b81516108658161220f565b808202811582820484141761072c5761072c612373565b6000602082840312156124f757600080fd5b815161086581612147565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125525784516001600160a01b03168352938301939183019160010161252d565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220368a32391b985986ed792ed3a7f90a2b8f0be995550c8d9714f1c53031936e2464736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
3860:14771:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6182:83;;;;;;;;;;-1:-1:-1;6252:5:0;;;;;;;;;;;;-1:-1:-1;;;6252:5:0;;;;6182:83;;;;;;;:::i;:::-;;;;;;;;6942:161;;;;;;;;;;-1:-1:-1;6942:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6942:161:0;1162:187:1;6482:95:0;;;;;;;;;;-1:-1:-1;6562:7:0;;6482:95;;;1500:25:1;;;1488:2;1473:18;6482:95:0;1354:177:1;7111:448:0;;;;;;;;;;-1:-1:-1;7111:448:0;;;;;:::i;:::-;;:::i;8982:250::-;;;;;;;;;;-1:-1:-1;8982:250:0;;;;;:::i;:::-;;:::i;6368:83::-;;;;;;;;;;-1:-1:-1;6368:83:0;;4400:1;2324:36:1;;2312:2;2297:18;6368:83:0;2182:184:1;9646:473:0;;;;;;;;;;-1:-1:-1;9646:473:0;;;;;:::i;:::-;;:::i;:::-;;7567:207;;;;;;;;;;-1:-1:-1;7567:207:0;;;;;:::i;:::-;;:::i;10127:111::-;;;;;;;;;;-1:-1:-1;10127:111:0;;;;;:::i;:::-;;:::i;8485:489::-;;;;;;;;;;-1:-1:-1;8485:489:0;;;;;:::i;:::-;;:::i;9306:332::-;;;;;;;;;;-1:-1:-1;9306:332:0;;;;;:::i;:::-;;:::i;10364:124::-;;;;;;;;;;-1:-1:-1;10364:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;10453:27:0;10429:4;10453:27;;;:18;:27;;;;;;;;;10364:124;18163:428;;;;;;;;;;-1:-1:-1;18163:428:0;;;;;:::i;:::-;;:::i;6585:198::-;;;;;;;;;;-1:-1:-1;6585:198:0;;;;;:::i;:::-;;:::i;2174:94::-;;;;;;;;;;;;;:::i;5026:32::-;;;;;;;;;;-1:-1:-1;5026:32:0;;;;;;;;;;;;;3367:25:1;;;3423:2;3408:18;;3401:34;;;;3340:18;5026:32:0;3193:248:1;4721:75:0;;;;;;;;;;-1:-1:-1;4721:75:0;;;;-1:-1:-1;;;;;4721:75:0;;;;;;-1:-1:-1;;;;;3610:32:1;;;3592:51;;3580:2;3565:18;4721:75:0;3446:203:1;4644:70:0;;;;;;;;;;-1:-1:-1;4644:70:0;;;;-1:-1:-1;;;;;4644:70:0;;;8355:120;;;;;;;;;;-1:-1:-1;8355:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8447:20:0;8423:4;8447:20;;;:11;:20;;;;;;;;;8355:120;1951:87;;;;;;;;;;-1:-1:-1;1997:7:0;2024:6;-1:-1:-1;;;;;2024:6:0;1951:87;;16522:212;;;;;;;;;;-1:-1:-1;16522:212:0;;;;;:::i;:::-;;:::i;6273:87::-;;;;;;;;;;-1:-1:-1;6345:7:0;;;;;;;;;;;;-1:-1:-1;;;6345:7:0;;;;6273:87;;5158:36;;;;;;;;;;-1:-1:-1;5158:36:0;;;;;;;;;7782:392;;;;;;;;;;-1:-1:-1;7782:392:0;;;;;:::i;:::-;;:::i;4337:19::-;;;;;;;;;;-1:-1:-1;4337:19:0;;;;-1:-1:-1;;;;;4337:19:0;;;8182:165;;;;;;;;;;-1:-1:-1;8182:165:0;;;;;:::i;:::-;;:::i;16742:195::-;;;;;;;;;;-1:-1:-1;16742:195:0;;;;;:::i;:::-;;:::i;17196:518::-;;;;;;;;;;-1:-1:-1;17196:518:0;;;;;:::i;:::-;;:::i;16945:243::-;;;;;;;;;;-1:-1:-1;16945:243:0;;;;;:::i;:::-;;:::i;6791:143::-;;;;;;;;;;-1:-1:-1;6791:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6899:18:0;;;6872:7;6899:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6791:143;4578:57;;;;;;;;;;;;;;;;10246:110;;;;;;;;;;-1:-1:-1;10246:110:0;;;;;:::i;:::-;;:::i;17786:296::-;;;;;;;;;;;;;:::i;2276:192::-;;;;;;;;;;-1:-1:-1;2276:192:0;;;;;:::i;:::-;;:::i;4309:21::-;;;;;;;;;;-1:-1:-1;4309:21:0;;;;;;;-1:-1:-1;;;;;4309:21:0;;;6942:161;7017:4;7034:39;1452:10;7057:7;7066:6;7034:8;:39::i;:::-;-1:-1:-1;7091:4:0;6942:161;;;;;:::o;7111:448::-;7243:4;7260:36;7270:6;7278:9;7289:6;7260:9;:36::i;:::-;-1:-1:-1;;;;;7336:19:0;;7309:24;7336:19;;;:11;:19;;;;;;;;1452:10;7336:33;;;;;;;;7388:26;;;;7380:79;;;;-1:-1:-1;;;7380:79:0;;5800:2:1;7380:79:0;;;5782:21:1;5839:2;5819:18;;;5812:30;5878:34;5858:18;;;5851:62;-1:-1:-1;;;5929:18:1;;;5922:38;5977:19;;7380:79:0;;;;;;;;;7470:57;7479:6;1452:10;7501:25;7520:6;7501:16;:25;:::i;:::-;7470:8;:57::i;:::-;-1:-1:-1;7547:4:0;;7111:448;-1:-1:-1;;;;7111:448:0:o;8982:250::-;9049:7;9088;;9077;:18;;9069:73;;;;-1:-1:-1;;;9069:73:0;;6474:2:1;9069:73:0;;;6456:21:1;6513:2;6493:18;;;6486:30;6552:34;6532:18;;;6525:62;-1:-1:-1;;;6603:18:1;;;6596:40;6653:19;;9069:73:0;6272:406:1;9069:73:0;9153:19;9175:10;:8;:10::i;:::-;9153:32;-1:-1:-1;9203:21:0;9153:32;9203:7;:21;:::i;:::-;9196:28;8982:250;-1:-1:-1;;;8982:250:0:o;9646:473::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9726:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9718:56;;;::::0;-1:-1:-1;;;9718:56:0;;7468:2:1;9718:56:0::1;::::0;::::1;7450:21:1::0;7507:2;7487:18;;;7480:30;7546:25;7526:18;;;7519:53;7589:18;;9718:56:0::1;7266:347:1::0;9718:56:0::1;9790:9;9785:327;9809:9;:16:::0;9805:20;::::1;9785:327;;;9867:7;-1:-1:-1::0;;;;;9851:23:0::1;:9;9861:1;9851:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;9851:12:0::1;:23:::0;9847:254:::1;;9910:9;9920:16:::0;;:20:::1;::::0;9939:1:::1;::::0;9920:20:::1;:::i;:::-;9910:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;9895:9:::1;:12:::0;;-1:-1:-1;;;;;9910:31:0;;::::1;::::0;9905:1;;9895:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;9895:46:0::1;-1:-1:-1::0;;;;;9895:46:0;;::::1;;::::0;;9960:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;9999:11:::1;:20:::0;;;;:28;;-1:-1:-1;;9999:28:0::1;::::0;;10046:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10046:15:0;;;;;-1:-1:-1;;;;;;10046:15:0::1;::::0;;;;;9785:327:::1;9646:473:::0;:::o;9847:254::-:1;9827:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9785:327;;;;9646:473:::0;:::o;7567:207::-;1452:10;7647:4;7696:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7696:34:0;;;;;;;;;;7647:4;;7664:80;;7687:7;;7696:47;;7733:10;;7696:47;:::i;10127:111::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10196:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10196:34:0::1;10226:4;10196:34;::::0;;10127:111::o;8485:489::-;8603:7;8647;;8636;:18;;8628:62;;;;-1:-1:-1;;;8628:62:0;;8354:2:1;8628:62:0;;;8336:21:1;8393:2;8373:18;;;8366:30;8432:33;8412:18;;;8405:61;8483:18;;8628:62:0;8152:355:1;8628:62:0;8706:17;8701:266;;8740:28;8771:25;8782:7;8791:4;8771:10;:25::i;:::-;8818:9;;-1:-1:-1;8811:16:0;;-1:-1:-1;8811:16:0;8701:266;8860:28;8891:25;8902:7;8911:4;8891:10;:25::i;:::-;8938:17;;;;-1:-1:-1;8931:24:0;;-1:-1:-1;8931:24:0;9306:332;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9387:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9386:21;9378:61;;;::::0;-1:-1:-1;;;9378:61:0;;8714:2:1;9378:61:0::1;::::0;::::1;8696:21:1::0;8753:2;8733:18;;;8726:30;8792:29;8772:18;;;8765:57;8839:18;;9378:61:0::1;8512:351:1::0;9378:61:0::1;-1:-1:-1::0;;;;;9454:16:0;::::1;9473:1;9454:16:::0;;;:7:::1;:16;::::0;;;;;:20;9450:109:::1;;-1:-1:-1::0;;;;;9530:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9510:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9491:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9450:109:::1;-1:-1:-1::0;;;;;9569:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9569:27:0::1;9592:4;9569:27:::0;;::::1;::::0;;;9607:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9607:23:0::1;::::0;;::::1;::::0;;9306:332::o;18163:428::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;18239:10;:21;;:54;;-1:-1:-1;18278:15:0;;-1:-1:-1;;;;;18278:15:0;18264:10;:29;18239:54;18231:112;;;;-1:-1:-1;;;18231:112:0;;;;;;;:::i;:::-;18384:4;-1:-1:-1;;;;;18362:27:0;;;18354:94;;;;-1:-1:-1;;;18354:94:0;;9484:2:1;18354:94:0;;;9466:21:1;9523:2;9503:18;;;9496:30;9562:34;9542:18;;;9535:62;-1:-1:-1;;;9613:18:1;;;9606:52;9675:19;;18354:94:0;9282:418:1;18354:94:0;18479:43;;-1:-1:-1;;;18479:43:0;;18516:4;18479:43;;;3592:51:1;18459:17:0;;-1:-1:-1;;;;;18479:28:0;;;;;3565:18:1;;18479:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18533:50;;-1:-1:-1;;;18533:50:0;;18561:10;18533:50;;;10068:51:1;10135:18;;;10128:34;;;18459:63:0;;-1:-1:-1;;;;;;18533:27:0;;;;;10041:18:1;;18533:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18220:371;18163:428;:::o;6585:198::-;-1:-1:-1;;;;;6675:20:0;;6651:7;6675:20;;;:11;:20;;;;;;;;6671:49;;;-1:-1:-1;;;;;;6704:16:0;;;;;:7;:16;;;;;;;6585:198::o;6671:49::-;-1:-1:-1;;;;;6758:16:0;;;;;;:7;:16;;;;;;6738:37;;:19;:37::i;2174:94::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;2239:21:::1;2257:1;2239:9;:21::i;:::-;2174:94::o:0;16522:212::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;16620:9:::1;16615:112;16639:8;:15;16635:1;:19;16615:112;;;16710:5;16676:18;:31;16695:8;16704:1;16695:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16676:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16676:31:0;:39;;-1:-1:-1;;16676:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16656:3;::::1;::::0;::::1;:::i;:::-;;;;16615:112;;7782:392:::0;1452:10;7885:4;7934:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7934:34:0;;;;;;;;;;7987:35;;;;7979:85;;;;-1:-1:-1;;;7979:85:0;;10625:2:1;7979:85:0;;;10607:21:1;10664:2;10644:18;;;10637:30;10703:34;10683:18;;;10676:62;-1:-1:-1;;;10754:18:1;;;10747:35;10799:19;;7979:85:0;10423:401:1;7979:85:0;8075:67;1452:10;8098:7;8107:34;8126:15;8107:16;:34;:::i;8075:67::-;-1:-1:-1;8162:4:0;;7782:392;-1:-1:-1;;;7782:392:0:o;8182:165::-;8260:4;8277:40;8287:10;8299:9;8310:6;8277:9;:40::i;16742:195::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16830:23:0;::::1;16822:69;;;::::0;-1:-1:-1;;;16822:69:0;;11031:2:1;16822:69:0::1;::::0;::::1;11013:21:1::0;11070:2;11050:18;;;11043:30;11109:34;11089:18;;;11082:62;-1:-1:-1;;;11160:18:1;;;11153:32;11202:19;;16822:69:0::1;10829:398:1::0;16822:69:0::1;16902:15;:27:::0;;-1:-1:-1;;;;;;16902:27:0::1;-1:-1:-1::0;;;;;16902:27:0;;;::::1;::::0;;;::::1;::::0;;16742:195::o;17196:518::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;17258:10;:21;;:54;;-1:-1:-1;17297:15:0;;-1:-1:-1;;;;;17297:15:0;17283:10;:29;17258:54;17250:112;;;;-1:-1:-1;;;17250:112:0;;;;;;;:::i;:::-;17373:17;17393:24;17411:4;17393:9;:24::i;:::-;17373:44;-1:-1:-1;17428:23:0;17454:12;:6;17463:3;17454:12;:::i;:::-;17428:38;;17498:5;17485:9;:18;;:33;;;;;17517:1;17507:6;:11;;17485:33;17477:122;;;;-1:-1:-1;;;17477:122:0;;11607:2:1;17477:122:0;;;11589:21:1;11646:2;11626:18;;;11619:30;11685:34;11665:18;;;11658:62;11756:34;11736:18;;;11729:62;-1:-1:-1;;;11807:19:1;;;11800:43;11860:19;;17477:122:0;11405:480:1;17477:122:0;17610:33;17627:15;17610:16;:33::i;:::-;17654:52;17662:10;17684:21;17654:29;:52::i;16945:243::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;17043:7:::1;17033:6;:17;;:41;;;;;17064:10;17054:6;:20;;17033:41;17025:111;;;::::0;-1:-1:-1;;;17025:111:0;;12092:2:1;17025:111:0::1;::::0;::::1;12074:21:1::0;12131:2;12111:18;;;12104:30;12170:34;12150:18;;;12143:62;12241:27;12221:18;;;12214:55;12286:19;;17025:111:0::1;11890:421:1::0;17025:111:0::1;17168:12;:6:::0;17177:3:::1;17168:12;:::i;:::-;17147:18;:33:::0;-1:-1:-1;16945:243:0:o;10246:110::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10313:27:0::1;10343:5;10313:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;10313:35:0::1;::::0;;10246:110::o;17786:296::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;17835:10;:21;;:54;;-1:-1:-1;17874:15:0;;-1:-1:-1;;;;;17874:15:0;17860:10;:29;17835:54;17827:112;;;;-1:-1:-1;;;17827:112:0;;;;;;;:::i;:::-;17982:1;17958:21;:25;17950:62;;;;-1:-1:-1;;;17950:62:0;;12518:2:1;17950:62:0;;;12500:21:1;12557:2;12537:18;;;12530:30;12596:26;12576:18;;;12569:54;12640:18;;17950:62:0;12316:348:1;17950:62:0;18023:51;;18031:10;;18052:21;18023:51;;;;;;;;;18052:21;18031:10;18023:51;;;;;;;;;;;;;;;;;;;;;17786:296::o;2276:192::-;1997:7;2024:6;-1:-1:-1;;;;;2024:6:0;1452:10;2086:23;2078:68;;;;-1:-1:-1;;;2078:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2365:22:0;::::1;2357:73;;;::::0;-1:-1:-1;;;2357:73:0;;12871:2:1;2357:73:0::1;::::0;::::1;12853:21:1::0;12910:2;12890:18;;;12883:30;12949:34;12929:18;;;12922:62;-1:-1:-1;;;13000:18:1;;;12993:36;13046:19;;2357:73:0::1;12669:402:1::0;2357:73:0::1;2441:19;2451:8;2441:9;:19::i;13310:369::-:0;-1:-1:-1;;;;;13437:19:0;;13429:68;;;;-1:-1:-1;;;13429:68:0;;13278:2:1;13429:68:0;;;13260:21:1;13317:2;13297:18;;;13290:30;13356:34;13336:18;;;13329:62;-1:-1:-1;;;13407:18:1;;;13400:34;13451:19;;13429:68:0;13076:400:1;13429:68:0;-1:-1:-1;;;;;13516:21:0;;13508:68;;;;-1:-1:-1;;;13508:68:0;;13683:2:1;13508:68:0;;;13665:21:1;13722:2;13702:18;;;13695:30;13761:34;13741:18;;;13734:62;-1:-1:-1;;;13812:18:1;;;13805:32;13854:19;;13508:68:0;13481:398:1;13508:68:0;-1:-1:-1;;;;;13587:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13639:32;;1500:25:1;;;13639:32:0;;1473:18:1;13639:32:0;;;;;;;13310:369;;;:::o;13687:972::-;-1:-1:-1;;;;;13809:18:0;;13801:68;;;;-1:-1:-1;;;13801:68:0;;14086:2:1;13801:68:0;;;14068:21:1;14125:2;14105:18;;;14098:30;14164:34;14144:18;;;14137:62;-1:-1:-1;;;14215:18:1;;;14208:35;14260:19;;13801:68:0;13884:401:1;13801:68:0;-1:-1:-1;;;;;13888:16:0;;13880:64;;;;-1:-1:-1;;;13880:64:0;;14492:2:1;13880:64:0;;;14474:21:1;14531:2;14511:18;;;14504:30;14570:34;14550:18;;;14543:62;-1:-1:-1;;;14621:18:1;;;14614:33;14664:19;;13880:64:0;14290:399:1;13880:64:0;13972:1;13963:6;:10;13955:64;;;;-1:-1:-1;;;13955:64:0;;14896:2:1;13955:64:0;;;14878:21:1;14935:2;14915:18;;;14908:30;14974:34;14954:18;;;14947:62;-1:-1:-1;;;15025:18:1;;;15018:39;15074:19;;13955:64:0;14694:405:1;13955:64:0;14062:15;14072:4;14062:9;:15::i;:::-;14052:6;:25;;14030:124;;;;-1:-1:-1;;;14030:124:0;;15306:2:1;14030:124:0;;;15288:21:1;15345:2;15325:18;;;15318:30;15384:34;15364:18;;;15357:62;-1:-1:-1;;;15435:18:1;;;15428:47;15492:19;;14030:124:0;15104:413:1;14030:124:0;14167:12;14210:18;;14182:24;14200:4;14182:9;:24::i;:::-;14258:8;;14182:46;-1:-1:-1;14182:46:0;;-1:-1:-1;14258:8:0;;14257:9;:33;;;;;14283:7;14257:33;:62;;;;-1:-1:-1;14315:4:0;;-1:-1:-1;;;;;14307:12:0;;;14315:4;;14307:12;;14257:62;:104;;;;-1:-1:-1;;;;;;14337:24:0;;;;;;:18;:24;;;;;;;;14336:25;14257:104;:144;;;;-1:-1:-1;;;;;;14379:22:0;;;;;;:18;:22;;;;;;;;14378:23;14257:144;14239:217;;;14428:16;:14;:16::i;:::-;14500:8;;14481:4;;14500:8;;;:36;;-1:-1:-1;;;;;;14512:24:0;;;;;;:18;:24;;;;;;;;14500:36;:62;;;-1:-1:-1;;;;;;14540:22:0;;;;;;:18;:22;;;;;;;;14500:62;:78;;;-1:-1:-1;14574:4:0;;-1:-1:-1;;;;;14566:12:0;;;14574:4;;14566:12;14500:78;14496:99;;;-1:-1:-1;14590:5:0;14496:99;14610:41;14625:4;14631:2;14635:6;14643:7;14610:14;:41::i;:::-;13790:869;;13687:972;;;:::o;12569:161::-;12611:7;12632:15;12649;12668:19;:17;:19::i;:::-;12631:56;;-1:-1:-1;12631:56:0;-1:-1:-1;12705:17:0;12631:56;;12705:17;:::i;:::-;12698:24;;;;12569:161;:::o;10921:438::-;11019:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11019:36:0;11080:29;11092:7;11101;11080:11;:29::i;:::-;11068:41;;11270:52;11282:9;11293:7;11302;11311:10;:8;:10::i;:::-;11270:11;:52::i;:::-;11236:20;;;11120:202;11207:14;;;11120:202;11167:25;;;11120:202;;;10921:438;;;;:::o;2476:173::-;2532:16;2551:6;;-1:-1:-1;;;;;2568:17:0;;;-1:-1:-1;;;;;;2568:17:0;;;;;;2601:40;;2551:6;;;;;;;2601:40;;2532:16;2601:40;2521:128;2476:173;:::o;15960:554::-;16102:16;;;16116:1;16102:16;;;;;;;;16078:21;;16102:16;;;;;;;;;;-1:-1:-1;16102:16:0;16078:40;;16147:4;16129;16134:1;16129:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16129:23:0;;;-1:-1:-1;;;;;16129:23:0;;;;;16173:6;;;;;;;;;-1:-1:-1;;;;;16173:6:0;-1:-1:-1;;;;;16173:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16163:4;16168:1;16163:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16163:23:0;;;:7;;;;;;;;;:23;16231:6;;16199:53;;16216:4;;16231:6;;;;16240:11;16199:8;:53::i;:::-;16291:6;;:215;;-1:-1:-1;;;16291:215:0;;:6;;;;-1:-1:-1;;;;;16291:6:0;;:57;;:215;;16363:11;;16389:1;;16433:4;;16460;;16480:15;;16291:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16015:499;15960:554;:::o;3534:319::-;3649:6;3624:21;:31;;3616:73;;;;-1:-1:-1;;;3616:73:0;;16965:2:1;3616:73:0;;;16947:21:1;17004:2;16984:18;;;16977:30;17043:31;17023:18;;;17016:59;17092:18;;3616:73:0;16763:353:1;3616:73:0;3703:12;3721:9;-1:-1:-1;;;;;3721:14:0;3744:6;3721:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3702:54;;;3775:7;3767:78;;;;-1:-1:-1;;;3767:78:0;;17533:2:1;3767:78:0;;;17515:21:1;17572:2;17552:18;;;17545:30;17611:34;17591:18;;;17584:62;17682:28;17662:18;;;17655:56;17728:19;;3767:78:0;17331:422:1;15611:341:0;5478:8;:15;;-1:-1:-1;;5478:15:0;5489:4;5478:15;;;:8;15703:24:::1;15721:4;15703:9;:24::i;:::-;15677:50;;15738:33;15755:15;15738:16;:33::i;:::-;15805:21;15850:16:::0;;15846:97:::1;;15891:15;::::0;15883:48:::1;::::0;-1:-1:-1;;;;;15891:15:0::1;15918:12:::0;15883:34:::1;:48::i;:::-;-1:-1:-1::0;;5516:8:0;:16;;-1:-1:-1;;5516:16:0;;;15611:341::o;14740:863::-;14894:28;14925;14936:7;14945;14925:10;:28::i;:::-;-1:-1:-1;;;;;14970:19:0;;;;;;:11;:19;;;;;;14894:59;;-1:-1:-1;14970:19:0;;14966:124;;;-1:-1:-1;;;;;15053:15:0;;;;;;:7;:15;;;;;;:25;;15071:7;;15053:25;:::i;:::-;-1:-1:-1;;;;;15035:15:0;;;;;;:7;:15;;;;;:43;14966:124;-1:-1:-1;;;;;15104:22:0;;;;;;:11;:22;;;;;;;;15100:141;;;15212:17;;;;-1:-1:-1;;;;;15191:18:0;;;;;;:7;:18;;;;;;:38;;15212:17;15191:38;:::i;:::-;-1:-1:-1;;;;;15170:18:0;;;;;;:7;:18;;;;;:59;15100:141;15289:9;;-1:-1:-1;;;;;15271:15:0;;15289:9;15271:15;;;:7;:15;;;;;;:27;;15289:9;15271:27;:::i;:::-;-1:-1:-1;;;;;15253:15:0;;;;;;;:7;:15;;;;;;;;:45;;;;15351:17;;;15330:18;;;;;;;;;;:38;;15351:17;15330:38;:::i;:::-;-1:-1:-1;;;;;15309:18:0;;;;;;:7;:18;;;;;;;:59;;;;15385:6;;;:10;;;:24;;;15408:1;15399;:6;;;:10;15385:24;15381:57;;;15411:27;15423:1;:6;;;15431:1;:6;;;15411:11;:27::i;:::-;15468:1;15453;:12;;;:16;:36;;;;15488:1;15473;:12;;;:16;15453:36;15449:84;;;15491:42;15506:1;:12;;;15520:1;:12;;;15491:14;:42::i;:::-;15566:9;-1:-1:-1;;;;;15549:46:0;15558:6;-1:-1:-1;;;;;15549:46:0;;15577:1;:17;;;15549:46;;;;1500:25:1;;1488:2;1473:18;;1354:177;15549:46:0;;;;;;;;14881:722;14740:863;;;;:::o;12738:564::-;12836:7;;12872;;12789;;;;;12890:300;12914:9;:16;12910:20;;12890:300;;;12980:7;12956;:21;12964:9;12974:1;12964:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12964:12:0;12956:21;;;;;;;;;;;;;:31;;:66;;;13015:7;12991;:21;12999:9;13009:1;12999:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12999:12:0;12991:21;;;;;;;;;;;;;:31;12956:66;12952:114;;;13049:7;;13058;;13041:25;;;;;;;12738:564;;:::o;12952:114::-;13101:7;:21;13109:9;13119:1;13109:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13109:12:0;13101:21;;;;;;;;;;;;;13091:31;;:7;:31;:::i;:::-;13081:41;;13157:7;:21;13165:9;13175:1;13165:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13165:12:0;13157:21;;;;;;;;;;;;;13147:31;;:7;:31;:::i;:::-;13137:41;-1:-1:-1;12932:3:0;;;;:::i;:::-;;;;12890:300;;;;13224:7;;13214;;:17;;;;:::i;:::-;13204:7;:27;13200:58;;;13241:7;;13250;;13233:25;;;;;;12738:564;;:::o;13200:58::-;13277:7;;13286;;-1:-1:-1;12738:564:0;-1:-1:-1;12738:564:0:o;11367:466::-;11466:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11466:28:0;11512:7;11507:91;;11536:17;;;:27;;;11578:8;;11507:91;11630:5;:9;11643:3;;11620:19;;:7;:19;:::i;:::-;11619:27;;;;:::i;:::-;11610:6;;;:36;11683:15;;11702:3;;11673:25;;:7;:25;:::i;:::-;11672:33;;;;:::i;:::-;11657:12;;;:48;;;11772:6;;;;11749:29;;:7;:29;:::i;:::-;:57;;;;:::i;:::-;11716:17;;;:90;11367:466;;;;:::o;11841:720::-;12050:15;;;;12201:21;12211:11;12201:7;:21;:::i;:::-;12191:31;;12240:7;12235:72;;-1:-1:-1;12272:7:0;;-1:-1:-1;12290:1:0;;-1:-1:-1;12290:1:0;12264:31;;12235:72;12335:11;12326:1;:6;;;:20;;;;:::i;:::-;12319:27;;12385:11;12370:1;:12;;;:26;;;;:::i;:::-;12357:39;-1:-1:-1;12357:39:0;12438:27;12461:4;12438:7;:27;:::i;:::-;:53;;;;:::i;:::-;12407:84;;11841:720;;;;;;;;;;:::o;10496:125::-;10575:4;10564:7;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;10590:11:0;:23;;10609:4;;10590:11;:15;;:23;;10609:4;;10590:23;:::i;:::-;;;;-1:-1:-1;;;;10496:125:0:o;10631:280::-;10739:10;10714:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;10786:4:0;10766:26;;;;:11;:26;;;;;;;;10762:95;;;10825:4;10809:22;;;;:7;:22;;;;;:36;;10835:10;;10809:22;:36;;10835:10;;10809:36;:::i;:::-;;;;-1:-1:-1;;10762:95:0;10883:4;10867:22;;;;:7;:22;;;;;:36;;10893:10;;10867:22;:36;;10893:10;;10867:36;:::i;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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;1997:180::-;2056:6;2109:2;2097:9;2088:7;2084:23;2080:32;2077:52;;;2125:1;2122;2115:12;2077:52;-1:-1:-1;2148:23:1;;1997:180;-1:-1:-1;1997:180:1:o;2371:247::-;2430:6;2483:2;2471:9;2462:7;2458:23;2454:32;2451:52;;;2499:1;2496;2489:12;2451:52;2538:9;2525:23;2557:31;2582:5;2557:31;:::i;2623:118::-;2709:5;2702:13;2695:21;2688:5;2685:32;2675:60;;2731:1;2728;2721:12;2746:128;2811:20;;2840:28;2811:20;2840:28;:::i;2879:309::-;2944:6;2952;3005:2;2993:9;2984:7;2980:23;2976:32;2973:52;;;3021:1;3018;3011:12;2973:52;3057:9;3044:23;3034:33;;3117:2;3106:9;3102:18;3089:32;3130:28;3152:5;3130:28;:::i;:::-;3177:5;3167:15;;;2879:309;;;;;:::o;3654:127::-;3715:10;3710:3;3706:20;3703:1;3696:31;3746:4;3743:1;3736:15;3770:4;3767:1;3760:15;3786:1191;3876:6;3884;3937:2;3925:9;3916:7;3912:23;3908:32;3905:52;;;3953:1;3950;3943:12;3905:52;3993:9;3980:23;4022:18;4063:2;4055:6;4052:14;4049:34;;;4079:1;4076;4069:12;4049:34;4117:6;4106:9;4102:22;4092:32;;4162:7;4155:4;4151:2;4147:13;4143:27;4133:55;;4184:1;4181;4174:12;4133:55;4220:2;4207:16;4242:4;4265:2;4261;4258:10;4255:36;;;4271:18;;:::i;:::-;4317:2;4314:1;4310:10;4349:2;4343:9;4412:2;4408:7;4403:2;4399;4395:11;4391:25;4383:6;4379:38;4467:6;4455:10;4452:22;4447:2;4435:10;4432:18;4429:46;4426:72;;;4478:18;;:::i;:::-;4514:2;4507:22;4564:18;;;4598:15;;;;-1:-1:-1;4640:11:1;;;4636:20;;;4668:19;;;4665:39;;;4700:1;4697;4690:12;4665:39;4724:11;;;;4744:148;4760:6;4755:3;4752:15;4744:148;;;4826:23;4845:3;4826:23;:::i;:::-;4814:36;;4777:12;;;;4870;;;;4744:148;;;4911:6;-1:-1:-1;4936:35:1;;-1:-1:-1;4952:18:1;;;4936:35;:::i;:::-;4926:45;;;;;;3786:1191;;;;;:::o;4982:388::-;5050:6;5058;5111:2;5099:9;5090:7;5086:23;5082:32;5079:52;;;5127:1;5124;5117:12;5079:52;5166:9;5153:23;5185:31;5210:5;5185:31;:::i;:::-;5235:5;-1:-1:-1;5292:2:1;5277:18;;5264:32;5305:33;5264:32;5305:33;:::i;6007:127::-;6068:10;6063:3;6059:20;6056:1;6049:31;6099:4;6096:1;6089:15;6123:4;6120:1;6113:15;6139:128;6206:9;;;6227:11;;;6224:37;;;6241:18;;:::i;6683:217::-;6723:1;6749;6739:132;;6793:10;6788:3;6784:20;6781:1;6774:31;6828:4;6825:1;6818:15;6856:4;6853:1;6846:15;6739:132;-1:-1:-1;6885:9:1;;6683:217::o;6905:356::-;7107:2;7089:21;;;7126:18;;;7119:30;7185:34;7180:2;7165:18;;7158:62;7252:2;7237:18;;6905:356::o;7618:127::-;7679:10;7674:3;7670:20;7667:1;7660:31;7710:4;7707:1;7700:15;7734:4;7731:1;7724:15;7750:127;7811:10;7806:3;7802:20;7799:1;7792:31;7842:4;7839:1;7832:15;7866:4;7863:1;7856:15;7882:135;7921:3;7942:17;;;7939:43;;7962:18;;:::i;:::-;-1:-1:-1;8009:1:1;7998:13;;7882:135::o;8022:125::-;8087:9;;;8108:10;;;8105:36;;;8121:18;;:::i;8868:409::-;9070:2;9052:21;;;9109:2;9089:18;;;9082:30;9148:34;9143:2;9128:18;;9121:62;-1:-1:-1;;;9214:2:1;9199:18;;9192:43;9267:3;9252:19;;8868:409::o;9705:184::-;9775:6;9828:2;9816:9;9807:7;9803:23;9799:32;9796:52;;;9844:1;9841;9834:12;9796:52;-1:-1:-1;9867:16:1;;9705:184;-1:-1:-1;9705:184:1:o;10173:245::-;10240:6;10293:2;10281:9;10272:7;10268:23;10264:32;10261:52;;;10309:1;10306;10299:12;10261:52;10341:9;10335:16;10360:28;10382:5;10360:28;:::i;11232:168::-;11305:9;;;11336;;11353:15;;;11347:22;;11333:37;11323:71;;11374:18;;:::i;15522:251::-;15592:6;15645:2;15633:9;15624:7;15620:23;15616:32;15613:52;;;15661:1;15658;15651:12;15613:52;15693:9;15687:16;15712:31;15737:5;15712:31;:::i;15778:980::-;16040:4;16088:3;16077:9;16073:19;16119:6;16108:9;16101:25;16145:2;16183:6;16178:2;16167:9;16163:18;16156:34;16226:3;16221:2;16210:9;16206:18;16199:31;16250:6;16285;16279:13;16316:6;16308;16301:22;16354:3;16343:9;16339:19;16332:26;;16393:2;16385:6;16381:15;16367:29;;16414:1;16424:195;16438:6;16435:1;16432:13;16424:195;;;16503:13;;-1:-1:-1;;;;;16499:39:1;16487:52;;16594:15;;;;16559:12;;;;16535:1;16453:9;16424:195;;;-1:-1:-1;;;;;;;16675:32:1;;;;16670:2;16655:18;;16648:60;-1:-1:-1;;;16739:3:1;16724:19;16717:35;16636:3;15778:980;-1:-1:-1;;;15778:980:1:o
Swarm Source
ipfs://368a32391b985986ed792ed3a7f90a2b8f0be995550c8d9714f1c53031936e24
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.