ETH Price: $3,098.14 (+1.43%)
 

Overview

Max Total Supply

10,000,000 OX

Holders

2

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Oriox

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2024-09-02
*/

/*────────────────────────────┐
Name: Oriox 
Symbol: OX
Decimals: 18
Total supply: 10M
Network: Base

Developed by Coinsult                       
 _____     _             _ _   
|     |___|_|___ ___ _ _| | |_ 
|   --| . | |   |_ -| | | |  _|
|_____|___|_|_|_|___|___|_|_|  
                               
tg: @coinsult_tg
──────────────────────────────┘

 SPDX-License-Identifier: MIT */

 pragma solidity 0.8.19;

 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 Oriox is ERC20, Ownable {
     using Address for address payable;
 
     IUniswapV2Router02 public uniswapV2Router;
     address public  uniswapV2Pair;
 
     mapping (address => bool) private _isExcludedFromFees;
 
     uint256 public  feeOnBuy;
     uint256 public  feeOnSell;
  
     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("Oriox", "OX") 
     {   
         address router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;
         address pinkLock = 0xdD6E31A046b828CbBAfb939C2a394629aff8BBdC;
 
         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);
 
         feeOnBuy  = 0;
         feeOnSell = 0;
  
         feeReceiver = 0x949Ffb08FfdD354deb80F1e0586C8d6aBF142385;
 
         _isExcludedFromFees[owner()] = true;
         _isExcludedFromFees[address(0xdead)] = true;
         _isExcludedFromFees[address(this)] = true;
         _isExcludedFromFees[pinkLock] = true;
 
         _mintOnce(owner(), 10e6 * (10 ** decimals()));
         swapTokensAtAmount = totalSupply() / 5_000;
 
         swapEnabled = false;
     }
 
     receive() external payable {}
 
     function creator() public pure returns (string memory) {
         return "t.me/coinsult_tg";
     }
 
     function claimStuckTokens(address token) external onlyOwner {
         require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
         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 UpdateFees(uint256 feeOnBuy, uint256 feeOnSell);
 
     function updateFees(uint256 _feeOnSell, uint256 _feeOnBuy) external onlyOwner {
         feeOnBuy = _feeOnBuy;
         feeOnSell = _feeOnSell;

         require(feeOnBuy <= 5, "CSLT: Total Fees cannot exceed the maximum");
         require(feeOnSell <= 5, "CSLT: Total Fees cannot exceed the maximum");
 
         emit UpdateFees(feeOnSell, feeOnBuy);
     }
 
     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;
 
     function enableTrading() external onlyOwner{
         require(!tradingEnabled, "CSLT: Trading already enabled.");
         tradingEnabled = true;
         swapEnabled = true;
 
         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 &&
             feeOnBuy + feeOnSell > 0 &&
             !_isExcludedFromFees[from] &&
             swapEnabled
         ) {
             swapping = true;
 
             swapAndSendFee(contractTokenBalance);     
 
             swapping = false;
         }
 
         uint256 _totalFees;
         if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
             _totalFees = 0;
         } else if (from == uniswapV2Pair) {
             _totalFees = feeOnBuy;
         } else if (to == uniswapV2Pair) {
             _totalFees =  feeOnSell;
         } else {
             _totalFees = 0;
         }
 
         if (_totalFees > 0) {
             uint256 fees = (amount * _totalFees) / 100;
             amount = amount - fees;
             super._transfer(from, address(this), fees);
         }
 
         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");
         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);
     }
 }

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"feeOnBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeOnSell","type":"uint256"}],"name":"UpdateFees","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":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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":"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":"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"},{"inputs":[{"internalType":"uint256","name":"_feeOnSell","type":"uint256"},{"internalType":"uint256","name":"_feeOnBuy","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600581526020016409ee4d2def60db1b8152506040518060400160405280600281526020016109eb60f31b81525081600390816200005c919062000679565b5060046200006b828262000679565b505050600062000080620003bf60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805163c45a015560e01b81529051734752ba5dbc23f44d87826276bf6fd6b1c372ad249173dd6e31a046b828cbbafb939c2a394629aff8bbdc918391600091839163c45a01559160048083019260209291908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000745565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d6919062000745565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a919062000745565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200028b903090600019620003c3565b60006009819055600a819055600b80546001600160a01b03191673949ffb08ffdd354deb80f1e0586c8d6abf142385179055600190600890620002d66005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548516600190811790915530845282842080548616821790559087168352912080549092161790556200038d6200036a6005546001600160a01b031690565b620003786012600a6200088c565b6200038790629896806200089d565b620004ef565b6113886200039a60025490565b620003a69190620008b7565b600c555050600d805461ff001916905550620008f09050565b3390565b6001600160a01b0383166200042b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200048e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000422565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620005475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000422565b80600260008282546200055b9190620008da565b90915550506001600160a01b038216600090815260208190526040812080548392906200058a908490620008da565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005ff57607f821691505b6020821081036200062057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200067457600081815260208120601f850160051c810160208610156200064f5750805b601f850160051c820191505b8181101562000670578281556001016200065b565b5050505b505050565b81516001600160401b03811115620006955762000695620005d4565b620006ad81620006a68454620005ea565b8462000626565b602080601f831160018114620006e55760008415620006cc5750858301515b600019600386901b1c1916600185901b17855562000670565b600085815260208120601f198616915b828110156200071657888601518255948401946001909101908401620006f5565b5085821015620007355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200075857600080fd5b81516001600160a01b03811681146200077057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007ce578160001904821115620007b257620007b262000777565b80851615620007c057918102915b93841c939080029062000792565b509250929050565b600082620007e75750600162000886565b81620007f65750600062000886565b81600181146200080f57600281146200081a576200083a565b600191505062000886565b60ff8411156200082e576200082e62000777565b50506001821b62000886565b5060208310610133831016604e8410600b84101617156200085f575081810a62000886565b6200086b83836200078d565b806000190482111562000882576200088262000777565b0290505b92915050565b60006200077060ff841683620007d6565b808202811582820484141762000886576200088662000777565b600082620008d557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000886576200088662000777565b611bb680620009006000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e14610559578063e2f456051461059f578063f2fde38b146105b5578063f9d0831a146105d557600080fd5b8063b1fde9f8146104e3578063b3f0067414610503578063bb8c3ee014610523578063c02466681461053957600080fd5b80638da5cb5b116100d15780638da5cb5b1461047057806395d89b411461048e578063a457c2d7146104a3578063a9059cbb146104c357600080fd5b8063715018a6146104265780637c08b9641461043b5780638a8c523c1461045b57600080fd5b8063395093511161016f57806365048d081161013e57806365048d08146103995780636db79437146103af5780636ddd1713146103d157806370a08231146103f057600080fd5b8063395093511461030057806349bd5a5e146103205780634ada218b146103405780634fbee1931461036057600080fd5b80631694505e116101ab5780631694505e1461026d57806318160ddd146102a557806323b872dd146102c4578063313ce567146102e457600080fd5b806302d05d3f146101dd57806306fdde0314610228578063095ea7b31461023d57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161021f91906117c8565b60405180910390f35b34801561023457600080fd5b506102126105f5565b34801561024957600080fd5b5061025d61025836600461182b565b610687565b604051901515815260200161021f565b34801561027957600080fd5b5060065461028d906001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b3480156102b157600080fd5b506002545b60405190815260200161021f565b3480156102d057600080fd5b5061025d6102df366004611857565b61069e565b3480156102f057600080fd5b506040516012815260200161021f565b34801561030c57600080fd5b5061025d61031b36600461182b565b610754565b34801561032c57600080fd5b5060075461028d906001600160a01b031681565b34801561034c57600080fd5b50600d5461025d9062010000900460ff1681565b34801561036c57600080fd5b5061025d61037b366004611898565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103a557600080fd5b506102b6600a5481565b3480156103bb57600080fd5b506103cf6103ca3660046118bc565b610790565b005b3480156103dd57600080fd5b50600d5461025d90610100900460ff1681565b3480156103fc57600080fd5b506102b661040b366004611898565b6001600160a01b031660009081526020819052604090205490565b34801561043257600080fd5b506103cf610852565b34801561044757600080fd5b506103cf610456366004611898565b6108c6565b34801561046757600080fd5b506103cf6109b0565b34801561047c57600080fd5b506005546001600160a01b031661028d565b34801561049a57600080fd5b50610212610a88565b3480156104af57600080fd5b5061025d6104be36600461182b565b610a97565b3480156104cf57600080fd5b5061025d6104de36600461182b565b610b30565b3480156104ef57600080fd5b506103cf6104fe3660046118ec565b610b3d565b34801561050f57600080fd5b50600b5461028d906001600160a01b031681565b34801561052f57600080fd5b506102b660095481565b34801561054557600080fd5b506103cf61055436600461191c565b610c48565b34801561056557600080fd5b506102b661057436600461194a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105ab57600080fd5b506102b6600c5481565b3480156105c157600080fd5b506103cf6105d0366004611898565b610cd1565b3480156105e157600080fd5b506103cf6105f0366004611898565b610dbc565b60606003805461060490611978565b80601f016020809104026020016040519081016040528092919081815260200182805461063090611978565b801561067d5780601f106106525761010080835404028352916020019161067d565b820191906000526020600020905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b6000610694338484610f64565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461073e57828110156107315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61073e8533858403610f64565b610749858585611088565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161069491859061078b9086906119c8565b610f64565b6005546001600160a01b031633146107ba5760405162461bcd60e51b8152600401610728906119db565b6009819055600a82905560058111156107e55760405162461bcd60e51b815260040161072890611a10565b6005600a5411156108085760405162461bcd60e51b815260040161072890611a10565b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610846929190918252602082015260400190565b60405180910390a15050565b6005546001600160a01b0316331461087c5760405162461bcd60e51b8152600401610728906119db565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108f05760405162461bcd60e51b8152600401610728906119db565b6001600160a01b03811661095c5760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610728565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109da5760405162461bcd60e51b8152600401610728906119db565b600d5462010000900460ff1615610a335760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610728565b600d80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461060490611978565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610728565b610b263385858403610f64565b5060019392505050565b6000610694338484611088565b6005546001600160a01b03163314610b675760405162461bcd60e51b8152600401610728906119db565b620f4240610b7460025490565b610b7e9190611a5a565b8211610c005760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610728565b600c829055600d805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610846565b6005546001600160a01b03163314610c725760405162461bcd60e51b8152600401610728906119db565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610728906119db565b6001600160a01b038116610d605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610728565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610de65760405162461bcd60e51b8152600401610728906119db565b306001600160a01b03821603610e645760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610728565b6001600160a01b038116610e8057610e7c33476113a2565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef29190611a7c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190611a95565b50565b6001600160a01b038316610fc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610728565b6001600160a01b0382166110275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610728565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ea5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610728565b6001600160a01b03821661114b5760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610728565b600d5462010000900460ff168061117a57506001600160a01b03831660009081526008602052604090205460ff165b8061119d57506001600160a01b03821660009081526008602052604090205460ff165b6111e95760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610728565b80600003611202576111fd83836000611451565b505050565b30600090815260208190526040902054600c54811080159081906112295750600d5460ff16155b801561124257506007546001600160a01b038581169116145b801561125d57506000600a5460095461125b91906119c8565b115b801561128257506001600160a01b03851660009081526008602052604090205460ff16155b80156112955750600d54610100900460ff165b156112bb57600d805460ff191660011790556112b082611620565b600d805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff16806112fa57506001600160a01b03851660009081526008602052604090205460ff165b806113075750600d5460ff165b1561131457506000611356565b6007546001600160a01b03908116908716036113335750600954611356565b6007546001600160a01b03908116908616036113525750600a54611356565b5060005b801561138f576000606461136a8387611ab2565b6113749190611a5a565b90506113808186611ac9565b945061138d873083611451565b505b61139a868686611451565b505050505050565b6000814710156113f45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610728565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611441576040519150601f19603f3d011682016040523d82523d6000602084013e611446565b606091505b509095945050505050565b6001600160a01b0383166114b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610728565b6001600160a01b0382166115175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610728565b6001600160a01b0383166000908152602081905260409020548181101561158f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610728565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906115c69084906119c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161161291815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061165957611659611adc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d69190611af2565b816001815181106116e9576116e9611adc565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac9479061172f908690600090869030904290600401611b0f565b600060405180830381600087803b15801561174957600080fd5b505af192505050801561175a575060015b61176357505050565b600061176f8347611ac9565b600b54909150611788906001600160a01b0316826113a2565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117f5578581018301518582016040015282016117d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f6157600080fd5b6000806040838503121561183e57600080fd5b823561184981611816565b946020939093013593505050565b60008060006060848603121561186c57600080fd5b833561187781611816565b9250602084013561188781611816565b929592945050506040919091013590565b6000602082840312156118aa57600080fd5b81356118b581611816565b9392505050565b600080604083850312156118cf57600080fd5b50508035926020909101359150565b8015158114610f6157600080fd5b600080604083850312156118ff57600080fd5b823591506020830135611911816118de565b809150509250929050565b6000806040838503121561192f57600080fd5b823561193a81611816565b91506020830135611911816118de565b6000806040838503121561195d57600080fd5b823561196881611816565b9150602083013561191181611816565b600181811c9082168061198c57607f821691505b6020821081036119ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610698576106986119b2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602a908201527f43534c543a20546f74616c20466565732063616e6e6f742065786365656420746040820152696865206d6178696d756d60b01b606082015260800190565b600082611a7757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a8e57600080fd5b5051919050565b600060208284031215611aa757600080fd5b81516118b5816118de565b8082028115828204841417610698576106986119b2565b81810381811115610698576106986119b2565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0457600080fd5b81516118b581611816565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b5f5784516001600160a01b031683529383019391830191600101611b3a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f624b215e84d1a71ccac0d24176f0e7dca30d5ec71b0a9687de2b1880d4a4dc564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063b1fde9f811610095578063dd62ed3e11610064578063dd62ed3e14610559578063e2f456051461059f578063f2fde38b146105b5578063f9d0831a146105d557600080fd5b8063b1fde9f8146104e3578063b3f0067414610503578063bb8c3ee014610523578063c02466681461053957600080fd5b80638da5cb5b116100d15780638da5cb5b1461047057806395d89b411461048e578063a457c2d7146104a3578063a9059cbb146104c357600080fd5b8063715018a6146104265780637c08b9641461043b5780638a8c523c1461045b57600080fd5b8063395093511161016f57806365048d081161013e57806365048d08146103995780636db79437146103af5780636ddd1713146103d157806370a08231146103f057600080fd5b8063395093511461030057806349bd5a5e146103205780634ada218b146103405780634fbee1931461036057600080fd5b80631694505e116101ab5780631694505e1461026d57806318160ddd146102a557806323b872dd146102c4578063313ce567146102e457600080fd5b806302d05d3f146101dd57806306fdde0314610228578063095ea7b31461023d57600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161021f91906117c8565b60405180910390f35b34801561023457600080fd5b506102126105f5565b34801561024957600080fd5b5061025d61025836600461182b565b610687565b604051901515815260200161021f565b34801561027957600080fd5b5060065461028d906001600160a01b031681565b6040516001600160a01b03909116815260200161021f565b3480156102b157600080fd5b506002545b60405190815260200161021f565b3480156102d057600080fd5b5061025d6102df366004611857565b61069e565b3480156102f057600080fd5b506040516012815260200161021f565b34801561030c57600080fd5b5061025d61031b36600461182b565b610754565b34801561032c57600080fd5b5060075461028d906001600160a01b031681565b34801561034c57600080fd5b50600d5461025d9062010000900460ff1681565b34801561036c57600080fd5b5061025d61037b366004611898565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103a557600080fd5b506102b6600a5481565b3480156103bb57600080fd5b506103cf6103ca3660046118bc565b610790565b005b3480156103dd57600080fd5b50600d5461025d90610100900460ff1681565b3480156103fc57600080fd5b506102b661040b366004611898565b6001600160a01b031660009081526020819052604090205490565b34801561043257600080fd5b506103cf610852565b34801561044757600080fd5b506103cf610456366004611898565b6108c6565b34801561046757600080fd5b506103cf6109b0565b34801561047c57600080fd5b506005546001600160a01b031661028d565b34801561049a57600080fd5b50610212610a88565b3480156104af57600080fd5b5061025d6104be36600461182b565b610a97565b3480156104cf57600080fd5b5061025d6104de36600461182b565b610b30565b3480156104ef57600080fd5b506103cf6104fe3660046118ec565b610b3d565b34801561050f57600080fd5b50600b5461028d906001600160a01b031681565b34801561052f57600080fd5b506102b660095481565b34801561054557600080fd5b506103cf61055436600461191c565b610c48565b34801561056557600080fd5b506102b661057436600461194a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105ab57600080fd5b506102b6600c5481565b3480156105c157600080fd5b506103cf6105d0366004611898565b610cd1565b3480156105e157600080fd5b506103cf6105f0366004611898565b610dbc565b60606003805461060490611978565b80601f016020809104026020016040519081016040528092919081815260200182805461063090611978565b801561067d5780601f106106525761010080835404028352916020019161067d565b820191906000526020600020905b81548152906001019060200180831161066057829003601f168201915b5050505050905090565b6000610694338484610f64565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461073e57828110156107315760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61073e8533858403610f64565b610749858585611088565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161069491859061078b9086906119c8565b610f64565b6005546001600160a01b031633146107ba5760405162461bcd60e51b8152600401610728906119db565b6009819055600a82905560058111156107e55760405162461bcd60e51b815260040161072890611a10565b6005600a5411156108085760405162461bcd60e51b815260040161072890611a10565b7f53482196ef67ac615caab1c3eca2c270acbfdcd75e57c5f24c1b98b10c8e6e04600a54600954604051610846929190918252602082015260400190565b60405180910390a15050565b6005546001600160a01b0316331461087c5760405162461bcd60e51b8152600401610728906119db565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146108f05760405162461bcd60e51b8152600401610728906119db565b6001600160a01b03811661095c5760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b6064820152608401610728565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146109da5760405162461bcd60e51b8152600401610728906119db565b600d5462010000900460ff1615610a335760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e00006044820152606401610728565b600d80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b60606004805461060490611978565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b195760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610728565b610b263385858403610f64565b5060019392505050565b6000610694338484611088565b6005546001600160a01b03163314610b675760405162461bcd60e51b8152600401610728906119db565b620f4240610b7460025490565b610b7e9190611a5a565b8211610c005760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a401610728565b600c829055600d805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b14590602001610846565b6005546001600160a01b03163314610c725760405162461bcd60e51b8152600401610728906119db565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610cfb5760405162461bcd60e51b8152600401610728906119db565b6001600160a01b038116610d605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610728565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610de65760405162461bcd60e51b8152600401610728906119db565b306001600160a01b03821603610e645760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e730000006064820152608401610728565b6001600160a01b038116610e8057610e7c33476113a2565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef29190611a7c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190611a95565b50565b6001600160a01b038316610fc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610728565b6001600160a01b0382166110275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610728565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110ea5760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610728565b6001600160a01b03821661114b5760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610728565b600d5462010000900460ff168061117a57506001600160a01b03831660009081526008602052604090205460ff165b8061119d57506001600160a01b03821660009081526008602052604090205460ff165b6111e95760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c65642100006044820152606401610728565b80600003611202576111fd83836000611451565b505050565b30600090815260208190526040902054600c54811080159081906112295750600d5460ff16155b801561124257506007546001600160a01b038581169116145b801561125d57506000600a5460095461125b91906119c8565b115b801561128257506001600160a01b03851660009081526008602052604090205460ff16155b80156112955750600d54610100900460ff165b156112bb57600d805460ff191660011790556112b082611620565b600d805460ff191690555b6001600160a01b03851660009081526008602052604081205460ff16806112fa57506001600160a01b03851660009081526008602052604090205460ff165b806113075750600d5460ff165b1561131457506000611356565b6007546001600160a01b03908116908716036113335750600954611356565b6007546001600160a01b03908116908616036113525750600a54611356565b5060005b801561138f576000606461136a8387611ab2565b6113749190611a5a565b90506113808186611ac9565b945061138d873083611451565b505b61139a868686611451565b505050505050565b6000814710156113f45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610728565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611441576040519150601f19603f3d011682016040523d82523d6000602084013e611446565b606091505b509095945050505050565b6001600160a01b0383166114b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610728565b6001600160a01b0382166115175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610728565b6001600160a01b0383166000908152602081905260409020548181101561158f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610728565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906115c69084906119c8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161161291815260200190565b60405180910390a350505050565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061165957611659611adc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d69190611af2565b816001815181106116e9576116e9611adc565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac9479061172f908690600090869030904290600401611b0f565b600060405180830381600087803b15801561174957600080fd5b505af192505050801561175a575060015b61176357505050565b600061176f8347611ac9565b600b54909150611788906001600160a01b0316826113a2565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156117f5578581018301518582016040015282016117d9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f6157600080fd5b6000806040838503121561183e57600080fd5b823561184981611816565b946020939093013593505050565b60008060006060848603121561186c57600080fd5b833561187781611816565b9250602084013561188781611816565b929592945050506040919091013590565b6000602082840312156118aa57600080fd5b81356118b581611816565b9392505050565b600080604083850312156118cf57600080fd5b50508035926020909101359150565b8015158114610f6157600080fd5b600080604083850312156118ff57600080fd5b823591506020830135611911816118de565b809150509250929050565b6000806040838503121561192f57600080fd5b823561193a81611816565b91506020830135611911816118de565b6000806040838503121561195d57600080fd5b823561196881611816565b9150602083013561191181611816565b600181811c9082168061198c57607f821691505b6020821081036119ac57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610698576106986119b2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602a908201527f43534c543a20546f74616c20466565732063616e6e6f742065786365656420746040820152696865206d6178696d756d60b01b606082015260800190565b600082611a7757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611a8e57600080fd5b5051919050565b600060208284031215611aa757600080fd5b81516118b5816118de565b8082028115828204841417610698576106986119b2565b81810381811115610698576106986119b2565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b0457600080fd5b81516118b581611816565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b5f5784516001600160a01b031683529383019391830191600101611b3a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f624b215e84d1a71ccac0d24176f0e7dca30d5ec71b0a9687de2b1880d4a4dc564736f6c63430008130033

