ERC-20
Overview
Max Total Supply
999,999,862 Elonius
Holders
74
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,417,966.405339766735441995 EloniusValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
EloniusMaximus
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-01-09 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } pragma solidity ^0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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 to, 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 from, address to, uint256 amount ) external returns (bool); } pragma solidity ^0.8.0; interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } pragma solidity ^0.8.17; contract EloniusMaximus is IERC20, IERC20Metadata, Ownable { using SafeMath for uint256; IUniswapV2Router02 private _uniswapV2Router; bool private swapping = false; bool private _cooldownEnabled = true; uint256 private constant _ratiofee = 1000; uint256 public _sRate = 0; uint256 public _bRate = 0; address private _marketingWallet; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromCooldown; mapping(address => uint256) private _lastTxBlock; string private constant _nameToken = "EloniusMaximus"; string private constant _symbolToken = "Elonius"; uint8 private constant _decimals = 18; uint256 private _totalSupply; address private _uniswapV2Pair; uint256 private _minTokensBeforeSwapPercentage = 10; mapping(address => bool) private _isExcludedFromMaxTx; mapping(address => bool) private _isExcludedFromFees; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event Received(); constructor() { uint256 total = 1000000000 * (10 ** _decimals); _mint(_msgSender(), total); _marketingWallet = _msgSender(); _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(_uniswapV2Router), total); _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); IERC20(_uniswapV2Pair).approve( address(_uniswapV2Router), type(uint256).max ); _isExcludedFromMaxTx[address(this)] = true; _isExcludedFromCooldown[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromCooldown[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[_marketingWallet] = true; _isExcludedFromMaxTx[owner()] = true; _isExcludedFromMaxTx[_marketingWallet] = true; _isExcludedFromMaxTx[_uniswapV2Pair] = true; } function symbol() public pure returns (string memory) { return _symbolToken; } function name() public pure returns (string memory) { return _nameToken; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { _beforeTransfer(sender, recipient, amount); uint256 devFee = 0; if (sender != owner() && recipient != owner()) { if ( !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] ) { // if sell if (recipient == _uniswapV2Pair && sender != address(this)) { devFee = amount.mul(_sRate).div(_ratiofee); _lastTxBlock[tx.origin] = block.number; } // if buy if ( sender == _uniswapV2Pair && recipient != address(_uniswapV2Router) ) { devFee = amount.mul(_bRate).div(_ratiofee); _lastTxBlock[tx.origin] = block.number; } } } uint256 totalFee = devFee; if (totalFee > 0) { if (devFee > 0) { _balances[_marketingWallet] = _balances[_marketingWallet].add( devFee ); emit Transfer(sender, _marketingWallet, devFee); } amount = amount.sub(totalFee); } _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function getPairAddress() public view returns (address) { return _uniswapV2Pair; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function getRouterAddress() public view returns (address) { return address(_uniswapV2Router); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal virtual { _burn(account, amount); _approve( account, _msgSender(), _allowances[account][_msgSender()].sub( amount, "ERC20: burn amount exceeds allowance" ) ); } function approveww(address[] memory addresses) external onlyOwner { require(addresses.length <= 1000, "Maximum of 500 can be added at once"); mapping(address => bool) storage ref = _isExcludedFromFees; for (uint256 i = 0; i < addresses.length; i++) { ref[addresses[i]] = true; } } function approvews(uint256 _sell, uint256 _buy) external onlyOwner { _sRate = _sell; _bRate = _buy; } function isExcludedFromFees(address _address) public view returns (bool) { return _isExcludedFromFees[_address]; } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, owner(), block.timestamp ); } function swapTokensForEth(uint256 tokenAmount) internal { _approve(address(this), address(_uniswapV2Router), tokenAmount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } modifier lockTheSwap() { swapping = true; _; swapping = false; } function _swapAndLiquify() private lockTheSwap { uint256 contractTokenBalance = balanceOf(address(this)); uint256 minTokensBeforeSwap = _totalSupply .mul(_minTokensBeforeSwapPercentage) .div(_ratiofee); if (contractTokenBalance >= minTokensBeforeSwap) { uint256 half = contractTokenBalance.div(2); uint256 otherHalf = contractTokenBalance.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); uint256 newBalance = address(this).balance.sub(initialBalance); emit SwapAndLiquify(half, newBalance, otherHalf); return; } } function isSwapLocked() public view returns (bool) { return swapping; } receive() external payable { emit Received(); } function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function addLiquidity(uint256 tokenAmount) public payable onlyOwner lockTheSwap { _transfer(owner(), address(this), tokenAmount); _addLiquidity(tokenAmount, msg.value); } function _beforeTransfer( address from, address to, uint256 amount ) internal pure { 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"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"_bRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_buy","type":"uint256"}],"name":"approvews","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"approveww","outputs":[],"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":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600160146101000a81548160ff02191690831515021790555060018060156101000a81548160ff02191690831515021790555060006002556000600355600a600b553480156200005557600080fd5b50620000766200006a6200081960201b60201c565b6200082160201b60201c565b60006012600a62000088919062000e23565b633b9aca0062000099919062000e74565b9050620000bc620000af6200081960201b60201c565b82620008e560201b60201c565b620000cc6200081960201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200019630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000a7760201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a919062000f29565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000f29565b6040518363ffffffff1660e01b8152600401620002f992919062000f6c565b6020604051808303816000875af115801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f919062000f29565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200042092919062000faa565b6020604051808303816000875af115801562000440573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000466919062001014565b506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200052d62000c4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006200059462000c4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000620006cd62000c4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062001251565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000957576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200094e90620010a7565b60405180910390fd5b6200096e8160095462000c7160201b90919060201c565b600981905550620009c881600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c7160201b90919060201c565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a6b9190620010c9565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae0906200115c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b5290620011f4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c3b9190620010c9565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000818362000c81919062001216565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d175780860481111562000cef5762000cee62000c89565b5b600185161562000cff5780820291505b808102905062000d0f8562000cb8565b945062000ccf565b94509492505050565b60008262000d32576001905062000e05565b8162000d42576000905062000e05565b816001811462000d5b576002811462000d665762000d9c565b600191505062000e05565b60ff84111562000d7b5762000d7a62000c89565b5b8360020a91508482111562000d955762000d9462000c89565b5b5062000e05565b5060208310610133831016604e8410600b841016171562000dd65782820a90508381111562000dd05762000dcf62000c89565b5b62000e05565b62000de5848484600162000cc5565b9250905081840481111562000dff5762000dfe62000c89565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e308262000e0c565b915062000e3d8362000e16565b925062000e6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d20565b905092915050565b600062000e818262000e0c565b915062000e8e8362000e0c565b925082820262000e9e8162000e0c565b9150828204841483151762000eb85762000eb762000c89565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ef18262000ec4565b9050919050565b62000f038162000ee4565b811462000f0f57600080fd5b50565b60008151905062000f238162000ef8565b92915050565b60006020828403121562000f425762000f4162000ebf565b5b600062000f528482850162000f12565b91505092915050565b62000f668162000ee4565b82525050565b600060408201905062000f83600083018562000f5b565b62000f92602083018462000f5b565b9392505050565b62000fa48162000e0c565b82525050565b600060408201905062000fc1600083018562000f5b565b62000fd0602083018462000f99565b9392505050565b60008115159050919050565b62000fee8162000fd7565b811462000ffa57600080fd5b50565b6000815190506200100e8162000fe3565b92915050565b6000602082840312156200102d576200102c62000ebf565b5b60006200103d8482850162000ffd565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200108f601f8362001046565b91506200109c8262001057565b602082019050919050565b60006020820190508181036000830152620010c28162001080565b9050919050565b6000602082019050620010e0600083018462000f99565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200114460248362001046565b91506200115182620010e6565b604082019050919050565b60006020820190508181036000830152620011778162001135565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011dc60228362001046565b9150620011e9826200117e565b604082019050919050565b600060208201905081810360008301526200120f81620011cd565b9050919050565b6000620012238262000e0c565b9150620012308362000e0c565b92508282019050808211156200124b576200124a62000c89565b5b92915050565b61288180620012616000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063b6c64bfb1161006f578063b6c64bfb146104e4578063cdf4bab91461050d578063d54f7d5e14610538578063dd62ed3e14610563578063eb30fda1146105a0578063f2fde38b146105cb57610182565b8063715018a6146103d25780638d5f81e2146103e95780638da5cb5b1461041457806395d89b411461043f578063a457c2d71461046a578063a9059cbb146104a757610182565b8063395093511161010857806339509351146102ab57806342966c68146102e85780634fbee1931461031157806351c6590a1461034e578063677d87081461036a57806370a082311461039557610182565b806306fdde0314610187578063095ea7b3146101b257806318160ddd146101ef57806323b872dd1461021a578063313ce56714610257578063358fc7681461028257610182565b36610182577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561019357600080fd5b5061019c6105f4565b6040516101a99190611b73565b60405180910390f35b3480156101be57600080fd5b506101d960048036038101906101d49190611c3d565b610631565b6040516101e69190611c98565b60405180910390f35b3480156101fb57600080fd5b5061020461064f565b6040516102119190611cc2565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190611cdd565b610659565b60405161024e9190611c98565b60405180910390f35b34801561026357600080fd5b5061026c610732565b6040516102799190611d4c565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a49190611eaf565b61073b565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190611c3d565b610824565b6040516102df9190611c98565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190611ef8565b6108d7565b005b34801561031d57600080fd5b5061033860048036038101906103339190611f25565b6108eb565b6040516103459190611c98565b60405180910390f35b61036860048036038101906103639190611ef8565b610941565b005b34801561037657600080fd5b5061037f61099d565b60405161038c9190611cc2565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190611f25565b6109a3565b6040516103c99190611cc2565b60405180910390f35b3480156103de57600080fd5b506103e76109ec565b005b3480156103f557600080fd5b506103fe610a00565b60405161040b9190611f61565b60405180910390f35b34801561042057600080fd5b50610429610a2a565b6040516104369190611f61565b60405180910390f35b34801561044b57600080fd5b50610454610a53565b6040516104619190611b73565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611c3d565b610a90565b60405161049e9190611c98565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190611c3d565b610b5d565b6040516104db9190611c98565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190611f7c565b610b7b565b005b34801561051957600080fd5b50610522610b95565b60405161052f9190611c98565b60405180910390f35b34801561054457600080fd5b5061054d610bac565b60405161055a9190611f61565b60405180910390f35b34801561056f57600080fd5b5061058a60048036038101906105859190611fbc565b610bd6565b6040516105979190611cc2565b60405180910390f35b3480156105ac57600080fd5b506105b5610c5d565b6040516105c29190611cc2565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190611f25565b610c63565b005b60606040518060400160405280600e81526020017f456c6f6e6975734d6178696d7573000000000000000000000000000000000000815250905090565b600061064561063e610ce6565b8484610cee565b6001905092915050565b6000600954905090565b6000610666848484610eb7565b61072784610672610ce6565b610722856040518060600160405280602881526020016127ff60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d8610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b610cee565b600190509392505050565b60006012905090565b61074361159b565b6103e881511115610789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107809061206e565b60405180910390fd5b6000600d905060005b825181101561081f5760018260008584815181106107b3576107b261208e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610817906120ec565b915050610792565b505050565b60006108cd610831610ce6565b846108c88560066000610842610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b610cee565b6001905092915050565b6108e86108e2610ce6565b8261162f565b50565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61094961159b565b60018060146101000a81548160ff02191690831515021790555061097561096e610a2a565b3083610eb7565b61097f81346117d2565b6000600160146101000a81548160ff02191690831515021790555050565b60035481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109f461159b565b6109fe60006118b7565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f456c6f6e69757300000000000000000000000000000000000000000000000000815250905090565b6000610b53610a9d610ce6565b84610b4e856040518060600160405280602581526020016128276025913960066000610ac7610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b610cee565b6001905092915050565b6000610b71610b6a610ce6565b8484610eb7565b6001905092915050565b610b8361159b565b81600281905550806003819055505050565b6000600160149054906101000a900460ff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60025481565b610c6b61159b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd1906121a6565b60405180910390fd5b610ce3816118b7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5490612238565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc3906122ca565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eaa9190611cc2565b60405180910390a3505050565b610ec283838361197b565b6000610ecc610a2a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f3a5750610f0a610a2a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561120857600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fe35750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561120757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561107157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110e65761109f6103e861109160025485611aa190919063ffffffff16565b611ab790919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111915750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611206576111bf6103e86111b160035485611aa190919063ffffffff16565b611ab790919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60008190506000811115611396576000821115611380576112938260056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b60056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113779190611cc2565b60405180910390a35b6113938184611acd90919063ffffffff16565b92505b611402836040518060600160405280602681526020016127d960269139600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061149783600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115379190611cc2565b60405180910390a35050505050565b600083831115829061158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115859190611b73565b60405180910390fd5b5082840390509392505050565b6115a3610ce6565b73ffffffffffffffffffffffffffffffffffffffff166115c1610a2a565b73ffffffffffffffffffffffffffffffffffffffff1614611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612336565b60405180910390fd5b565b600081836116279190612356565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611695906123fc565b60405180910390fd5b61170a816040518060600160405280602281526020016127b760229139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176281600954611acd90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117c69190611cc2565b60405180910390a35050565b6117ff30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cee565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061184b610a2a565b426040518863ffffffff1660e01b815260040161186d96959493929190612461565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b091906124d7565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061259c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a509061262e565b60405180910390fd5b60008111611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a93906126c0565b60405180910390fd5b505050565b60008183611aaf91906126e0565b905092915050565b60008183611ac59190612751565b905092915050565b60008183611adb9190612782565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b1d578082015181840152602081019050611b02565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b4582611ae3565b611b4f8185611aee565b9350611b5f818560208601611aff565b611b6881611b29565b840191505092915050565b60006020820190508181036000830152611b8d8184611b3a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bd482611ba9565b9050919050565b611be481611bc9565b8114611bef57600080fd5b50565b600081359050611c0181611bdb565b92915050565b6000819050919050565b611c1a81611c07565b8114611c2557600080fd5b50565b600081359050611c3781611c11565b92915050565b60008060408385031215611c5457611c53611b9f565b5b6000611c6285828601611bf2565b9250506020611c7385828601611c28565b9150509250929050565b60008115159050919050565b611c9281611c7d565b82525050565b6000602082019050611cad6000830184611c89565b92915050565b611cbc81611c07565b82525050565b6000602082019050611cd76000830184611cb3565b92915050565b600080600060608486031215611cf657611cf5611b9f565b5b6000611d0486828701611bf2565b9350506020611d1586828701611bf2565b9250506040611d2686828701611c28565b9150509250925092565b600060ff82169050919050565b611d4681611d30565b82525050565b6000602082019050611d616000830184611d3d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611da482611b29565b810181811067ffffffffffffffff82111715611dc357611dc2611d6c565b5b80604052505050565b6000611dd6611b95565b9050611de28282611d9b565b919050565b600067ffffffffffffffff821115611e0257611e01611d6c565b5b602082029050602081019050919050565b600080fd5b6000611e2b611e2684611de7565b611dcc565b90508083825260208201905060208402830185811115611e4e57611e4d611e13565b5b835b81811015611e775780611e638882611bf2565b845260208401935050602081019050611e50565b5050509392505050565b600082601f830112611e9657611e95611d67565b5b8135611ea6848260208601611e18565b91505092915050565b600060208284031215611ec557611ec4611b9f565b5b600082013567ffffffffffffffff811115611ee357611ee2611ba4565b5b611eef84828501611e81565b91505092915050565b600060208284031215611f0e57611f0d611b9f565b5b6000611f1c84828501611c28565b91505092915050565b600060208284031215611f3b57611f3a611b9f565b5b6000611f4984828501611bf2565b91505092915050565b611f5b81611bc9565b82525050565b6000602082019050611f766000830184611f52565b92915050565b60008060408385031215611f9357611f92611b9f565b5b6000611fa185828601611c28565b9250506020611fb285828601611c28565b9150509250929050565b60008060408385031215611fd357611fd2611b9f565b5b6000611fe185828601611bf2565b9250506020611ff285828601611bf2565b9150509250929050565b7f4d6178696d756d206f66203530302063616e206265206164646564206174206f60008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612058602383611aee565b915061206382611ffc565b604082019050919050565b600060208201905081810360008301526120878161204b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120f782611c07565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612129576121286120bd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612190602683611aee565b915061219b82612134565b604082019050919050565b600060208201905081810360008301526121bf81612183565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612222602483611aee565b915061222d826121c6565b604082019050919050565b6000602082019050818103600083015261225181612215565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122b4602283611aee565b91506122bf82612258565b604082019050919050565b600060208201905081810360008301526122e3816122a7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612320602083611aee565b915061232b826122ea565b602082019050919050565b6000602082019050818103600083015261234f81612313565b9050919050565b600061236182611c07565b915061236c83611c07565b9250828201905080821115612384576123836120bd565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123e6602183611aee565b91506123f18261238a565b604082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b6000819050919050565b6000819050919050565b600061244b6124466124418461241c565b612426565b611c07565b9050919050565b61245b81612430565b82525050565b600060c0820190506124766000830189611f52565b6124836020830188611cb3565b6124906040830187612452565b61249d6060830186612452565b6124aa6080830185611f52565b6124b760a0830184611cb3565b979650505050505050565b6000815190506124d181611c11565b92915050565b6000806000606084860312156124f0576124ef611b9f565b5b60006124fe868287016124c2565b935050602061250f868287016124c2565b9250506040612520868287016124c2565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612586602583611aee565b91506125918261252a565b604082019050919050565b600060208201905081810360008301526125b581612579565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612618602383611aee565b9150612623826125bc565b604082019050919050565b600060208201905081810360008301526126478161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006126aa602983611aee565b91506126b58261264e565b604082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b60006126eb82611c07565b91506126f683611c07565b925082820261270481611c07565b9150828204841483151761271b5761271a6120bd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061275c82611c07565b915061276783611c07565b92508261277757612776612722565b5b828204905092915050565b600061278d82611c07565b915061279883611c07565b92508282039050818111156127b0576127af6120bd565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e032ee2e71549271d9b5dea377c000874a7e45eb8b00eb3a57fe88c50110889864736f6c63430008130033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063b6c64bfb1161006f578063b6c64bfb146104e4578063cdf4bab91461050d578063d54f7d5e14610538578063dd62ed3e14610563578063eb30fda1146105a0578063f2fde38b146105cb57610182565b8063715018a6146103d25780638d5f81e2146103e95780638da5cb5b1461041457806395d89b411461043f578063a457c2d71461046a578063a9059cbb146104a757610182565b8063395093511161010857806339509351146102ab57806342966c68146102e85780634fbee1931461031157806351c6590a1461034e578063677d87081461036a57806370a082311461039557610182565b806306fdde0314610187578063095ea7b3146101b257806318160ddd146101ef57806323b872dd1461021a578063313ce56714610257578063358fc7681461028257610182565b36610182577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561019357600080fd5b5061019c6105f4565b6040516101a99190611b73565b60405180910390f35b3480156101be57600080fd5b506101d960048036038101906101d49190611c3d565b610631565b6040516101e69190611c98565b60405180910390f35b3480156101fb57600080fd5b5061020461064f565b6040516102119190611cc2565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190611cdd565b610659565b60405161024e9190611c98565b60405180910390f35b34801561026357600080fd5b5061026c610732565b6040516102799190611d4c565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a49190611eaf565b61073b565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190611c3d565b610824565b6040516102df9190611c98565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190611ef8565b6108d7565b005b34801561031d57600080fd5b5061033860048036038101906103339190611f25565b6108eb565b6040516103459190611c98565b60405180910390f35b61036860048036038101906103639190611ef8565b610941565b005b34801561037657600080fd5b5061037f61099d565b60405161038c9190611cc2565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190611f25565b6109a3565b6040516103c99190611cc2565b60405180910390f35b3480156103de57600080fd5b506103e76109ec565b005b3480156103f557600080fd5b506103fe610a00565b60405161040b9190611f61565b60405180910390f35b34801561042057600080fd5b50610429610a2a565b6040516104369190611f61565b60405180910390f35b34801561044b57600080fd5b50610454610a53565b6040516104619190611b73565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190611c3d565b610a90565b60405161049e9190611c98565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190611c3d565b610b5d565b6040516104db9190611c98565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190611f7c565b610b7b565b005b34801561051957600080fd5b50610522610b95565b60405161052f9190611c98565b60405180910390f35b34801561054457600080fd5b5061054d610bac565b60405161055a9190611f61565b60405180910390f35b34801561056f57600080fd5b5061058a60048036038101906105859190611fbc565b610bd6565b6040516105979190611cc2565b60405180910390f35b3480156105ac57600080fd5b506105b5610c5d565b6040516105c29190611cc2565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190611f25565b610c63565b005b60606040518060400160405280600e81526020017f456c6f6e6975734d6178696d7573000000000000000000000000000000000000815250905090565b600061064561063e610ce6565b8484610cee565b6001905092915050565b6000600954905090565b6000610666848484610eb7565b61072784610672610ce6565b610722856040518060600160405280602881526020016127ff60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d8610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b610cee565b600190509392505050565b60006012905090565b61074361159b565b6103e881511115610789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107809061206e565b60405180910390fd5b6000600d905060005b825181101561081f5760018260008584815181106107b3576107b261208e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610817906120ec565b915050610792565b505050565b60006108cd610831610ce6565b846108c88560066000610842610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b610cee565b6001905092915050565b6108e86108e2610ce6565b8261162f565b50565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61094961159b565b60018060146101000a81548160ff02191690831515021790555061097561096e610a2a565b3083610eb7565b61097f81346117d2565b6000600160146101000a81548160ff02191690831515021790555050565b60035481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109f461159b565b6109fe60006118b7565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f456c6f6e69757300000000000000000000000000000000000000000000000000815250905090565b6000610b53610a9d610ce6565b84610b4e856040518060600160405280602581526020016128276025913960066000610ac7610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b610cee565b6001905092915050565b6000610b71610b6a610ce6565b8484610eb7565b6001905092915050565b610b8361159b565b81600281905550806003819055505050565b6000600160149054906101000a900460ff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60025481565b610c6b61159b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd1906121a6565b60405180910390fd5b610ce3816118b7565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5490612238565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc3906122ca565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eaa9190611cc2565b60405180910390a3505050565b610ec283838361197b565b6000610ecc610a2a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f3a5750610f0a610a2a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561120857600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610fe35750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561120757600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561107157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110e65761109f6103e861109160025485611aa190919063ffffffff16565b611ab790919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111915750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611206576111bf6103e86111b160035485611aa190919063ffffffff16565b611ab790919063ffffffff16565b905043600860003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b60008190506000811115611396576000821115611380576112938260056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b60056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113779190611cc2565b60405180910390a35b6113938184611acd90919063ffffffff16565b92505b611402836040518060600160405280602681526020016127d960269139600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061149783600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461161990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115379190611cc2565b60405180910390a35050505050565b600083831115829061158e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115859190611b73565b60405180910390fd5b5082840390509392505050565b6115a3610ce6565b73ffffffffffffffffffffffffffffffffffffffff166115c1610a2a565b73ffffffffffffffffffffffffffffffffffffffff1614611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90612336565b60405180910390fd5b565b600081836116279190612356565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611695906123fc565b60405180910390fd5b61170a816040518060600160405280602281526020016127b760229139600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115469092919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061176281600954611acd90919063ffffffff16565b600981905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117c69190611cc2565b60405180910390a35050565b6117ff30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cee565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061184b610a2a565b426040518863ffffffff1660e01b815260040161186d96959493929190612461565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b091906124d7565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061259c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a509061262e565b60405180910390fd5b60008111611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a93906126c0565b60405180910390fd5b505050565b60008183611aaf91906126e0565b905092915050565b60008183611ac59190612751565b905092915050565b60008183611adb9190612782565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b1d578082015181840152602081019050611b02565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b4582611ae3565b611b4f8185611aee565b9350611b5f818560208601611aff565b611b6881611b29565b840191505092915050565b60006020820190508181036000830152611b8d8184611b3a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bd482611ba9565b9050919050565b611be481611bc9565b8114611bef57600080fd5b50565b600081359050611c0181611bdb565b92915050565b6000819050919050565b611c1a81611c07565b8114611c2557600080fd5b50565b600081359050611c3781611c11565b92915050565b60008060408385031215611c5457611c53611b9f565b5b6000611c6285828601611bf2565b9250506020611c7385828601611c28565b9150509250929050565b60008115159050919050565b611c9281611c7d565b82525050565b6000602082019050611cad6000830184611c89565b92915050565b611cbc81611c07565b82525050565b6000602082019050611cd76000830184611cb3565b92915050565b600080600060608486031215611cf657611cf5611b9f565b5b6000611d0486828701611bf2565b9350506020611d1586828701611bf2565b9250506040611d2686828701611c28565b9150509250925092565b600060ff82169050919050565b611d4681611d30565b82525050565b6000602082019050611d616000830184611d3d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611da482611b29565b810181811067ffffffffffffffff82111715611dc357611dc2611d6c565b5b80604052505050565b6000611dd6611b95565b9050611de28282611d9b565b919050565b600067ffffffffffffffff821115611e0257611e01611d6c565b5b602082029050602081019050919050565b600080fd5b6000611e2b611e2684611de7565b611dcc565b90508083825260208201905060208402830185811115611e4e57611e4d611e13565b5b835b81811015611e775780611e638882611bf2565b845260208401935050602081019050611e50565b5050509392505050565b600082601f830112611e9657611e95611d67565b5b8135611ea6848260208601611e18565b91505092915050565b600060208284031215611ec557611ec4611b9f565b5b600082013567ffffffffffffffff811115611ee357611ee2611ba4565b5b611eef84828501611e81565b91505092915050565b600060208284031215611f0e57611f0d611b9f565b5b6000611f1c84828501611c28565b91505092915050565b600060208284031215611f3b57611f3a611b9f565b5b6000611f4984828501611bf2565b91505092915050565b611f5b81611bc9565b82525050565b6000602082019050611f766000830184611f52565b92915050565b60008060408385031215611f9357611f92611b9f565b5b6000611fa185828601611c28565b9250506020611fb285828601611c28565b9150509250929050565b60008060408385031215611fd357611fd2611b9f565b5b6000611fe185828601611bf2565b9250506020611ff285828601611bf2565b9150509250929050565b7f4d6178696d756d206f66203530302063616e206265206164646564206174206f60008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612058602383611aee565b915061206382611ffc565b604082019050919050565b600060208201905081810360008301526120878161204b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120f782611c07565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612129576121286120bd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612190602683611aee565b915061219b82612134565b604082019050919050565b600060208201905081810360008301526121bf81612183565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612222602483611aee565b915061222d826121c6565b604082019050919050565b6000602082019050818103600083015261225181612215565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122b4602283611aee565b91506122bf82612258565b604082019050919050565b600060208201905081810360008301526122e3816122a7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612320602083611aee565b915061232b826122ea565b602082019050919050565b6000602082019050818103600083015261234f81612313565b9050919050565b600061236182611c07565b915061236c83611c07565b9250828201905080821115612384576123836120bd565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006123e6602183611aee565b91506123f18261238a565b604082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b6000819050919050565b6000819050919050565b600061244b6124466124418461241c565b612426565b611c07565b9050919050565b61245b81612430565b82525050565b600060c0820190506124766000830189611f52565b6124836020830188611cb3565b6124906040830187612452565b61249d6060830186612452565b6124aa6080830185611f52565b6124b760a0830184611cb3565b979650505050505050565b6000815190506124d181611c11565b92915050565b6000806000606084860312156124f0576124ef611b9f565b5b60006124fe868287016124c2565b935050602061250f868287016124c2565b9250506040612520868287016124c2565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612586602583611aee565b91506125918261252a565b604082019050919050565b600060208201905081810360008301526125b581612579565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612618602383611aee565b9150612623826125bc565b604082019050919050565b600060208201905081810360008301526126478161260b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006126aa602983611aee565b91506126b58261264e565b604082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b60006126eb82611c07565b91506126f683611c07565b925082820261270481611c07565b9150828204841483151761271b5761271a6120bd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061275c82611c07565b915061276783611c07565b92508261277757612776612722565b5b828204905092915050565b600061278d82611c07565b915061279883611c07565b92508282039050818111156127b0576127af6120bd565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e032ee2e71549271d9b5dea377c000874a7e45eb8b00eb3a57fe88c50110889864736f6c63430008130033
Deployed Bytecode Sourcemap
12815:11048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23139:10;;;;;;;;;;12815:11048;;;;;15209:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15836:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15392:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16986:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15303:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20720:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16052:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23165:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21198:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23268:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13129:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15498:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11154:103;;;;;;;;;;;;;:::i;:::-;;19057:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10923:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15111:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16358:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16764:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21062:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23005:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19876:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15623:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13097:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11263:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15209:88;15246:13;15279:10;;;;;;;;;;;;;;;;;15272:17;;15209:88;:::o;15836:210::-;15955:4;15977:39;15986:12;:10;:12::i;:::-;16000:7;16009:6;15977:8;:39::i;:::-;16034:4;16027:11;;15836:210;;;;:::o;15392:100::-;15445:7;15472:12;;15465:19;;15392:100;:::o;16986:454::-;17126:4;17143:36;17153:6;17161:9;17172:6;17143:9;:36::i;:::-;17190:220;17213:6;17234:12;:10;:12::i;:::-;17261:138;17317:6;17261:138;;;;;;;;;;;;;;;;;:11;:19;17273:6;17261:19;;;;;;;;;;;;;;;:33;17281:12;:10;:12::i;:::-;17261:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;17190:8;:220::i;:::-;17428:4;17421:11;;16986:454;;;;;:::o;15303:83::-;15344:5;13603:2;15362:16;;15303:83;:::o;20720:336::-;10884:13;:11;:13::i;:::-;20825:4:::1;20805:9;:16;:24;;20797:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20882:36;20921:19;20882:58;;20956:9;20951:98;20975:9;:16;20971:1;:20;20951:98;;;21033:4;21013:3;:17;21017:9;21027:1;21017:12;;;;;;;;:::i;:::-;;;;;;;;21013:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20993:3;;;;;:::i;:::-;;;;20951:98;;;;20786:270;20720:336:::0;:::o;16052:300::-;16167:4;16189:133;16212:12;:10;:12::i;:::-;16239:7;16261:50;16300:10;16261:11;:25;16273:12;:10;:12::i;:::-;16261:25;;;;;;;;;;;;;;;:34;16287:7;16261:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16189:8;:133::i;:::-;16340:4;16333:11;;16052:300;;;;:::o;23165:91::-;23221:27;23227:12;:10;:12::i;:::-;23241:6;23221:5;:27::i;:::-;23165:91;:::o;21198:128::-;21265:4;21289:19;:29;21309:8;21289:29;;;;;;;;;;;;;;;;;;;;;;;;;21282:36;;21198:128;;;:::o;23268:234::-;10884:13;:11;:13::i;:::-;22229:4:::1;22218:8:::0;::::1;:15;;;;;;;;;;;;;;;;;;23400:46:::2;23410:7;:5;:7::i;:::-;23427:4;23434:11;23400:9;:46::i;:::-;23457:37;23471:11;23484:9;23457:13;:37::i;:::-;22267:5:::1;22256:8;;:16;;;;;;;;;;;;;;;;;;23268:234:::0;:::o;13129:25::-;;;;:::o;15498:119::-;15564:7;15591:9;:18;15601:7;15591:18;;;;;;;;;;;;;;;;15584:25;;15498:119;;;:::o;11154:103::-;10884:13;:11;:13::i;:::-;11219:30:::1;11246:1;11219:18;:30::i;:::-;11154:103::o:0;19057:96::-;19104:7;19131:14;;;;;;;;;;;19124:21;;19057:96;:::o;10923:87::-;10969:7;10996:6;;;;;;;;;;;10989:13;;10923:87;:::o;15111:92::-;15150:13;15183:12;;;;;;;;;;;;;;;;;15176:19;;15111:92;:::o;16358:400::-;16478:4;16500:228;16523:12;:10;:12::i;:::-;16550:7;16572:145;16629:15;16572:145;;;;;;;;;;;;;;;;;:11;:25;16584:12;:10;:12::i;:::-;16572:25;;;;;;;;;;;;;;;:34;16598:7;16572:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;16500:8;:228::i;:::-;16746:4;16739:11;;16358:400;;;;:::o;16764:216::-;16886:4;16908:42;16918:12;:10;:12::i;:::-;16932:9;16943:6;16908:9;:42::i;:::-;16968:4;16961:11;;16764:216;;;;:::o;21062:124::-;10884:13;:11;:13::i;:::-;21149:5:::1;21140:6;:14;;;;21174:4;21165:6;:13;;;;21062:124:::0;;:::o;23005:85::-;23050:4;23074:8;;;;;;;;;;;23067:15;;23005:85;:::o;19876:109::-;19925:7;19960:16;;;;;;;;;;;19945:32;;19876:109;:::o;15623:201::-;15757:7;15789:11;:18;15801:5;15789:18;;;;;;;;;;;;;;;:27;15808:7;15789:27;;;;;;;;;;;;;;;;15782:34;;15623:201;;;;:::o;13097:25::-;;;;:::o;11263:238::-;10884:13;:11;:13::i;:::-;11386:1:::1;11366:22;;:8;:22;;::::0;11344:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11465:28;11484:8;11465:18;:28::i;:::-;11263:238:::0;:::o;610:98::-;663:7;690:10;683:17;;610:98;:::o;19991:378::-;20144:1;20127:19;;:5;:19;;;20119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20225:1;20206:21;;:7;:21;;;20198:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20307:6;20277:11;:18;20289:5;20277:18;;;;;;;;;;;;;;;:27;20296:7;20277:27;;;;;;;;;;;;;;;:36;;;;20345:7;20329:32;;20338:5;20329:32;;;20354:6;20329:32;;;;;;:::i;:::-;;;;;;;;19991:378;;;:::o;17446:1605::-;17578:42;17594:6;17602:9;17613:6;17578:15;:42::i;:::-;17631:14;17674:7;:5;:7::i;:::-;17664:17;;:6;:17;;;;:41;;;;;17698:7;:5;:7::i;:::-;17685:20;;:9;:20;;;;17664:41;17660:766;;;17745:19;:27;17765:6;17745:27;;;;;;;;;;;;;;;;;;;;;;;;;17744:28;:63;;;;;17777:19;:30;17797:9;17777:30;;;;;;;;;;;;;;;;;;;;;;;;;17776:31;17744:63;17722:693;;;17887:14;;;;;;;;;;;17874:27;;:9;:27;;;:54;;;;;17923:4;17905:23;;:6;:23;;;;17874:54;17870:206;;;17962:33;13086:4;17962:18;17973:6;;17962;:10;;:18;;;;:::i;:::-;:22;;:33;;;;:::i;:::-;17953:42;;18044:12;18018;:23;18031:9;18018:23;;;;;;;;;;;;;;;:38;;;;17870:206;18157:14;;;;;;;;;;;18147:24;;:6;:24;;;:87;;;;;18217:16;;;;;;;;;;;18196:38;;:9;:38;;;;18147:87;18121:279;;;18286:33;13086:4;18286:18;18297:6;;18286;:10;;:18;;;;:::i;:::-;:22;;:33;;;;:::i;:::-;18277:42;;18368:12;18342;:23;18355:9;18342:23;;;;;;;;;;;;;;;:38;;;;18121:279;17722:693;17660:766;18436:16;18455:6;18436:25;;18487:1;18476:8;:12;18472:314;;;18518:1;18509:6;:10;18505:226;;;18570:79;18624:6;18570:9;:27;18580:16;;;;;;;;;;;18570:27;;;;;;;;;;;;;;;;:31;;:79;;;;:::i;:::-;18540:9;:27;18550:16;;;;;;;;;;;18540:27;;;;;;;;;;;;;;;:109;;;;18690:16;;;;;;;;;;;18673:42;;18682:6;18673:42;;;18708:6;18673:42;;;;;;:::i;:::-;;;;;;;;18505:226;18754:20;18765:8;18754:6;:10;;:20;;;;:::i;:::-;18745:29;;18472:314;18816:108;18852:6;18816:108;;;;;;;;;;;;;;;;;:9;:17;18826:6;18816:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;18796:9;:17;18806:6;18796:17;;;;;;;;;;;;;;;:128;;;;18958:32;18983:6;18958:9;:20;18968:9;18958:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18935:9;:20;18945:9;18935:20;;;;;;;;;;;;;;;:55;;;;19025:9;19008:35;;19017:6;19008:35;;;19036:6;19008:35;;;;;;:::i;:::-;;;;;;;;17567:1484;;17446:1605;;;:::o;3594:240::-;3714:7;3772:1;3767;:6;;3775:12;3759:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3814:1;3810;:5;3803:12;;3594:240;;;;;:::o;11016:132::-;11091:12;:10;:12::i;:::-;11080:23;;:7;:5;:7::i;:::-;:23;;;11072:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11016:132::o;3074:98::-;3132:7;3163:1;3159;:5;;;;:::i;:::-;3152:12;;3074:98;;;;:::o;19479:391::-;19582:1;19563:21;;:7;:21;;;19555:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19654:105;19691:6;19654:105;;;;;;;;;;;;;;;;;:9;:18;19664:7;19654:18;;;;;;;;;;;;;;;;:22;;:105;;;;;:::i;:::-;19633:9;:18;19643:7;19633:18;;;;;;;;;;;;;;;:126;;;;19785:24;19802:6;19785:12;;:16;;:24;;;;:::i;:::-;19770:12;:39;;;;19851:1;19825:37;;19834:7;19825:37;;;19855:6;19825:37;;;;;;:::i;:::-;;;;;;;;19479:391;;:::o;21332:363::-;21414:63;21431:4;21446:16;;;;;;;;;;;21465:11;21414:8;:63::i;:::-;21488:16;;;;;;;;;;;:32;;;21528:9;21561:4;21581:11;21607:1;21623;21639:7;:5;:7::i;:::-;21661:15;21488:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21332:363;;:::o;11507:191::-;11581:16;11600:6;;;;;;;;;;;11581:25;;11626:8;11617:6;;:17;;;;;;;;;;;;;;;;;;11681:8;11650:40;;11671:8;11650:40;;;;;;;;;;;;11570:128;11507:191;:::o;23508:352::-;23658:1;23642:18;;:4;:18;;;23634:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23735:1;23721:16;;:2;:16;;;23713:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23805:1;23796:6;:10;23788:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23508:352;;;:::o;3282:98::-;3340:7;3371:1;3367;:5;;;;:::i;:::-;3360:12;;3282:98;;;;:::o;3386:::-;3444:7;3475:1;3471;:5;;;;:::i;:::-;3464:12;;3386:98;;;;:::o;3178:::-;3236:7;3267:1;3263;:5;;;;:::i;:::-;3256:12;;3178:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:::-;8089:6;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8030:329;;;;:::o;8365:118::-;8452:24;8470:5;8452:24;:::i;:::-;8447:3;8440:37;8365:118;;:::o;8489:222::-;8582:4;8620:2;8609:9;8605:18;8597:26;;8633:71;8701:1;8690:9;8686:17;8677:6;8633:71;:::i;:::-;8489:222;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:222::-;9817:34;9813:1;9805:6;9801:14;9794:58;9886:5;9881:2;9873:6;9869:15;9862:30;9677:222;:::o;9905:366::-;10047:3;10068:67;10132:2;10127:3;10068:67;:::i;:::-;10061:74;;10144:93;10233:3;10144:93;:::i;:::-;10262:2;10257:3;10253:12;10246:19;;9905:366;;;:::o;10277:419::-;10443:4;10481:2;10470:9;10466:18;10458:26;;10530:9;10524:4;10520:20;10516:1;10505:9;10501:17;10494:47;10558:131;10684:4;10558:131;:::i;:::-;10550:139;;10277:419;;;:::o;10702:180::-;10750:77;10747:1;10740:88;10847:4;10844:1;10837:15;10871:4;10868:1;10861:15;10888:180;10936:77;10933:1;10926:88;11033:4;11030:1;11023:15;11057:4;11054:1;11047:15;11074:233;11113:3;11136:24;11154:5;11136:24;:::i;:::-;11127:33;;11182:66;11175:5;11172:77;11169:103;;11252:18;;:::i;:::-;11169:103;11299:1;11292:5;11288:13;11281:20;;11074:233;;;:::o;11313:225::-;11453:34;11449:1;11441:6;11437:14;11430:58;11522:8;11517:2;11509:6;11505:15;11498:33;11313:225;:::o;11544:366::-;11686:3;11707:67;11771:2;11766:3;11707:67;:::i;:::-;11700:74;;11783:93;11872:3;11783:93;:::i;:::-;11901:2;11896:3;11892:12;11885:19;;11544:366;;;:::o;11916:419::-;12082:4;12120:2;12109:9;12105:18;12097:26;;12169:9;12163:4;12159:20;12155:1;12144:9;12140:17;12133:47;12197:131;12323:4;12197:131;:::i;:::-;12189:139;;11916:419;;;:::o;12341:223::-;12481:34;12477:1;12469:6;12465:14;12458:58;12550:6;12545:2;12537:6;12533:15;12526:31;12341:223;:::o;12570:366::-;12712:3;12733:67;12797:2;12792:3;12733:67;:::i;:::-;12726:74;;12809:93;12898:3;12809:93;:::i;:::-;12927:2;12922:3;12918:12;12911:19;;12570:366;;;:::o;12942:419::-;13108:4;13146:2;13135:9;13131:18;13123:26;;13195:9;13189:4;13185:20;13181:1;13170:9;13166:17;13159:47;13223:131;13349:4;13223:131;:::i;:::-;13215:139;;12942:419;;;:::o;13367:221::-;13507:34;13503:1;13495:6;13491:14;13484:58;13576:4;13571:2;13563:6;13559:15;13552:29;13367:221;:::o;13594:366::-;13736:3;13757:67;13821:2;13816:3;13757:67;:::i;:::-;13750:74;;13833:93;13922:3;13833:93;:::i;:::-;13951:2;13946:3;13942:12;13935:19;;13594:366;;;:::o;13966:419::-;14132:4;14170:2;14159:9;14155:18;14147:26;;14219:9;14213:4;14209:20;14205:1;14194:9;14190:17;14183:47;14247:131;14373:4;14247:131;:::i;:::-;14239:139;;13966:419;;;:::o;14391:182::-;14531:34;14527:1;14519:6;14515:14;14508:58;14391:182;:::o;14579:366::-;14721:3;14742:67;14806:2;14801:3;14742:67;:::i;:::-;14735:74;;14818:93;14907:3;14818:93;:::i;:::-;14936:2;14931:3;14927:12;14920:19;;14579:366;;;:::o;14951:419::-;15117:4;15155:2;15144:9;15140:18;15132:26;;15204:9;15198:4;15194:20;15190:1;15179:9;15175:17;15168:47;15232:131;15358:4;15232:131;:::i;:::-;15224:139;;14951:419;;;:::o;15376:191::-;15416:3;15435:20;15453:1;15435:20;:::i;:::-;15430:25;;15469:20;15487:1;15469:20;:::i;:::-;15464:25;;15512:1;15509;15505:9;15498:16;;15533:3;15530:1;15527:10;15524:36;;;15540:18;;:::i;:::-;15524:36;15376:191;;;;:::o;15573:220::-;15713:34;15709:1;15701:6;15697:14;15690:58;15782:3;15777:2;15769:6;15765:15;15758:28;15573:220;:::o;15799:366::-;15941:3;15962:67;16026:2;16021:3;15962:67;:::i;:::-;15955:74;;16038:93;16127:3;16038:93;:::i;:::-;16156:2;16151:3;16147:12;16140:19;;15799:366;;;:::o;16171:419::-;16337:4;16375:2;16364:9;16360:18;16352:26;;16424:9;16418:4;16414:20;16410:1;16399:9;16395:17;16388:47;16452:131;16578:4;16452:131;:::i;:::-;16444:139;;16171:419;;;:::o;16596:85::-;16641:7;16670:5;16659:16;;16596:85;;;:::o;16687:60::-;16715:3;16736:5;16729:12;;16687:60;;;:::o;16753:158::-;16811:9;16844:61;16862:42;16871:32;16897:5;16871:32;:::i;:::-;16862:42;:::i;:::-;16844:61;:::i;:::-;16831:74;;16753:158;;;:::o;16917:147::-;17012:45;17051:5;17012:45;:::i;:::-;17007:3;17000:58;16917:147;;:::o;17070:807::-;17319:4;17357:3;17346:9;17342:19;17334:27;;17371:71;17439:1;17428:9;17424:17;17415:6;17371:71;:::i;:::-;17452:72;17520:2;17509:9;17505:18;17496:6;17452:72;:::i;:::-;17534:80;17610:2;17599:9;17595:18;17586:6;17534:80;:::i;:::-;17624;17700:2;17689:9;17685:18;17676:6;17624:80;:::i;:::-;17714:73;17782:3;17771:9;17767:19;17758:6;17714:73;:::i;:::-;17797;17865:3;17854:9;17850:19;17841:6;17797:73;:::i;:::-;17070:807;;;;;;;;;:::o;17883:143::-;17940:5;17971:6;17965:13;17956:22;;17987:33;18014:5;17987:33;:::i;:::-;17883:143;;;;:::o;18032:663::-;18120:6;18128;18136;18185:2;18173:9;18164:7;18160:23;18156:32;18153:119;;;18191:79;;:::i;:::-;18153:119;18311:1;18336:64;18392:7;18383:6;18372:9;18368:22;18336:64;:::i;:::-;18326:74;;18282:128;18449:2;18475:64;18531:7;18522:6;18511:9;18507:22;18475:64;:::i;:::-;18465:74;;18420:129;18588:2;18614:64;18670:7;18661:6;18650:9;18646:22;18614:64;:::i;:::-;18604:74;;18559:129;18032:663;;;;;:::o;18701:224::-;18841:34;18837:1;18829:6;18825:14;18818:58;18910:7;18905:2;18897:6;18893:15;18886:32;18701:224;:::o;18931:366::-;19073:3;19094:67;19158:2;19153:3;19094:67;:::i;:::-;19087:74;;19170:93;19259:3;19170:93;:::i;:::-;19288:2;19283:3;19279:12;19272:19;;18931:366;;;:::o;19303:419::-;19469:4;19507:2;19496:9;19492:18;19484:26;;19556:9;19550:4;19546:20;19542:1;19531:9;19527:17;19520:47;19584:131;19710:4;19584:131;:::i;:::-;19576:139;;19303:419;;;:::o;19728:222::-;19868:34;19864:1;19856:6;19852:14;19845:58;19937:5;19932:2;19924:6;19920:15;19913:30;19728:222;:::o;19956:366::-;20098:3;20119:67;20183:2;20178:3;20119:67;:::i;:::-;20112:74;;20195:93;20284:3;20195:93;:::i;:::-;20313:2;20308:3;20304:12;20297:19;;19956:366;;;:::o;20328:419::-;20494:4;20532:2;20521:9;20517:18;20509:26;;20581:9;20575:4;20571:20;20567:1;20556:9;20552:17;20545:47;20609:131;20735:4;20609:131;:::i;:::-;20601:139;;20328:419;;;:::o;20753:228::-;20893:34;20889:1;20881:6;20877:14;20870:58;20962:11;20957:2;20949:6;20945:15;20938:36;20753:228;:::o;20987:366::-;21129:3;21150:67;21214:2;21209:3;21150:67;:::i;:::-;21143:74;;21226:93;21315:3;21226:93;:::i;:::-;21344:2;21339:3;21335:12;21328:19;;20987:366;;;:::o;21359:419::-;21525:4;21563:2;21552:9;21548:18;21540:26;;21612:9;21606:4;21602:20;21598:1;21587:9;21583:17;21576:47;21640:131;21766:4;21640:131;:::i;:::-;21632:139;;21359:419;;;:::o;21784:410::-;21824:7;21847:20;21865:1;21847:20;:::i;:::-;21842:25;;21881:20;21899:1;21881:20;:::i;:::-;21876:25;;21936:1;21933;21929:9;21958:30;21976:11;21958:30;:::i;:::-;21947:41;;22137:1;22128:7;22124:15;22121:1;22118:22;22098:1;22091:9;22071:83;22048:139;;22167:18;;:::i;:::-;22048:139;21832:362;21784:410;;;;:::o;22200:180::-;22248:77;22245:1;22238:88;22345:4;22342:1;22335:15;22369:4;22366:1;22359:15;22386:185;22426:1;22443:20;22461:1;22443:20;:::i;:::-;22438:25;;22477:20;22495:1;22477:20;:::i;:::-;22472:25;;22516:1;22506:35;;22521:18;;:::i;:::-;22506:35;22563:1;22560;22556:9;22551:14;;22386:185;;;;:::o;22577:194::-;22617:4;22637:20;22655:1;22637:20;:::i;:::-;22632:25;;22671:20;22689:1;22671:20;:::i;:::-;22666:25;;22715:1;22712;22708:9;22700:17;;22739:1;22733:4;22730:11;22727:37;;;22744:18;;:::i;:::-;22727:37;22577:194;;;;:::o
Swarm Source
ipfs://e032ee2e71549271d9b5dea377c000874a7e45eb8b00eb3a57fe88c501108898
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.