Deployed Bytecode Sourcemap

8686:6483:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10484:101;;;;;;;;;;-1:-1:-1;10551:25:0;;;;;;;;;;;;-1:-1:-1;;;10551:25:0;;;;10484:101;;;;;;;:::i;:::-;;;;;;;;4478:102;;;;;;;;;;;;;:::i;5421:172::-;;;;;;;;;;-1:-1:-1;5421:172:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5421:172:0;1023:187:1;8771:41:0;;;;;;;;;;-1:-1:-1;8771:41:0;;;;-1:-1:-1;;;;;8771:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;8771:41:0;1215:228:1;4811:110:0;;;;;;;;;;-1:-1:-1;4900:12:0;;4811:110;;;1594:25:1;;;1582:2;1567:18;4811:110:0;1448:177:1;5603:589:0;;;;;;;;;;-1:-1:-1;5603:589:0;;;;;:::i;:::-;;:::i;4706:95::-;;;;;;;;;;-1:-1:-1;4706:95:0;;4790:2;2233:36:1;;2221:2;2206:18;4706:95:0;2091:184:1;6202:218:0;;;;;;;;;;-1:-1:-1;6202:218:0;;;;;:::i;:::-;;:::i;8820:29::-;;;;;;;;;;-1:-1:-1;8820:29:0;;;;-1:-1:-1;;;;;8820:29:0;;;12180:26;;;;;;;;;;-1:-1:-1;12180:26:0;;;;;;;;;;;11219:127;;;;;;;;;;-1:-1:-1;11219:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11309:28:0;11284:4;11309:28;;;:19;:28;;;;;;;;;11219:127;8956:25;;;;;;;;;;;;;;;;11420:367;;;;;;;;;;-1:-1:-1;11420:367:0;;;;;:::i;:::-;;:::i;:::-;;9108:26;;;;;;;;;;-1:-1:-1;9108:26:0;;;;;;;;;;;4931:129;;;;;;;;;;-1:-1:-1;4931:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;5033:18:0;5005:7;5033:18;;;;;;;;;;;;4931:129;3641:151;;;;;;;;;;;;;:::i;11853:261::-;;;;;;;;;;-1:-1:-1;11853:261:0;;;;;:::i;:::-;;:::i;12217:235::-;;;;;;;;;;;;;:::i;3418:81::-;;;;;;;;;;-1:-1:-1;3484:6:0;;-1:-1:-1;;;;;3484:6:0;3418:81;;4590:106;;;;;;;;;;;;;:::i;6430:421::-;;;;;;;;;;-1:-1:-1;6430:421:0;;;;;:::i;:::-;;:::i;5070:178::-;;;;;;;;;;-1:-1:-1;5070:178:0;;;;;:::i;:::-;;:::i;14074:372::-;;;;;;;;;;-1:-1:-1;14074:372:0;;;;;:::i;:::-;;:::i;8993:27::-;;;;;;;;;;-1:-1:-1;8993:27:0;;;;-1:-1:-1;;;;;8993:27:0;;;8924:24;;;;;;;;;;;;;;;;11020:189;;;;;;;;;;-1:-1:-1;11020:189:0;;;;;:::i;:::-;;:::i;5258:153::-;;;;;;;;;;-1:-1:-1;5258:153:0;;;;;:::i;:::-;-1:-1:-1;;;;;5375:18:0;;;5347:7;5375:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5258:153;9031:34;;;;;;;;;;;;;;;;3802:248;;;;;;;;;;-1:-1:-1;3802:248:0;;;;;:::i;:::-;;:::i;10595:415::-;;;;;;;;;;-1:-1:-1;10595:415:0;;;;;:::i;:::-;;:::i;4478:102::-;4532:13;4566:5;4559:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4478:102;:::o;5421:172::-;5504:4;5522:39;2801:10;5545:7;5554:6;5522:8;:39::i;:::-;-1:-1:-1;5580:4:0;5421:172;;;;;:::o;5603:589::-;-1:-1:-1;;;;;5792:19:0;;5747:4;5792:19;;;:11;:19;;;;;;;;2801:10;5792:33;;;;;;;;-1:-1:-1;;5841:37:0;;5837:270;;5924:6;5904:16;:26;;5896:79;;;;-1:-1:-1;;;5896:79:0;;4797:2:1;5896:79:0;;;4779:21:1;4836:2;4816:18;;;4809:30;4875:34;4855:18;;;4848:62;-1:-1:-1;;;4926:18:1;;;4919:38;4974:19;;5896:79:0;;;;;;;;;6021:57;6030:6;2801:10;6071:6;6052:16;:25;6021:8;:57::i;:::-;6121:36;6131:6;6139:9;6150:6;6121:9;:36::i;:::-;-1:-1:-1;6179:4:0;;5603:589;-1:-1:-1;;;;5603:589:0:o;6202:218::-;2801:10;6290:4;6340:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6340:34:0;;;;;;;;;;6290:4;;6308:80;;6331:7;;6340:47;;6377:10;;6340:47;:::i;:::-;6308:8;:80::i;11420:367::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;11510:8:::1;:20:::0;;;11542:9:::1;:22:::0;;;11598:1:::1;11586:13:::0;::::1;;11578:68;;;;-1:-1:-1::0;;;11578:68:0::1;;;;;;;:::i;:::-;11679:1;11666:9;;:14;;11658:69;;;;-1:-1:-1::0;;;11658:69:0::1;;;;;;;:::i;:::-;11747:31;11758:9;;11769:8;;11747:31;;;;;;6212:25:1::0;;;6268:2;6253:18;;6246:34;6200:2;6185:18;;6038:248;11747:31:0::1;;;;;;;;11420:367:::0;;:::o;3641:151::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;3733:6:::1;::::0;3712:40:::1;::::0;3749:1:::1;::::0;-1:-1:-1;;;;;3733:6:0::1;::::0;3712:40:::1;::::0;3749:1;;3712:40:::1;3764:6;:19:::0;;-1:-1:-1;;;;;;3764:19:0::1;::::0;;3641:151::o;11853:261::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11940:26:0;::::1;11932:84;;;::::0;-1:-1:-1;;;11932:84:0;;6493:2:1;11932:84:0::1;::::0;::::1;6475:21:1::0;6532:2;6512:18;;;6505:30;6571:34;6551:18;;;6544:62;-1:-1:-1;;;6622:18:1;;;6615:43;6675:19;;11932:84:0::1;6291:409:1::0;11932:84:0::1;12028:11;:26:::0;;-1:-1:-1;;;;;;12028:26:0::1;-1:-1:-1::0;;;;;12028:26:0;::::1;::::0;;::::1;::::0;;;12074:31:::1;::::0;1386:51:1;;;12074:31:0::1;::::0;1374:2:1;1359:18;12074:31:0::1;;;;;;;11853:261:::0;:::o;12217:235::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;12281:14:::1;::::0;;;::::1;;;12280:15;12272:58;;;::::0;-1:-1:-1;;;12272:58:0;;6907:2:1;12272:58:0::1;::::0;::::1;6889:21:1::0;6946:2;6926:18;;;6919:30;6985:32;6965:18;;;6958:60;7035:18;;12272:58:0::1;6705:354:1::0;12272:58:0::1;12342:14;:21:::0;;12375:18;-1:-1:-1;;12375:18:0;;;;;;;;12413:30:::1;::::0;12342:21;12428:14;;::::1;12342:21;12428:14;1188::1::0;1181:22;1163:41;;12413:30:0::1;::::0;1151:2:1;1136:18;12413:30:0::1;;;;;;;12217:235::o:0;4590:106::-;4646:13;4680:7;4673:14;;;;;:::i;6430:421::-;2801:10;6523:4;6568:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6568:34:0;;;;;;;;;;6622:35;;;;6614:85;;;;-1:-1:-1;;;6614:85:0;;7266:2:1;6614:85:0;;;7248:21:1;7305:2;7285:18;;;7278:30;7344:34;7324:18;;;7317:62;-1:-1:-1;;;7395:18:1;;;7388:35;7440:19;;6614:85:0;7064:401:1;6614:85:0;6737:67;2801:10;6760:7;6788:15;6769:16;:34;6737:8;:67::i;:::-;-1:-1:-1;6838:4:0;;6430:421;-1:-1:-1;;;6430:421:0:o;5070:178::-;5156:4;5174:42;2801:10;5198:9;5209:6;5174:9;:42::i;14074:372::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;14209:9:::1;14193:13;4900:12:::0;;;4811:110;14193:13:::1;:25;;;;:::i;:::-;14181:9;:37;14173:119;;;::::0;-1:-1:-1;;;14173:119:0;;7894:2:1;14173:119:0::1;::::0;::::1;7876:21:1::0;7933:2;7913:18;;;7906:30;7972:34;7952:18;;;7945:62;8043:34;8023:18;;;8016:62;-1:-1:-1;;;8094:19:1;;;8087:36;8140:19;;14173:119:0::1;7692:473:1::0;14173:119:0::1;14304:18;:30:::0;;;14346:11:::1;:26:::0;;-1:-1:-1;;14346:26:0::1;;::::0;::::1;;;;::::0;;14392:45:::1;::::0;1594:25:1;;;14392:45:0::1;::::0;1582:2:1;1567:18;14392:45:0::1;1448:177:1::0;11020:189:0;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11107:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;11107:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11166:34;;1163:41:1;;;11166:34:0::1;::::0;1136:18:1;11166:34:0::1;;;;;;;11020:189:::0;;:::o;3802:248::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3892:22:0;::::1;3884:73;;;::::0;-1:-1:-1;;;3884:73:0;;8372:2:1;3884:73:0::1;::::0;::::1;8354:21:1::0;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;-1:-1:-1;;;8501:18:1;;;8494:36;8547:19;;3884:73:0::1;8170:402:1::0;3884:73:0::1;3995:6;::::0;3974:38:::1;::::0;-1:-1:-1;;;;;3974:38:0;;::::1;::::0;3995:6:::1;::::0;3974:38:::1;::::0;3995:6:::1;::::0;3974:38:::1;4024:6;:17:::0;;-1:-1:-1;;;;;;4024:17:0::1;-1:-1:-1::0;;;;;4024:17:0;;;::::1;::::0;;;::::1;::::0;;3802:248::o;10595:415::-;3550:6;;-1:-1:-1;;;;;3550:6:0;2801:10;3550:22;3542:67;;;;-1:-1:-1;;;3542:67:0;;;;;;;:::i;:::-;10692:4:::1;-1:-1:-1::0;;;;;10675:22:0;::::1;::::0;10667:96:::1;;;::::0;-1:-1:-1;;;10667:96:0;;8779:2:1;10667:96:0::1;::::0;::::1;8761:21:1::0;8818:2;8798:18;;;8791:30;8857:34;8837:18;;;8830:62;8928:31;8908:18;;;8901:59;8977:19;;10667:96:0::1;8577:425:1::0;10667:96:0::1;-1:-1:-1::0;;;;;10779:21:0;::::1;10775:130;;10818:52;10826:10;10848:21;10818:29;:52::i;:::-;;10595:415:::0;:::o;10775:130::-:1;10962:38;::::0;-1:-1:-1;;;10962:38:0;;10994:4:::1;10962:38;::::0;::::1;1386:51:1::0;-1:-1:-1;;;;;10927:22:0;::::1;::::0;::::1;::::0;10950:10:::1;::::0;10927:22;;10962:23:::1;::::0;1359:18:1;;10962:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10927:74;::::0;-1:-1:-1;;;;;;10927:74:0::1;::::0;;;;;;-1:-1:-1;;;;;9388:32:1;;;10927:74:0::1;::::0;::::1;9370:51:1::0;9437:18;;;9430:34;9343:18;;10927:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3621:1::-;10595:415:::0;:::o;8286:390::-;-1:-1:-1;;;;;8427:19:0;;8419:68;;;;-1:-1:-1;;;8419:68:0;;9927:2:1;8419:68:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:34;9985:18;;;9978:62;-1:-1:-1;;;10056:18:1;;;10049:34;10100:19;;8419:68:0;9725:400:1;8419:68:0;-1:-1:-1;;;;;8507:21:0;;8499:68;;;;-1:-1:-1;;;8499:68:0;;10332:2:1;8499:68:0;;;10314:21:1;10371:2;10351:18;;;10344:30;10410:34;10390:18;;;10383:62;-1:-1:-1;;;10461:18:1;;;10454:32;10503:19;;8499:68:0;10130:398:1;8499:68:0;-1:-1:-1;;;;;8582:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8635:32;;1594:25:1;;;8635:32:0;;1567:18:1;8635:32:0;;;;;;;8286:390;;;:::o;12462:1602::-;-1:-1:-1;;;;;12560:18:0;;12552:67;;;;-1:-1:-1;;;12552:67:0;;10735:2:1;12552:67:0;;;10717:21:1;10774:2;10754:18;;;10747:30;10813:34;10793:18;;;10786:62;-1:-1:-1;;;10864:18:1;;;10857:34;10908:19;;12552:67:0;10533:400:1;12552:67:0;-1:-1:-1;;;;;12639:16:0;;12631:63;;;;-1:-1:-1;;;12631:63:0;;11140:2:1;12631:63:0;;;11122:21:1;11179:2;11159:18;;;11152:30;11218:34;11198:18;;;11191:62;-1:-1:-1;;;11269:18:1;;;11262:32;11311:19;;12631:63:0;10938:398:1;12631:63:0;12714:14;;;;;;;;:43;;-1:-1:-1;;;;;;12732:25:0;;;;;;:19;:25;;;;;;;;12714:43;:70;;;-1:-1:-1;;;;;;12761:23:0;;;;;;:19;:23;;;;;;;;12714:70;12706:113;;;;-1:-1:-1;;;12706:113:0;;11543:2:1;12706:113:0;;;11525:21:1;11582:2;11562:18;;;11555:30;11621:32;11601:18;;;11594:60;11671:18;;12706:113:0;11341:354:1;12706:113:0;12845:6;12855:1;12845:11;12841:96;;12874:28;12890:4;12896:2;12900:1;12874:15;:28::i;:::-;12462:1602;;;:::o;12841:96::-;13000:4;12951:28;5033:18;;;;;;;;;;;13060;;13036:42;;;;;;;13097:34;;-1:-1:-1;13123:8:0;;;;13122:9;13097:34;:71;;;;-1:-1:-1;13155:13:0;;-1:-1:-1;;;;;13149:19:0;;;13155:13;;13149:19;13097:71;:113;;;;;13209:1;13197:9;;13186:8;;:20;;;;:::i;:::-;:24;13097:113;:157;;;;-1:-1:-1;;;;;;13229:25:0;;;;;;:19;:25;;;;;;;;13228:26;13097:157;:186;;;;-1:-1:-1;13272:11:0;;;;;;;13097:186;13093:342;;;13312:8;:15;;-1:-1:-1;;13312:15:0;13323:4;13312:15;;;13346:36;13361:20;13346:14;:36::i;:::-;13406:8;:16;;-1:-1:-1;;13406:16:0;;;13093:342;-1:-1:-1;;;;;13483:25:0;;13449:18;13483:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13512:23:0;;;;;;:19;:23;;;;;;;;13483:52;:64;;;-1:-1:-1;13539:8:0;;;;13483:64;13479:328;;;-1:-1:-1;13578:1:0;13479:328;;;13610:13;;-1:-1:-1;;;;;13610:13:0;;;13602:21;;;;13598:209;;-1:-1:-1;13654:8:0;;13598:209;;;13691:13;;-1:-1:-1;;;;;13691:13:0;;;13685:19;;;;13681:126;;-1:-1:-1;13736:9:0;;13681:126;;;-1:-1:-1;13793:1:0;13681:126;13825:14;;13821:187;;13857:12;13896:3;13873:19;13882:10;13873:6;:19;:::i;:::-;13872:27;;;;:::i;:::-;13857:42;-1:-1:-1;13924:13:0;13857:42;13924:6;:13;:::i;:::-;13915:22;;13953:42;13969:4;13983;13990;13953:15;:42::i;:::-;13841:167;13821:187;14022:33;14038:4;14044:2;14048:6;14022:15;:33::i;:::-;12540:1524;;;12462:1602;;;:::o;2386:290::-;2465:4;2515:6;2490:21;:31;;2482:73;;;;-1:-1:-1;;;2482:73:0;;12208:2:1;2482:73:0;;;12190:21:1;12247:2;12227:18;;;12220:30;12286:31;12266:18;;;12259:59;12335:18;;2482:73:0;12006:353:1;2482:73:0;2571:12;2589:9;-1:-1:-1;;;;;2589:14:0;2611:6;2589:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2570:52:0;;2386:290;-1:-1:-1;;;;;2386:290:0:o;6861:630::-;-1:-1:-1;;;;;7006:20:0;;6998:70;;;;-1:-1:-1;;;6998:70:0;;12776:2:1;6998:70:0;;;12758:21:1;12815:2;12795:18;;;12788:30;12854:34;12834:18;;;12827:62;-1:-1:-1;;;12905:18:1;;;12898:35;12950:19;;6998:70:0;12574:401:1;6998:70:0;-1:-1:-1;;;;;7088:23:0;;7080:71;;;;-1:-1:-1;;;7080:71:0;;13182:2:1;7080:71:0;;;13164:21:1;13221:2;13201:18;;;13194:30;13260:34;13240:18;;;13233:62;-1:-1:-1;;;13311:18:1;;;13304:33;13354:19;;7080:71:0;12980:399:1;7080:71:0;-1:-1:-1;;;;;7190:17:0;;7166:21;7190:17;;;;;;;;;;;7227:23;;;;7219:74;;;;-1:-1:-1;;;7219:74:0;;13586:2:1;7219:74:0;;;13568:21:1;13625:2;13605:18;;;13598:30;13664:34;13644:18;;;13637:62;-1:-1:-1;;;13715:18:1;;;13708:36;13761:19;;7219:74:0;13384:402:1;7219:74:0;-1:-1:-1;;;;;7331:17:0;;;:9;:17;;;;;;;;;;;7351:22;;;7331:42;;7397:20;;;;;;;;:30;;7367:6;;7331:9;7397:30;;7367:6;;7397:30;:::i;:::-;;;;;;;;7464:9;-1:-1:-1;;;;;7447:35:0;7456:6;-1:-1:-1;;;;;7447:35:0;;7475:6;7447:35;;;;1594:25:1;;1582:2;1567:18;;1448:177;7447:35:0;;;;;;;;6986:505;6861:630;;;:::o;14456:709::-;14606:16;;;14620:1;14606:16;;;;;;;;14546:21;;14521:22;;14606:16;14620:1;14606:16;;;;;;;;;;-1:-1:-1;14606:16:0;14582:40;;14652:4;14634;14639:1;14634:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14634:23:0;;;:7;;;;;;;;;;:23;;;;14679:15;;:22;;;-1:-1:-1;;;14679:22:0;;;;:15;;;;;:20;;:22;;;;;14634:7;;14679:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14669:4;14674:1;14669:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14669:32:0;;;:7;;;;;;;;;:32;14720:15;;:202;;-1:-1:-1;;;14720:202:0;;:15;;;:66;;:202;;14802:11;;14720:15;;14846:4;;14874;;14895:15;;14720:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14716:251;;14948:7;;14456:709;:::o;14716:251::-;14981:18;15002:38;15026:14;15002:21;:38;:::i;:::-;15063:11;;14981:59;;-1:-1:-1;15055:42:0;;-1:-1:-1;;;;;15063:11:0;14981:59;15055:30;:42::i;:::-;-1:-1:-1;15117:39:0;;;6212:25:1;;;6268:2;6253:18;;6246:34;;;15117:39:0;;6185:18:1;15117:39:0;;;;;;;14509:656;;;14456:709;:::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;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:248::-;2808:6;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;-1:-1:-1;;2908:23:1;;;2978:2;2963:18;;;2950:32;;-1:-1:-1;2740:248:1:o;2993:118::-;3079:5;3072:13;3065:21;3058:5;3055:32;3045:60;;3101:1;3098;3091:12;3116:309;3181:6;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3294:9;3281:23;3271:33;;3354:2;3343:9;3339:18;3326:32;3367:28;3389:5;3367:28;:::i;:::-;3414:5;3404:15;;;3116:309;;;;;:::o;3430:382::-;3495:6;3503;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;:::-;3680:5;-1:-1:-1;3737:2:1;3722:18;;3709:32;3750:30;3709:32;3750:30;:::i;3817:388::-;3885:6;3893;3946:2;3934:9;3925:7;3921:23;3917:32;3914:52;;;3962:1;3959;3952:12;3914:52;4001:9;3988:23;4020:31;4045:5;4020:31;:::i;:::-;4070:5;-1:-1:-1;4127:2:1;4112:18;;4099:32;4140:33;4099:32;4140:33;:::i;4210:380::-;4289:1;4285:12;;;;4332;;;4353:61;;4407:4;4399:6;4395:17;4385:27;;4353:61;4460:2;4452:6;4449:14;4429:18;4426:38;4423:161;;4506:10;4501:3;4497:20;4494:1;4487:31;4541:4;4538:1;4531:15;4569:4;4566:1;4559:15;4423:161;;4210:380;;;:::o;5004:127::-;5065:10;5060:3;5056:20;5053:1;5046:31;5096:4;5093:1;5086:15;5120:4;5117:1;5110:15;5136:125;5201:9;;;5222:10;;;5219:36;;;5235:18;;:::i;5266:356::-;5468:2;5450:21;;;5487:18;;;5480:30;5546:34;5541:2;5526:18;;5519:62;5613:2;5598:18;;5266:356::o;5627:406::-;5829:2;5811:21;;;5868:2;5848:18;;;5841:30;5907:34;5902:2;5887:18;;5880:62;-1:-1:-1;;;5973:2:1;5958:18;;5951:40;6023:3;6008:19;;5627:406::o;7470:217::-;7510:1;7536;7526:132;;7580:10;7575:3;7571:20;7568:1;7561:31;7615:4;7612:1;7605:15;7643:4;7640:1;7633:15;7526:132;-1:-1:-1;7672:9:1;;7470:217::o;9007:184::-;9077:6;9130:2;9118:9;9109:7;9105:23;9101:32;9098:52;;;9146:1;9143;9136:12;9098:52;-1:-1:-1;9169:16:1;;9007:184;-1:-1:-1;9007:184:1:o;9475:245::-;9542:6;9595:2;9583:9;9574:7;9570:23;9566:32;9563:52;;;9611:1;9608;9601:12;9563:52;9643:9;9637:16;9662:28;9684:5;9662:28;:::i;11700:168::-;11773:9;;;11804;;11821:15;;;11815:22;;11801:37;11791:71;;11842:18;;:::i;11873:128::-;11940:9;;;11961:11;;;11958:37;;;11975:18;;:::i;13923:127::-;13984:10;13979:3;13975:20;13972:1;13965:31;14015:4;14012:1;14005:15;14039:4;14036:1;14029:15;14055:251;14125:6;14178:2;14166:9;14157:7;14153:23;14149:32;14146:52;;;14194:1;14191;14184:12;14146:52;14226:9;14220:16;14245:31;14270:5;14245:31;:::i;14311:980::-;14573:4;14621:3;14610:9;14606:19;14652:6;14641:9;14634:25;14678:2;14716:6;14711:2;14700:9;14696:18;14689:34;14759:3;14754:2;14743:9;14739:18;14732:31;14783:6;14818;14812:13;14849:6;14841;14834:22;14887:3;14876:9;14872:19;14865:26;;14926:2;14918:6;14914:15;14900:29;;14947:1;14957:195;14971:6;14968:1;14965:13;14957:195;;;15036:13;;-1:-1:-1;;;;;15032:39:1;15020:52;;15127:15;;;;15092:12;;;;15068:1;14986:9;14957:195;;;-1:-1:-1;;;;;;;15208:32:1;;;;15203:2;15188:18;;15181:60;-1:-1:-1;;;15272:3:1;15257:19;15250:35;15169:3;14311:980;-1:-1:-1;;;14311:980:1:o

Swarm Source

ipfs://f624b215e84d1a71ccac0d24176f0e7dca30d5ec71b0a9687de2b1880d4a4dc5
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.