ERC-20
Overview
Max Total Supply
500,000,000,000,000 XPRO
Holders
89
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,720,237,346,621.508957576 XPROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
XPRO
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-28 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0xdead)); _owner = address(0xdead); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract XPRO is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "XPRO"; string private _symbol = "XPRO"; uint8 private _decimals = 9; bool public isLaunch = false; address payable public marketingWalletAddress = payable(0x0d3097bf1fcb28cb40a452B438A0ca0785D0A238); address payable public teamWalletAddress = payable(0x0d3097bf1fcb28cb40a452B438A0ca0785D0A238); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 1; uint256 public _buyTeamFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 1; uint256 public _sellTeamFee = 0; uint256 public _sellReserveFee = 0; uint256 public _liquidityShare = 0; uint256 public _marketingShare = 100; uint256 public _teamShare = 0; uint256 public _totalTaxIfBuying = 1; uint256 public _totalTaxIfSelling = 1; uint256 public _totalDistributionShares = 2; uint256 private _totalSupply = 500000000000000 * 10**_decimals; uint256 public _maxTxAmount = 5000000000000 * 10**_decimals; uint256 public _walletMax = 5000000000000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 500000000000 * 5 **_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee); _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view 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 override returns (uint256) { return _allowances[owner][spender]; } 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 minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function Launch() public onlyOwner { isLaunch = true; } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setTeamWalletAddress(address newAddress) external onlyOwner() { teamWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient] && _sellReserveFee > 0) { uint _sellReserveFeeAmount = amount.div(100).mul(_sellReserveFee); amount = amount.sub(_sellReserveFeeAmount); } if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount; if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { finalAmount = amount; } else { require(isLaunch, "Swap not open"); finalAmount = takeFee(sender, recipient, amount); } if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2); uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam); if(amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if(amountBNBTeam > 0) transferToAddressETH(teamWalletAddress, amountBNBTeam); if(amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
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":[{"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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellReserveFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600460a0908152635850524f60e01b60c052600390620000259082620006ba565b50604080518082019091526004808252635850524f60e01b6020830152906200004f9082620006ba565b5060058054750d3097bf1fcb28cb40a452b438a0ca0785d0a23800096001600160b01b0319909116179055600680546001600160a01b031916730d3097bf1fcb28cb40a452b438a0ca0785d0a23817905561dead6080525f600d8190556001600e819055600f82905560108290556011819055601282905560138290556014829055606460155560169190915560178190556018556002601955620000f76009600a6200088f565b6200010a906601c6bf52634000620008a6565b601a55600554620001209060ff16600a6200088f565b620001329065048c27395000620008a6565b601b55600554620001489060ff16600a6200088f565b6200015a9065048c27395000620008a6565b601c5560058054620001729160ff909116906200088f565b620001839064746a528800620008a6565b601d55601f805462ffffff60a81b19166201000160a81b179055348015620001a9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002659190620008c0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d79190620008c0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000322573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003489190620008c0565b601f80546001600160a01b039283166001600160a01b031991821617909155601e80549284169290911682179055601a54305f90815260086020908152604080832094835293905291822055600190600990620003ac5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526009909252902080549091166001179055600f54600e54600d546200040d9291620004069190620005ac565b90620005ac565b6017556012546011546010546200042b9291620004069190620005ac565b601855601654601554601454620004499291620004069190620005ac565b6019556001600a5f620004635f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601f549091168152600a90925280822080548416600190811790915530835290822080549093168117909255600b90620004d15f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600b8452828120805486166001908117909155601f549092168152600c909352908220805490931617909155601a54906007906200053c3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a546040516200059d91815260200190565b60405180910390a350620008fe565b5f80620005ba8385620008e8565b905083811015620006115760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200064357607f821691505b6020821081036200066257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620006b5575f81815260208120601f850160051c81016020861015620006905750805b601f850160051c820191505b81811015620006b1578281556001016200069c565b5050505b505050565b81516001600160401b03811115620006d657620006d66200061a565b620006ee81620006e784546200062e565b8462000668565b602080601f83116001811462000724575f84156200070c5750858301515b5f19600386901b1c1916600185901b178555620006b1565b5f85815260208120601f198616915b82811015620007545788860151825594840194600190910190840162000733565b50858210156200077257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620007d657815f1904821115620007ba57620007ba62000782565b80851615620007c857918102915b93841c93908002906200079b565b509250929050565b5f82620007ee5750600162000614565b81620007fc57505f62000614565b8160018114620008155760028114620008205762000840565b600191505062000614565b60ff84111562000834576200083462000782565b50506001821b62000614565b5060208310610133831016604e8410600b841016171562000865575081810a62000614565b62000871838362000796565b805f190482111562000887576200088762000782565b029392505050565b5f6200089f60ff841683620007de565b9392505050565b808202811582820484141762000614576200061462000782565b5f60208284031215620008d1575f80fd5b81516001600160a01b038116811462000611575f80fd5b8082018082111562000614576200061462000782565b6080516127c5620009255f395f81816104fc01528181610cf0015261233801526127c55ff3fe6080604052600436106103a0575f3560e01c80638b42507f116101de578063c860795211610108578063ec28438a1161009d578063f2fde38b1161006d578063f2fde38b14610a86578063f5d588f514610aa5578063f84ba65d14610ac3578063f872858a14610ae2575f80fd5b8063ec28438a14610a14578063ef422a1814610a33578063f0cd1dac14610a52578063f1d5f51714610a67575f80fd5b8063da00097d116100d8578063da00097d1461097c578063dc44b6a01461099c578063dd467064146109b1578063dd62ed3e146109d0575f80fd5b8063c8607952146108ff578063c867d60b14610914578063cab0347114610942578063d158272d14610957575f80fd5b8063a5d69d1f1161017e578063c469b6dd1161014e578063c469b6dd14610897578063c49b9a80146108ac578063c5d24189146108cb578063c816841b146108e0575f80fd5b8063a5d69d1f14610830578063a69df4b51461084f578063a83f53a714610863578063a9059cbb14610878575f80fd5b806395d89b41116101b957806395d89b41146107d4578063a073d37f146107e8578063a08e671f146107fc578063a457c2d714610811575f80fd5b80638b42507f146107765780638da5cb5b146107a4578063914eb66a146107c0575f80fd5b80633ecad271116102ca578063602bc62b1161025f578063807c2d9c1161022f578063807c2d9c1461071857806382eefb431461072d578063844d591c1461074257806388790a6814610761575f80fd5b8063602bc62b146106a657806361a23c69146106ba57806370a08231146106cf5780637d1db4a514610703575f80fd5b806355724fc21161029a57806355724fc21461064b578063557ed1ba1461066057806357a5802f146106725780635881f3ef14610687575f80fd5b80633ecad271146105b05780634a74bb02146105de5780634cb80fd5146105fe5780635342acb41461061d575f80fd5b806323b872dd116103405780632c4b2334116103105780632c4b233414610532578063313ce5671461055157806339509351146105725780633b97084a14610591575f80fd5b806323b872dd146104ad5780632563ae83146104cc57806327c8f835146104eb5780632b112e491461051e575f80fd5b80631245e3471161037b5780631245e3471461041a5780631694505e1461045157806318160ddd146104705780632198cf6c1461048e575f80fd5b806302ac8168146103ab57806306fdde03146103c1578063095ea7b3146103eb575f80fd5b366103a757005b5f80fd5b3480156103b6575f80fd5b506103bf610b02565b005b3480156103cc575f80fd5b506103d5610b45565b6040516103e291906123bb565b60405180910390f35b3480156103f6575f80fd5b5061040a61040536600461241d565b610bd5565b60405190151581526020016103e2565b348015610425575f80fd5b50600654610439906001600160a01b031681565b6040516001600160a01b0390911681526020016103e2565b34801561045c575f80fd5b50601e54610439906001600160a01b031681565b34801561047b575f80fd5b50601a545b6040519081526020016103e2565b348015610499575f80fd5b506103bf6104a836600461245b565b610beb565b3480156104b8575f80fd5b5061040a6104c736600461248e565b610c3e565b3480156104d7575f80fd5b506103bf6104e63660046124cc565b610ca7565b3480156104f6575f80fd5b506104397f000000000000000000000000000000000000000000000000000000000000000081565b348015610529575f80fd5b50610480610cee565b34801561053d575f80fd5b506103bf61054c3660046124e5565b610d37565b34801561055c575f80fd5b5060055460405160ff90911681526020016103e2565b34801561057d575f80fd5b5061040a61058c36600461241d565b610d82565b34801561059c575f80fd5b506103bf6105ab366004612500565b610db7565b3480156105bb575f80fd5b5061040a6105ca3660046124e5565b600c6020525f908152604090205460ff1681565b3480156105e9575f80fd5b50601f5461040a90600160a81b900460ff1681565b348015610609575f80fd5b506103bf6106183660046124e5565b610de5565b348015610628575f80fd5b5061040a6106373660046124e5565b60096020525f908152604090205460ff1681565b348015610656575f80fd5b5061048060135481565b34801561066b575f80fd5b5042610480565b34801561067d575f80fd5b5061048060145481565b348015610692575f80fd5b506104396106a13660046124e5565b610e38565b3480156106b1575f80fd5b50600254610480565b3480156106c5575f80fd5b5061048060155481565b3480156106da575f80fd5b506104806106e93660046124e5565b6001600160a01b03165f9081526007602052604090205490565b34801561070e575f80fd5b50610480601b5481565b348015610723575f80fd5b50610480601c5481565b348015610738575f80fd5b5061048060185481565b34801561074d575f80fd5b506103bf61075c36600461245b565b611160565b34801561076c575f80fd5b5061048060105481565b348015610781575f80fd5b5061040a6107903660046124e5565b600b6020525f908152604090205460ff1681565b3480156107af575f80fd5b505f546001600160a01b0316610439565b3480156107cb575f80fd5b506103bf6111b3565b3480156107df575f80fd5b506103d5611217565b3480156107f3575f80fd5b50601d54610480565b348015610807575f80fd5b5061048060195481565b34801561081c575f80fd5b5061040a61082b36600461241d565b611226565b34801561083b575f80fd5b506103bf61084a3660046124cc565b611273565b34801561085a575f80fd5b506103bf6112ba565b34801561086e575f80fd5b5061048060165481565b348015610883575f80fd5b5061040a61089236600461241d565b6113bd565b3480156108a2575f80fd5b50610480600f5481565b3480156108b7575f80fd5b506103bf6108c63660046124cc565b6113c9565b3480156108d6575f80fd5b50610480600e5481565b3480156108eb575f80fd5b50601f54610439906001600160a01b031681565b34801561090a575f80fd5b5061048060115481565b34801561091f575f80fd5b5061040a61092e3660046124e5565b600a6020525f908152604090205460ff1681565b34801561094d575f80fd5b5061048060125481565b348015610962575f80fd5b50600554610439906201000090046001600160a01b031681565b348015610987575f80fd5b50601f5461040a90600160b01b900460ff1681565b3480156109a7575f80fd5b50610480600d5481565b3480156109bc575f80fd5b506103bf6109cb366004612500565b61144a565b3480156109db575f80fd5b506104806109ea366004612517565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610a1f575f80fd5b506103bf610a2e366004612500565b6114cb565b348015610a3e575f80fd5b506103bf610a4d36600461245b565b6114f9565b348015610a5d575f80fd5b5061048060175481565b348015610a72575f80fd5b506103bf610a81366004612500565b61154c565b348015610a91575f80fd5b506103bf610aa03660046124e5565b61157a565b348015610ab0575f80fd5b5060055461040a90610100900460ff1681565b348015610ace575f80fd5b506103bf610add36600461245b565b61164e565b348015610aed575f80fd5b50601f5461040a90600160b81b900460ff1681565b5f546001600160a01b03163314610b345760405162461bcd60e51b8152600401610b2b9061254e565b60405180910390fd5b6005805461ff001916610100179055565b606060038054610b5490612583565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612583565b8015610bcb5780601f10610ba257610100808354040283529160200191610bcb565b820191905f5260205f20905b815481529060010190602001808311610bae57829003601f168201915b5050505050905090565b5f610be13384846116a1565b5060015b92915050565b5f546001600160a01b03163314610c145760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f610c4a8484846117c4565b50610c9c8433610c9785604051806060016040528060288152602001612723602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190611c50565b6116a1565b5060015b9392505050565b5f546001600160a01b03163314610cd05760405162461bcd60e51b8152600401610b2b9061254e565b601f8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f90815260076020526040812054601a54610d3291611c88565b905090565b5f546001600160a01b03163314610d605760405162461bcd60e51b8152600401610b2b9061254e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526008602090815260408083206001600160a01b03871684529091528120549091610be1918590610c979086611cc9565b5f546001600160a01b03163314610de05760405162461bcd60e51b8152600401610b2b9061254e565b601d55565b5f546001600160a01b03163314610e0e5760405162461bcd60e51b8152600401610b2b9061254e565b600580546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b5f80546001600160a01b03163314610e625760405162461bcd60e51b8152600401610b2b9061254e565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec691906125bb565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3591906125bb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa291906125bb565b91506001600160a01b0382166110f257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101291906125bb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108191906125bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ef91906125bb565b91505b601f80546001600160a01b03199081166001600160a01b038581169182178455601e8054909316948116949094179091555f908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b5f546001600160a01b031633146111895760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146111dc5760405162461bcd60e51b8152600401610b2b9061254e565b5f805460405161dead926001600160a01b03909216915f8051602061274b83398151915291a35f80546001600160a01b03191661dead179055565b606060048054610b5490612583565b5f610be13384610c978560405180606001604052806025815260200161276b60259139335f9081526008602090815260408083206001600160a01b038d1684529091529020549190611c50565b5f546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610b2b9061254e565b601f8054911515600160b01b0260ff60b01b19909216919091179055565b6001546001600160a01b031633146113205760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b2b565b60025442116113715760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610b2b565b6001545f80546040516001600160a01b0393841693909116915f8051602061274b83398151915291a36001545f80546001600160a01b0319166001600160a01b03909216919091179055565b5f610c9c3384846117c4565b5f546001600160a01b031633146113f25760405162461bcd60e51b8152600401610b2b9061254e565b601f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061143f90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146114735760405162461bcd60e51b8152600401610b2b9061254e565b5f8054600180546001600160a01b03199081166001600160a01b038416179091551690556114a181426125ea565b6002555f80546040516001600160a01b03909116905f8051602061274b833981519152908390a350565b5f546001600160a01b031633146114f45760405162461bcd60e51b8152600401610b2b9061254e565b601b55565b5f546001600160a01b031633146115225760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146115755760405162461bcd60e51b8152600401610b2b9061254e565b601c55565b5f546001600160a01b031633146115a35760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b0381166116085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b2b565b5f80546040516001600160a01b03808516939216915f8051602061274b83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146116775760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166117035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b2b565b6001600160a01b0382166117645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b2b565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166118295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b2b565b6001600160a01b03831661188b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b2b565b601f54600160a01b900460ff16156118af576118a8848484611d27565b9050610ca0565b6001600160a01b0384165f9081526009602052604090205460ff161580156118ef57506001600160a01b0383165f9081526009602052604090205460ff16155b80156118fc57505f601354115b1561192b576013545f9061191b90611915856064611e0a565b90611e4b565b90506119278382611c88565b9250505b6001600160a01b0384165f908152600b602052604090205460ff1615801561196b57506001600160a01b0383165f908152600b602052604090205460ff16155b156119d357601b548211156119d35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b2b565b305f90815260076020526040902054601d5481108015908190611a005750601f54600160a01b900460ff16155b8015611a2457506001600160a01b0386165f908152600c602052604090205460ff16155b8015611a395750601f54600160a81b900460ff165b15611a5f57601f54600160b01b900460ff1615611a5657601d5491505b611a5f82611ec9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260079091529190912054611ab0918690611c50565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff1680611afb57506001600160a01b0386165f9081526009602052604090205460ff165b15611b07575083611b5c565b600554610100900460ff16611b4e5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b6044820152606401610b2b565b611b59878787611ffd565b90505b601f54600160b81b900460ff168015611b8d57506001600160a01b0386165f908152600a602052604090205460ff16155b15611bc757601c54611bbd82611bb7896001600160a01b03165f9081526007602052604090205490565b90611cc9565b1115611bc7575f80fd5b6001600160a01b0386165f90815260076020526040902054611be99082611cc9565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c3c9085815260200190565b60405180910390a360019350505050610ca0565b5f8184841115611c735760405162461bcd60e51b8152600401610b2b91906123bb565b505f611c7f84866125fd565b95945050505050565b5f610ca083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c50565b5f80611cd583856125ea565b905083811015610ca05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b2b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600790915291822054611d77918490611c50565b6001600160a01b038086165f908152600760205260408082209390935590851681522054611da59083611cc9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df89086815260200190565b60405180910390a35060019392505050565b5f610ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ff565b5f825f03611e5a57505f610be5565b5f611e658385612610565b905082611e728583612627565b14610ca05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b2b565b601f805460ff60a01b1916600160a01b1790556019546014545f91611efe91600291611ef89182908790611e4b565b90611e0a565b90505f611f0b8383611c88565b9050611f168161212b565b60145447905f90611f3590611f2c906002611e0a565b60195490611c88565b90505f611f566002611ef884611ef860145488611e4b90919063ffffffff16565b90505f611f7283611ef860165487611e4b90919063ffffffff16565b90505f611f8982611f838786611c88565b90611c88565b90508015611fad57600554611fad906201000090046001600160a01b0316826122b4565b8115611fc957600654611fc9906001600160a01b0316836122b4565b5f83118015611fd757505f87115b15611fe657611fe687846122ec565b5050601f805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600c6020526040812054819060ff1615612040576120396064611ef860175486611e4b90919063ffffffff16565b905061207d565b6001600160a01b0384165f908152600c602052604090205460ff161561207d5761207a6064611ef860185486611e4b90919063ffffffff16565b90505b80156120f557305f9081526007602052604090205461209c9082611cc9565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120ec9085815260200190565b60405180910390a35b611c7f8382611c88565b5f818361211f5760405162461bcd60e51b8152600401610b2b91906123bb565b505f611c7f8486612627565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061215e5761215e612646565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d991906125bb565b816001815181106121ec576121ec612646565b6001600160a01b039283166020918202929092010152601e5461221291309116846116a1565b601e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061224a9085905f9086903090429060040161269c565b5f604051808303815f87803b158015612261575f80fd5b505af1158015612273573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122a89291906126d7565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156122e7573d5f803e3d5ffd5b505050565b601e546123049030906001600160a01b0316846116a1565b601e5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af115801561238f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123b491906126f7565b5050505050565b5f6020808352835180828501525f5b818110156123e6578581018301518582016040015282016123ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461241a575f80fd5b50565b5f806040838503121561242e575f80fd5b823561243981612406565b946020939093013593505050565b80358015158114612456575f80fd5b919050565b5f806040838503121561246c575f80fd5b823561247781612406565b915061248560208401612447565b90509250929050565b5f805f606084860312156124a0575f80fd5b83356124ab81612406565b925060208401356124bb81612406565b929592945050506040919091013590565b5f602082840312156124dc575f80fd5b610ca082612447565b5f602082840312156124f5575f80fd5b8135610ca081612406565b5f60208284031215612510575f80fd5b5035919050565b5f8060408385031215612528575f80fd5b823561253381612406565b9150602083013561254381612406565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061259757607f821691505b6020821081036125b557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156125cb575f80fd5b8151610ca081612406565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610be557610be56125d6565b81810381811115610be557610be56125d6565b8082028115828204841417610be557610be56125d6565b5f8261264157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156126915781516001600160a01b03168752958201959082019060010161266c565b509495945050505050565b85815284602082015260a060408201525f6126ba60a083018661265a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6126ef604083018461265a565b949350505050565b5f805f60608486031215612709575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a22258aab0a50a7b71205f372168800e797945703271972565e1ddaa414acda664736f6c63430008150033
Deployed Bytecode
0x6080604052600436106103a0575f3560e01c80638b42507f116101de578063c860795211610108578063ec28438a1161009d578063f2fde38b1161006d578063f2fde38b14610a86578063f5d588f514610aa5578063f84ba65d14610ac3578063f872858a14610ae2575f80fd5b8063ec28438a14610a14578063ef422a1814610a33578063f0cd1dac14610a52578063f1d5f51714610a67575f80fd5b8063da00097d116100d8578063da00097d1461097c578063dc44b6a01461099c578063dd467064146109b1578063dd62ed3e146109d0575f80fd5b8063c8607952146108ff578063c867d60b14610914578063cab0347114610942578063d158272d14610957575f80fd5b8063a5d69d1f1161017e578063c469b6dd1161014e578063c469b6dd14610897578063c49b9a80146108ac578063c5d24189146108cb578063c816841b146108e0575f80fd5b8063a5d69d1f14610830578063a69df4b51461084f578063a83f53a714610863578063a9059cbb14610878575f80fd5b806395d89b41116101b957806395d89b41146107d4578063a073d37f146107e8578063a08e671f146107fc578063a457c2d714610811575f80fd5b80638b42507f146107765780638da5cb5b146107a4578063914eb66a146107c0575f80fd5b80633ecad271116102ca578063602bc62b1161025f578063807c2d9c1161022f578063807c2d9c1461071857806382eefb431461072d578063844d591c1461074257806388790a6814610761575f80fd5b8063602bc62b146106a657806361a23c69146106ba57806370a08231146106cf5780637d1db4a514610703575f80fd5b806355724fc21161029a57806355724fc21461064b578063557ed1ba1461066057806357a5802f146106725780635881f3ef14610687575f80fd5b80633ecad271146105b05780634a74bb02146105de5780634cb80fd5146105fe5780635342acb41461061d575f80fd5b806323b872dd116103405780632c4b2334116103105780632c4b233414610532578063313ce5671461055157806339509351146105725780633b97084a14610591575f80fd5b806323b872dd146104ad5780632563ae83146104cc57806327c8f835146104eb5780632b112e491461051e575f80fd5b80631245e3471161037b5780631245e3471461041a5780631694505e1461045157806318160ddd146104705780632198cf6c1461048e575f80fd5b806302ac8168146103ab57806306fdde03146103c1578063095ea7b3146103eb575f80fd5b366103a757005b5f80fd5b3480156103b6575f80fd5b506103bf610b02565b005b3480156103cc575f80fd5b506103d5610b45565b6040516103e291906123bb565b60405180910390f35b3480156103f6575f80fd5b5061040a61040536600461241d565b610bd5565b60405190151581526020016103e2565b348015610425575f80fd5b50600654610439906001600160a01b031681565b6040516001600160a01b0390911681526020016103e2565b34801561045c575f80fd5b50601e54610439906001600160a01b031681565b34801561047b575f80fd5b50601a545b6040519081526020016103e2565b348015610499575f80fd5b506103bf6104a836600461245b565b610beb565b3480156104b8575f80fd5b5061040a6104c736600461248e565b610c3e565b3480156104d7575f80fd5b506103bf6104e63660046124cc565b610ca7565b3480156104f6575f80fd5b506104397f000000000000000000000000000000000000000000000000000000000000dead81565b348015610529575f80fd5b50610480610cee565b34801561053d575f80fd5b506103bf61054c3660046124e5565b610d37565b34801561055c575f80fd5b5060055460405160ff90911681526020016103e2565b34801561057d575f80fd5b5061040a61058c36600461241d565b610d82565b34801561059c575f80fd5b506103bf6105ab366004612500565b610db7565b3480156105bb575f80fd5b5061040a6105ca3660046124e5565b600c6020525f908152604090205460ff1681565b3480156105e9575f80fd5b50601f5461040a90600160a81b900460ff1681565b348015610609575f80fd5b506103bf6106183660046124e5565b610de5565b348015610628575f80fd5b5061040a6106373660046124e5565b60096020525f908152604090205460ff1681565b348015610656575f80fd5b5061048060135481565b34801561066b575f80fd5b5042610480565b34801561067d575f80fd5b5061048060145481565b348015610692575f80fd5b506104396106a13660046124e5565b610e38565b3480156106b1575f80fd5b50600254610480565b3480156106c5575f80fd5b5061048060155481565b3480156106da575f80fd5b506104806106e93660046124e5565b6001600160a01b03165f9081526007602052604090205490565b34801561070e575f80fd5b50610480601b5481565b348015610723575f80fd5b50610480601c5481565b348015610738575f80fd5b5061048060185481565b34801561074d575f80fd5b506103bf61075c36600461245b565b611160565b34801561076c575f80fd5b5061048060105481565b348015610781575f80fd5b5061040a6107903660046124e5565b600b6020525f908152604090205460ff1681565b3480156107af575f80fd5b505f546001600160a01b0316610439565b3480156107cb575f80fd5b506103bf6111b3565b3480156107df575f80fd5b506103d5611217565b3480156107f3575f80fd5b50601d54610480565b348015610807575f80fd5b5061048060195481565b34801561081c575f80fd5b5061040a61082b36600461241d565b611226565b34801561083b575f80fd5b506103bf61084a3660046124cc565b611273565b34801561085a575f80fd5b506103bf6112ba565b34801561086e575f80fd5b5061048060165481565b348015610883575f80fd5b5061040a61089236600461241d565b6113bd565b3480156108a2575f80fd5b50610480600f5481565b3480156108b7575f80fd5b506103bf6108c63660046124cc565b6113c9565b3480156108d6575f80fd5b50610480600e5481565b3480156108eb575f80fd5b50601f54610439906001600160a01b031681565b34801561090a575f80fd5b5061048060115481565b34801561091f575f80fd5b5061040a61092e3660046124e5565b600a6020525f908152604090205460ff1681565b34801561094d575f80fd5b5061048060125481565b348015610962575f80fd5b50600554610439906201000090046001600160a01b031681565b348015610987575f80fd5b50601f5461040a90600160b01b900460ff1681565b3480156109a7575f80fd5b50610480600d5481565b3480156109bc575f80fd5b506103bf6109cb366004612500565b61144a565b3480156109db575f80fd5b506104806109ea366004612517565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610a1f575f80fd5b506103bf610a2e366004612500565b6114cb565b348015610a3e575f80fd5b506103bf610a4d36600461245b565b6114f9565b348015610a5d575f80fd5b5061048060175481565b348015610a72575f80fd5b506103bf610a81366004612500565b61154c565b348015610a91575f80fd5b506103bf610aa03660046124e5565b61157a565b348015610ab0575f80fd5b5060055461040a90610100900460ff1681565b348015610ace575f80fd5b506103bf610add36600461245b565b61164e565b348015610aed575f80fd5b50601f5461040a90600160b81b900460ff1681565b5f546001600160a01b03163314610b345760405162461bcd60e51b8152600401610b2b9061254e565b60405180910390fd5b6005805461ff001916610100179055565b606060038054610b5490612583565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612583565b8015610bcb5780601f10610ba257610100808354040283529160200191610bcb565b820191905f5260205f20905b815481529060010190602001808311610bae57829003601f168201915b5050505050905090565b5f610be13384846116a1565b5060015b92915050565b5f546001600160a01b03163314610c145760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f610c4a8484846117c4565b50610c9c8433610c9785604051806060016040528060288152602001612723602891396001600160a01b038a165f9081526008602090815260408083203384529091529020549190611c50565b6116a1565b5060015b9392505050565b5f546001600160a01b03163314610cd05760405162461bcd60e51b8152600401610b2b9061254e565b601f8054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f90815260076020526040812054601a54610d3291611c88565b905090565b5f546001600160a01b03163314610d605760405162461bcd60e51b8152600401610b2b9061254e565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b335f8181526008602090815260408083206001600160a01b03871684529091528120549091610be1918590610c979086611cc9565b5f546001600160a01b03163314610de05760405162461bcd60e51b8152600401610b2b9061254e565b601d55565b5f546001600160a01b03163314610e0e5760405162461bcd60e51b8152600401610b2b9061254e565b600580546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b5f80546001600160a01b03163314610e625760405162461bcd60e51b8152600401610b2b9061254e565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec691906125bb565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3591906125bb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610f7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa291906125bb565b91506001600160a01b0382166110f257806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101291906125bb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108191906125bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ef91906125bb565b91505b601f80546001600160a01b03199081166001600160a01b038581169182178455601e8054909316948116949094179091555f908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b5f546001600160a01b031633146111895760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146111dc5760405162461bcd60e51b8152600401610b2b9061254e565b5f805460405161dead926001600160a01b03909216915f8051602061274b83398151915291a35f80546001600160a01b03191661dead179055565b606060048054610b5490612583565b5f610be13384610c978560405180606001604052806025815260200161276b60259139335f9081526008602090815260408083206001600160a01b038d1684529091529020549190611c50565b5f546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610b2b9061254e565b601f8054911515600160b01b0260ff60b01b19909216919091179055565b6001546001600160a01b031633146113205760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b2b565b60025442116113715760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610b2b565b6001545f80546040516001600160a01b0393841693909116915f8051602061274b83398151915291a36001545f80546001600160a01b0319166001600160a01b03909216919091179055565b5f610c9c3384846117c4565b5f546001600160a01b031633146113f25760405162461bcd60e51b8152600401610b2b9061254e565b601f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061143f90831515815260200190565b60405180910390a150565b5f546001600160a01b031633146114735760405162461bcd60e51b8152600401610b2b9061254e565b5f8054600180546001600160a01b03199081166001600160a01b038416179091551690556114a181426125ea565b6002555f80546040516001600160a01b03909116905f8051602061274b833981519152908390a350565b5f546001600160a01b031633146114f45760405162461bcd60e51b8152600401610b2b9061254e565b601b55565b5f546001600160a01b031633146115225760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146115755760405162461bcd60e51b8152600401610b2b9061254e565b601c55565b5f546001600160a01b031633146115a35760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b0381166116085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b2b565b5f80546040516001600160a01b03808516939216915f8051602061274b83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146116775760405162461bcd60e51b8152600401610b2b9061254e565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166117035760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b2b565b6001600160a01b0382166117645760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b2b565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b0384166118295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b2b565b6001600160a01b03831661188b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b2b565b601f54600160a01b900460ff16156118af576118a8848484611d27565b9050610ca0565b6001600160a01b0384165f9081526009602052604090205460ff161580156118ef57506001600160a01b0383165f9081526009602052604090205460ff16155b80156118fc57505f601354115b1561192b576013545f9061191b90611915856064611e0a565b90611e4b565b90506119278382611c88565b9250505b6001600160a01b0384165f908152600b602052604090205460ff1615801561196b57506001600160a01b0383165f908152600b602052604090205460ff16155b156119d357601b548211156119d35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b2b565b305f90815260076020526040902054601d5481108015908190611a005750601f54600160a01b900460ff16155b8015611a2457506001600160a01b0386165f908152600c602052604090205460ff16155b8015611a395750601f54600160a81b900460ff165b15611a5f57601f54600160b01b900460ff1615611a5657601d5491505b611a5f82611ec9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260079091529190912054611ab0918690611c50565b6001600160a01b0387165f90815260076020908152604080832093909355600990529081205460ff1680611afb57506001600160a01b0386165f9081526009602052604090205460ff165b15611b07575083611b5c565b600554610100900460ff16611b4e5760405162461bcd60e51b815260206004820152600d60248201526c29bbb0b8103737ba1037b832b760991b6044820152606401610b2b565b611b59878787611ffd565b90505b601f54600160b81b900460ff168015611b8d57506001600160a01b0386165f908152600a602052604090205460ff16155b15611bc757601c54611bbd82611bb7896001600160a01b03165f9081526007602052604090205490565b90611cc9565b1115611bc7575f80fd5b6001600160a01b0386165f90815260076020526040902054611be99082611cc9565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c3c9085815260200190565b60405180910390a360019350505050610ca0565b5f8184841115611c735760405162461bcd60e51b8152600401610b2b91906123bb565b505f611c7f84866125fd565b95945050505050565b5f610ca083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c50565b5f80611cd583856125ea565b905083811015610ca05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b2b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600790915291822054611d77918490611c50565b6001600160a01b038086165f908152600760205260408082209390935590851681522054611da59083611cc9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df89086815260200190565b60405180910390a35060019392505050565b5f610ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ff565b5f825f03611e5a57505f610be5565b5f611e658385612610565b905082611e728583612627565b14610ca05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b2b565b601f805460ff60a01b1916600160a01b1790556019546014545f91611efe91600291611ef89182908790611e4b565b90611e0a565b90505f611f0b8383611c88565b9050611f168161212b565b60145447905f90611f3590611f2c906002611e0a565b60195490611c88565b90505f611f566002611ef884611ef860145488611e4b90919063ffffffff16565b90505f611f7283611ef860165487611e4b90919063ffffffff16565b90505f611f8982611f838786611c88565b90611c88565b90508015611fad57600554611fad906201000090046001600160a01b0316826122b4565b8115611fc957600654611fc9906001600160a01b0316836122b4565b5f83118015611fd757505f87115b15611fe657611fe687846122ec565b5050601f805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152600c6020526040812054819060ff1615612040576120396064611ef860175486611e4b90919063ffffffff16565b905061207d565b6001600160a01b0384165f908152600c602052604090205460ff161561207d5761207a6064611ef860185486611e4b90919063ffffffff16565b90505b80156120f557305f9081526007602052604090205461209c9082611cc9565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120ec9085815260200190565b60405180910390a35b611c7f8382611c88565b5f818361211f5760405162461bcd60e51b8152600401610b2b91906123bb565b505f611c7f8486612627565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061215e5761215e612646565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d991906125bb565b816001815181106121ec576121ec612646565b6001600160a01b039283166020918202929092010152601e5461221291309116846116a1565b601e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061224a9085905f9086903090429060040161269c565b5f604051808303815f87803b158015612261575f80fd5b505af1158015612273573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122a89291906126d7565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156122e7573d5f803e3d5ffd5b505050565b601e546123049030906001600160a01b0316846116a1565b601e5460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af115801561238f573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123b491906126f7565b5050505050565b5f6020808352835180828501525f5b818110156123e6578581018301518582016040015282016123ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461241a575f80fd5b50565b5f806040838503121561242e575f80fd5b823561243981612406565b946020939093013593505050565b80358015158114612456575f80fd5b919050565b5f806040838503121561246c575f80fd5b823561247781612406565b915061248560208401612447565b90509250929050565b5f805f606084860312156124a0575f80fd5b83356124ab81612406565b925060208401356124bb81612406565b929592945050506040919091013590565b5f602082840312156124dc575f80fd5b610ca082612447565b5f602082840312156124f5575f80fd5b8135610ca081612406565b5f60208284031215612510575f80fd5b5035919050565b5f8060408385031215612528575f80fd5b823561253381612406565b9150602083013561254381612406565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061259757607f821691505b6020821081036125b557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156125cb575f80fd5b8151610ca081612406565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610be557610be56125d6565b81810381811115610be557610be56125d6565b8082028115828204841417610be557610be56125d6565b5f8261264157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156126915781516001600160a01b03168752958201959082019060010161266c565b509495945050505050565b85815284602082015260a060408201525f6126ba60a083018661265a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6126ef604083018461265a565b949350505050565b5f805f60608486031215612709575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a22258aab0a50a7b71205f372168800e797945703271972565e1ddaa414acda664736f6c63430008150033
Deployed Bytecode Sourcemap
15016:14334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20575:69;;;;;;;;;;;;;:::i;:::-;;18767:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20061:161;;;;;;;;;;-1:-1:-1;20061:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20061:161:0;1023:187:1;15394:94:0;;;;;;;;;;-1:-1:-1;15394:94:0;;;;-1:-1:-1;;;;;15394:94:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;15394:94:0;1215:219:1;16787:41:0;;;;;;;;;;-1:-1:-1;16787:41:0;;;;-1:-1:-1;;;;;16787:41:0;;;19044:100;;;;;;;;;;-1:-1:-1;19124:12:0;;19044:100;;;1820:25:1;;;1808:2;1793:18;19044:100:0;1674:177:1;21315:135:0;;;;;;;;;;-1:-1:-1;21315:135:0;;;;;:::i;:::-;;:::i;23658:313::-;;;;;;;;;;-1:-1:-1;23658:313:0;;;;;:::i;:::-;;:::i;21194:113::-;;;;;;;;;;-1:-1:-1;21194:113:0;;;;;:::i;:::-;;:::i;15496:81::-;;;;;;;;;;;;;;;22300:128;;;;;;;;;;;;;:::i;21847:129::-;;;;;;;;;;-1:-1:-1;21847:129:0;;;;;:::i;:::-;;:::i;18953:83::-;;;;;;;;;;-1:-1:-1;19019:9:0;;18953:83;;19019:9;;;;3589:36:1;;3577:2;3562:18;18953:83:0;3447:184:1;19430:218:0;;;;;;;;;;-1:-1:-1;19430:218:0;;;;;:::i;:::-;;:::i;21568:124::-;;;;;;;;;;-1:-1:-1;21568:124:0;;;;;:::i;:::-;;:::i;15888:45::-;;;;;;;;;;-1:-1:-1;15888:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16902:40;;;;;;;;;;-1:-1:-1;16902:40:0;;;;-1:-1:-1;;;16902:40:0;;;;;;21700:139;;;;;;;;;;-1:-1:-1;21700:139:0;;;;;:::i;:::-;;:::i;15717:50::-;;;;;;;;;;-1:-1:-1;15717:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16199:34;;;;;;;;;;;;;;;;6536:90;;;;;;;;;;-1:-1:-1;6603:15:0;6536:90;;16242:34;;;;;;;;;;;;;;;;22574:807;;;;;;;;;;-1:-1:-1;22574:807:0;;;;;:::i;:::-;;:::i;6434:90::-;;;;;;;;;;-1:-1:-1;6507:9:0;;6434:90;;16283:36;;;;;;;;;;;;;;;;19152:119;;;;;;;;;;-1:-1:-1;19152:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;19245:18:0;19218:7;19245:18;;;:9;:18;;;;;;;19152:119;16572:60;;;;;;;;;;;;;;;;16640;;;;;;;;;;;;;;;;16407:37;;;;;;;;;;;;;;;;20652:129;;;;;;;;;;-1:-1:-1;20652:129:0;;;;;:::i;:::-;;:::i;16069:36::-;;;;;;;;;;;;;;;;15833:48;;;;;;;;;;-1:-1:-1;15833:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5794:79;;;;;;;;;;-1:-1:-1;5832:7:0;5859:6;-1:-1:-1;;;;;5859:6:0;5794:79;;6019:155;;;;;;;;;;;;;:::i;18858:87::-;;;;;;;;;;;;;:::i;19933:120::-;;;;;;;;;;-1:-1:-1;20022:23:0;;19933:120;;16451:43;;;;;;;;;;;;;;;;19656:269;;;;;;;;;;-1:-1:-1;19656:269:0;;;;;:::i;:::-;;:::i;22163:125::-;;;;;;;;;;-1:-1:-1;22163:125:0;;;;;:::i;:::-;;:::i;6872:305::-;;;;;;;;;;;;;:::i;16326:29::-;;;;;;;;;;;;;;;;23483:167;;;;;;;;;;-1:-1:-1;23483:167:0;;;;;:::i;:::-;;:::i;16026:30::-;;;;;;;;;;;;;;;;21984:171;;;;;;;;;;-1:-1:-1;21984:171:0;;;;;:::i;:::-;;:::i;15984:35::-;;;;;;;;;;;;;;;;16835:26;;;;;;;;;;-1:-1:-1;16835:26:0;;;;-1:-1:-1;;;;;16835:26:0;;;16112:36;;;;;;;;;;;;;;;;15774:52;;;;;;;;;;-1:-1:-1;15774:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16155:31;;;;;;;;;;;;;;;;15287:99;;;;;;;;;;-1:-1:-1;15287:99:0;;;;;;;-1:-1:-1;;;;;15287:99:0;;;16949:45;;;;;;;;;;-1:-1:-1;16949:45:0;;;;-1:-1:-1;;;16949:45:0;;;;;;15942:35;;;;;;;;;;;;;;;;6634:226;;;;;;;;;;-1:-1:-1;6634:226:0;;;;;:::i;:::-;;:::i;19279:143::-;;;;;;;;;;-1:-1:-1;19279:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;19387:18:0;;;19360:7;19387:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19279:143;21075:111;;;;;;;;;;-1:-1:-1;21075:111:0;;;;;:::i;:::-;;:::i;20928:135::-;;;;;;;;;;-1:-1:-1;20928:135:0;;;;;:::i;:::-;;:::i;16364:36::-;;;;;;;;;;;;;;;;21458:102;;;;;;;;;;-1:-1:-1;21458:102:0;;;;;:::i;:::-;;:::i;6182:244::-;;;;;;;;;;-1:-1:-1;6182:244:0;;;;;:::i;:::-;;:::i;15252:28::-;;;;;;;;;;-1:-1:-1;15252:28:0;;;;;;;;;;;20789:127;;;;;;;;;;-1:-1:-1;20789:127:0;;;;;:::i;:::-;;:::i;17001:35::-;;;;;;;;;;-1:-1:-1;17001:35:0;;;;-1:-1:-1;;;17001:35:0;;;;;;20575:69;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;;;;;;;;;20621:8:::1;:15:::0;;-1:-1:-1;;20621:15:0::1;;;::::0;;20575:69::o;18767:83::-;18804:13;18837:5;18830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18767:83;:::o;20061:161::-;20136:4;20153:39;192:10;20176:7;20185:6;20153:8;:39::i;:::-;-1:-1:-1;20210:4:0;20061:161;;;;;:::o;21315:135::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21406:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;21406:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21315:135::o;23658:313::-;23756:4;23773:36;23783:6;23791:9;23802:6;23773:9;:36::i;:::-;-1:-1:-1;23820:121:0;23829:6;192:10;23851:89;23889:6;23851:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23851:19:0;;;;;;:11;:19;;;;;;;;192:10;23851:33;;;;;;;;;;:37;:89::i;:::-;23820:8;:121::i;:::-;-1:-1:-1;23959:4:0;23658:313;;;;;;:::o;21194:113::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21272:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;21272:27:0::1;-1:-1:-1::0;;;;21272:27:0;;::::1;::::0;;;::::1;::::0;;21194:113::o;22300:128::-;22407:11;-1:-1:-1;;;;;19245:18:0;22353:7;19245:18;;;:9;:18;;;;;;22380:12;;:40;;:16;:40::i;:::-;22373:47;;22300:128;:::o;21847:129::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21929:17:::1;:39:::0;;-1:-1:-1;;;;;;21929:39:0::1;-1:-1:-1::0;;;;;21929:39:0;;;::::1;::::0;;;::::1;::::0;;21847:129::o;19430:218::-;192:10;19518:4;19567:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19567:34:0;;;;;;;;;;19518:4;;19535:83;;19558:7;;19567:50;;19606:10;19567:38;:50::i;21568:124::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21650:23:::1;:34:::0;21568:124::o;21700:139::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21787:22:::1;:44:::0;;-1:-1:-1;;;;;21787:44:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;21787:44:0;;::::1;::::0;;;::::1;::::0;;21700:139::o;22574:807::-;22654:22;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;22691:35:::1;22748:16;22691:74;;22814:16;-1:-1:-1::0;;;;;22814:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22796:53:0::1;;22858:4;22865:16;-1:-1:-1::0;;;;;22865:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22796:93;::::0;-1:-1:-1;;;;;;22796:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5446:15:1;;;22796:93:0::1;::::0;::::1;5428:34:1::0;5498:15;;5478:18;;;5471:43;5363:18;;22796:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22779:110:::0;-1:-1:-1;;;;;;22905:28:0;::::1;22902:225;;23019:16;-1:-1:-1::0;;;;;23019:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23001:74:0::1;;23084:4;23091:16;-1:-1:-1::0;;;;;23091:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23001:114;::::0;-1:-1:-1;;;;;;23001:114:0::1;::::0;;;;;;-1:-1:-1;;;;;5446:15:1;;;23001:114:0::1;::::0;::::1;5428:34:1::0;5498:15;;5478:18;;;5471:43;5363:18;;23001:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22984:131;;22902:225;23139:11;:28:::0;;-1:-1:-1;;;;;;23139:28:0;;::::1;-1:-1:-1::0;;;;;23139:28:0;;::::1;::::0;;::::1;::::0;;23201:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;23273:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;23273:48:0;;::::1;-1:-1:-1::0;23273:48:0;;::::1;::::0;;;23353:11;;;;::::1;23332:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;23139:28;23153:14;-1:-1:-1;22574:807:0:o;20652:129::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20741:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;20741:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20652:129::o;6019:155::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;6107:6:::1;::::0;;6086:45:::1;::::0;6123:6:::1;::::0;-1:-1:-1;;;;;6107:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6086:45:0;::::1;6142:6;:24:::0;;-1:-1:-1;;;;;;6142:24:0::1;6159:6;6142:24;::::0;;6019:155::o;18858:87::-;18897:13;18930:7;18923:14;;;;;:::i;19656:269::-;19749:4;19766:129;192:10;19789:7;19798:96;19837:15;19798:96;;;;;;;;;;;;;;;;;192:10;19798:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19798:34:0;;;;;;;;;;;;:38;:96::i;22163:125::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;22244:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22244:36:0::1;-1:-1:-1::0;;;;22244:36:0;;::::1;::::0;;;::::1;::::0;;22163:125::o;6872:305::-;6924:14;;-1:-1:-1;;;;;6924:14:0;6942:10;6924:28;6916:76;;;;-1:-1:-1;;;6916:76:0;;5727:2:1;6916:76:0;;;5709:21:1;5766:2;5746:18;;;5739:30;5805:34;5785:18;;;5778:62;-1:-1:-1;;;5856:18:1;;;5849:33;5899:19;;6916:76:0;5525:399:1;6916:76:0;7029:9;;7011:15;:27;7003:72;;;;-1:-1:-1;;;7003:72:0;;6131:2:1;7003:72:0;;;6113:21:1;6170:2;6150:18;;;6143:30;6209:33;6189:18;;;6182:61;6260:18;;7003:72:0;5929:355:1;7003:72:0;7120:14;;;7112:6;;7091:44;;-1:-1:-1;;;;;7120:14:0;;;;7112:6;;;;-1:-1:-1;;;;;;;;;;;7091:44:0;;7155:14;;;7146:23;;-1:-1:-1;;;;;;7146:23:0;-1:-1:-1;;;;;7155:14:0;;;7146:23;;;;;;6872:305::o;23483:167::-;23561:4;23578:42;192:10;23602:9;23613:6;23578:9;:42::i;21984:171::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;22061:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22061:32:0::1;-1:-1:-1::0;;;;22061:32:0;;::::1;;::::0;;22109:38:::1;::::0;::::1;::::0;::::1;::::0;22085:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;22109:38:0::1;;;;;;;;21984:171:::0;:::o;6634:226::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;6715:6:::1;::::0;;;6698:23;;-1:-1:-1;;;;;;6698:23:0;;::::1;-1:-1:-1::0;;;;;6715:6:0;::::1;6698:23;::::0;;;6732:19:::1;::::0;;6774:22:::1;6792:4:::0;6774:15:::1;:22;:::i;:::-;6762:9;:34:::0;6849:1:::1;6833:6:::0;;6812:40:::1;::::0;-1:-1:-1;;;;;6833:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6812:40:0;6849:1;;6812:40:::1;6634:226:::0;:::o;21075:111::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21152:12:::1;:26:::0;21075:111::o;20928:135::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21018:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;21018:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20928:135::o;21458:102::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;21530:10:::1;:22:::0;21458:102::o;6182:244::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6271:22:0;::::1;6263:73;;;::::0;-1:-1:-1;;;6263:73:0;;6753:2:1;6263:73:0::1;::::0;::::1;6735:21:1::0;6792:2;6772:18;;;6765:30;6831:34;6811:18;;;6804:62;-1:-1:-1;;;6882:18:1;;;6875:36;6928:19;;6263:73:0::1;6551:402:1::0;6263:73:0::1;6373:6;::::0;;6352:38:::1;::::0;-1:-1:-1;;;;;6352:38:0;;::::1;::::0;6373:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6352:38:0;::::1;6401:6;:17:::0;;-1:-1:-1;;;;;;6401:17:0::1;-1:-1:-1::0;;;;;6401:17:0;;;::::1;::::0;;;::::1;::::0;;6182:244::o;20789:127::-;5928:6;;-1:-1:-1;;;;;5928:6:0;192:10;5928:22;5920:67;;;;-1:-1:-1;;;5920:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20876:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20876:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20789:127::o;20230:337::-;-1:-1:-1;;;;;20323:19:0;;20315:68;;;;-1:-1:-1;;;20315:68:0;;7160:2:1;20315:68:0;;;7142:21:1;7199:2;7179:18;;;7172:30;7238:34;7218:18;;;7211:62;-1:-1:-1;;;7289:18:1;;;7282:34;7333:19;;20315:68:0;6958:400:1;20315:68:0;-1:-1:-1;;;;;20402:21:0;;20394:68;;;;-1:-1:-1;;;20394:68:0;;7565:2:1;20394:68:0;;;7547:21:1;7604:2;7584:18;;;7577:30;7643:34;7623:18;;;7616:62;-1:-1:-1;;;7694:18:1;;;7687:32;7736:19;;20394:68:0;7363:398:1;20394:68:0;-1:-1:-1;;;;;20475:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;20527:32;;1820:25:1;;;20527:32:0;;1793:18:1;20527:32:0;;;;;;;20230:337;;;:::o;23979:2135::-;24066:4;-1:-1:-1;;;;;24093:20:0;;24085:70;;;;-1:-1:-1;;;24085:70:0;;7968:2:1;24085:70:0;;;7950:21:1;8007:2;7987:18;;;7980:30;8046:34;8026:18;;;8019:62;-1:-1:-1;;;8097:18:1;;;8090:35;8142:19;;24085:70:0;7766:401:1;24085:70:0;-1:-1:-1;;;;;24174:23:0;;24166:71;;;;-1:-1:-1;;;24166:71:0;;8374:2:1;24166:71:0;;;8356:21:1;8413:2;8393:18;;;8386:30;8452:34;8432:18;;;8425:62;-1:-1:-1;;;8503:18:1;;;8496:33;8546:19;;24166:71:0;8172:399:1;24166:71:0;24253:16;;-1:-1:-1;;;24253:16:0;;;;24250:1857;;;24303:41;24318:6;24326:9;24337:6;24303:14;:41::i;:::-;24296:48;;;;24250:1857;-1:-1:-1;;;;;24401:25:0;;;;;;:17;:25;;;;;;;;24400:26;:59;;;;-1:-1:-1;;;;;;24431:28:0;;;;;;:17;:28;;;;;;;;24430:29;24400:59;:82;;;;;24481:1;24463:15;;:19;24400:82;24396:249;;;24552:15;;24503:26;;24532:36;;:15;:6;24543:3;24532:10;:15::i;:::-;:19;;:36::i;:::-;24503:65;-1:-1:-1;24596:33:0;:6;24503:65;24596:10;:33::i;:::-;24587:42;;24484:161;24396:249;-1:-1:-1;;;;;24665:23:0;;;;;;:15;:23;;;;;;;;24664:24;:55;;;;-1:-1:-1;;;;;;24693:26:0;;;;;;:15;:26;;;;;;;;24692:27;24664:55;24661:170;;;24758:12;;24748:6;:22;;24740:75;;;;-1:-1:-1;;;24740:75:0;;8778:2:1;24740:75:0;;;8760:21:1;8817:2;8797:18;;;8790:30;8856:34;8836:18;;;8829:62;-1:-1:-1;;;8907:18:1;;;8900:38;8955:19;;24740:75:0;8576:404:1;24740:75:0;24936:4;24887:28;19245:18;;;:9;:18;;;;;;25012:23;;24988:47;;;;;;;25068:44;;-1:-1:-1;25096:16:0;;-1:-1:-1;;;25096:16:0;;;;25095:17;25068:44;:69;;;;-1:-1:-1;;;;;;25117:20:0;;;;;;:12;:20;;;;;;;;25116:21;25068:69;:94;;;;-1:-1:-1;25141:21:0;;-1:-1:-1;;;25141:21:0;;;;25068:94;25064:305;;;25200:25;;-1:-1:-1;;;25200:25:0;;;;25197:97;;;25271:23;;25248:46;;25197:97;25313:36;25328:20;25313:14;:36::i;:::-;25405:53;;;;;;;;;;;-1:-1:-1;;;25405:53:0;;;;;;;;-1:-1:-1;;;;;25405:17:0;;-1:-1:-1;25405:17:0;;;:9;:17;;;;;;;;:53;;25427:6;;25405:21;:53::i;:::-;-1:-1:-1;;;;;25385:17:0;;;;;;:9;:17;;;;;;;;:73;;;;25511:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25540:28:0;;;;;;:17;:28;;;;;;;;25511:57;25507:260;;;-1:-1:-1;25603:6:0;25507:260;;;25658:8;;;;;;;25650:34;;;;-1:-1:-1;;;25650:34:0;;9187:2:1;25650:34:0;;;9169:21:1;9226:2;9206:18;;;9199:30;-1:-1:-1;;;9245:18:1;;;9238:43;9298:18;;25650:34:0;8985:337:1;25650:34:0;25717;25725:6;25733:9;25744:6;25717:7;:34::i;:::-;25703:48;;25507:260;25786:16;;-1:-1:-1;;;25786:16:0;;;;:51;;;;-1:-1:-1;;;;;;25807:30:0;;;;;;:19;:30;;;;;;;;25806:31;25786:51;25783:133;;;25905:10;;25864:37;25889:11;25864:20;25874:9;-1:-1:-1;;;;;19245:18:0;19218:7;19245:18;;;:9;:18;;;;;;;19152:119;25864:20;:24;;:37::i;:::-;:51;;25856:60;;;;;;-1:-1:-1;;;;;25956:20:0;;;;;;:9;:20;;;;;;:37;;25981:11;25956:24;:37::i;:::-;-1:-1:-1;;;;;25933:20:0;;;;;;;:9;:20;;;;;;;:60;;;;26015:40;;;;;;;;;;26043:11;1820:25:1;;1808:2;1793:18;;1674:177;26015:40:0;;;;;;;;26077:4;26070:11;;;;;;;1497:192;1583:7;1619:12;1611:6;;;;1603:29;;;;-1:-1:-1;;;1603:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1643:9:0;1655:5;1659:1;1655;:5;:::i;:::-;1643:17;1497:192;-1:-1:-1;;;;;1497:192:0:o;1353:136::-;1411:7;1438:43;1442:1;1445;1438:43;;;;;;;;;;;;;;;;;:3;:43::i;1164:181::-;1222:7;;1254:5;1258:1;1254;:5;:::i;:::-;1242:17;;1283:1;1278;:6;;1270:46;;;;-1:-1:-1;;;1270:46:0;;9662:2:1;1270:46:0;;;9644:21:1;9701:2;9681:18;;;9674:30;9740:29;9720:18;;;9713:57;9787:18;;1270:46:0;9460:351:1;26122:330:0;26252:53;;;;;;;;;;;-1:-1:-1;;;26252:53:0;;;;;;;;-1:-1:-1;;;;;26252:17:0;;26215:4;26252:17;;;:9;:17;;;;;;;:53;;26274:6;;26252:21;:53::i;:::-;-1:-1:-1;;;;;26232:17:0;;;;;;;:9;:17;;;;;;:73;;;;26339:20;;;;;;;:32;;26364:6;26339:24;:32::i;:::-;-1:-1:-1;;;;;26316:20:0;;;;;;;:9;:20;;;;;;;:55;;;;26387:35;;;;;;;;;;26415:6;1820:25:1;;1808:2;1793:18;;1674:177;26387:35:0;;;;;;;;-1:-1:-1;26440:4:0;26122:330;;;;;:::o;1955:132::-;2013:7;2040:39;2044:1;2047;2040:39;;;;;;;;;;;;;;;;;:3;:39::i;1697:250::-;1755:7;1779:1;1784;1779:6;1775:47;;-1:-1:-1;1809:1:0;1802:8;;1775:47;1834:9;1846:5;1850:1;1846;:5;:::i;:::-;1834:17;-1:-1:-1;1879:1:0;1870:5;1874:1;1834:17;1870:5;:::i;:::-;:10;1862:56;;;;-1:-1:-1;;;1862:56:0;;10413:2:1;1862:56:0;;;10395:21:1;10452:2;10432:18;;;10425:30;10491:34;10471:18;;;10464:62;-1:-1:-1;;;10542:18:1;;;10535:31;10583:19;;1862:56:0;10211:397:1;26460:1048:0;17460:16;:23;;-1:-1:-1;;;;17460:23:0;-1:-1:-1;;;17460:23:0;;;26597:24:::1;::::0;17460:16;26576:15;17460:23;;26564:65:::1;::::0;26627:1:::1;::::0;26564:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;26542:87:::0;-1:-1:-1;26640:21:0::1;26664:24;:7:::0;26542:87;26664:11:::1;:24::i;:::-;26640:48;;26701:31;26718:13;26701:16;:31::i;:::-;26853:15;::::0;26768:21:::1;::::0;26743:22:::1;::::0;26824:52:::1;::::0;26853:22:::1;::::0;26873:1:::1;26853:19;:22::i;:::-;26824:24;::::0;;:28:::1;:52::i;:::-;26802:74;;26897:26;26926:59;26983:1;26926:52;26966:11;26926:35;26945:15;;26926:14;:18;;:35;;;;:::i;:59::-;26897:88;;26996:21;27020:47;27055:11;27020:30;27039:10;;27020:14;:18;;:30;;;;:::i;:47::-;26996:71:::0;-1:-1:-1;27078:26:0::1;27107:57;26996:71:::0;27107:38:::1;:14:::0;27126:18;27107::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;27078:86:::0;-1:-1:-1;27180:22:0;;27177:104:::1;;27238:22;::::0;27217:64:::1;::::0;27238:22;;::::1;-1:-1:-1::0;;;;;27238:22:0::1;27262:18:::0;27217:20:::1;:64::i;:::-;27297:17:::0;;27294:89:::1;;27350:17;::::0;27329:54:::1;::::0;-1:-1:-1;;;;;27350:17:0::1;27369:13:::0;27329:20:::1;:54::i;:::-;27420:1;27399:18;:22;:41;;;;;27439:1;27425:11;:15;27399:41;27396:104;;;27455:45;27468:11;27481:18;27455:12;:45::i;:::-;-1:-1:-1::0;;17506:16:0;:24;;-1:-1:-1;;;;17506:24:0;;;-1:-1:-1;;;;;;26460:1048:0:o;28719:622::-;-1:-1:-1;;;;;28880:20:0;;28805:7;28880:20;;;:12;:20;;;;;;28805:7;;28880:20;;28877:223;;;28929:38;28963:3;28929:29;28940:17;;28929:6;:10;;:29;;;;:::i;:38::-;28917:50;;28877:223;;;-1:-1:-1;;;;;28997:23:0;;;;;;:12;:23;;;;;;;;28994:106;;;29049:39;29084:3;29049:30;29060:18;;29049:6;:10;;:30;;;;:::i;:39::-;29037:51;;28994:106;29123:13;;29120:173;;29198:4;29180:24;;;;:9;:24;;;;;;:39;;29209:9;29180:28;:39::i;:::-;29171:4;29153:24;;;;:9;:24;;;;;;;:66;;;;29239:42;;-1:-1:-1;;;;;29239:42:0;;;;;;;29271:9;1820:25:1;;1808:2;1793:18;;1674:177;29239:42:0;;;;;;;;29120:173;29312:21;:6;29323:9;29312:10;:21::i;2095:278::-;2181:7;2216:12;2209:5;2201:28;;;;-1:-1:-1;;;2201:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2240:9:0;2252:5;2256:1;2252;:5;:::i;27520:666::-;27670:16;;;27684:1;27670:16;;;;;;;;27646:21;;27670:16;;;;;;;;;;-1:-1:-1;27670:16:0;27646:40;;27715:4;27697;27702:1;27697:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27697:23:0;;;:7;;;;;;;;;;:23;;;;27741:15;;:22;;;-1:-1:-1;;;27741:22:0;;;;:15;;;;;:20;;:22;;;;;27697:7;;27741:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27731:4;27736:1;27731:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27731:32:0;;;:7;;;;;;;;;:32;27808:15;;27776:62;;27793:4;;27808:15;27826:11;27776:8;:62::i;:::-;27877:15;;:240;;-1:-1:-1;;;27877:240:0;;-1:-1:-1;;;;;27877:15:0;;;;:66;;:240;;27958:11;;27877:15;;28028:4;;28055;;28091:15;;27877:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28143:35;28160:11;28173:4;28143:35;;;;;;;:::i;:::-;;;;;;;;27575:611;27520:666;:::o;22436:126::-;22528:26;;-1:-1:-1;;;;;22528:18:0;;;:26;;;;;22547:6;;22528:26;;;;22547:6;22528:18;:26;;;;;;;;;;;;;;;;;;;;;22436:126;;:::o;28194:517::-;28374:15;;28342:62;;28359:4;;-1:-1:-1;;;;;28374:15:0;28392:11;28342:8;:62::i;:::-;28447:15;;:256;;-1:-1:-1;;;28447:256:0;;28519:4;28447:256;;;12608:34:1;12658:18;;;12651:34;;;-1:-1:-1;12701:18:1;;;12694:34;;;12744:18;;;12737:34;-1:-1:-1;;;;;28651:11:0;12808:15:1;;12787:19;;;12780:44;28677:15:0;12840:19:1;;;12833:35;28447:15:0;;;;:31;;28486:9;;12542:19:1;;28447:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28194:517;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1856:160::-;1921:20;;1977:13;;1970:21;1960:32;;1950:60;;2006:1;2003;1996:12;1950:60;1856:160;;;:::o;2021:315::-;2086:6;2094;2147:2;2135:9;2126:7;2122:23;2118:32;2115:52;;;2163:1;2160;2153:12;2115:52;2202:9;2189:23;2221:31;2246:5;2221:31;:::i;:::-;2271:5;-1:-1:-1;2295:35:1;2326:2;2311:18;;2295:35;:::i;:::-;2285:45;;2021:315;;;;;:::o;2341:456::-;2418:6;2426;2434;2487:2;2475:9;2466:7;2462:23;2458:32;2455:52;;;2503:1;2500;2493:12;2455:52;2542:9;2529:23;2561:31;2586:5;2561:31;:::i;:::-;2611:5;-1:-1:-1;2668:2:1;2653:18;;2640:32;2681:33;2640:32;2681:33;:::i;:::-;2341:456;;2733:7;;-1:-1:-1;;;2787:2:1;2772:18;;;;2759:32;;2341:456::o;2802:180::-;2858:6;2911:2;2899:9;2890:7;2886:23;2882:32;2879:52;;;2927:1;2924;2917:12;2879:52;2950:26;2966:9;2950:26;:::i;3195:247::-;3254:6;3307:2;3295:9;3286:7;3282:23;3278:32;3275:52;;;3323:1;3320;3313:12;3275:52;3362:9;3349:23;3381:31;3406:5;3381:31;:::i;3636:180::-;3695:6;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;-1:-1:-1;3787:23:1;;3636:180;-1:-1:-1;3636:180:1:o;3821:388::-;3889:6;3897;3950:2;3938:9;3929:7;3925:23;3921:32;3918:52;;;3966:1;3963;3956:12;3918:52;4005:9;3992:23;4024:31;4049:5;4024:31;:::i;:::-;4074:5;-1:-1:-1;4131:2:1;4116:18;;4103:32;4144:33;4103:32;4144:33;:::i;:::-;4196:7;4186:17;;;3821:388;;;;;:::o;4214:356::-;4416:2;4398:21;;;4435:18;;;4428:30;4494:34;4489:2;4474:18;;4467:62;4561:2;4546:18;;4214:356::o;4575:380::-;4654:1;4650:12;;;;4697;;;4718:61;;4772:4;4764:6;4760:17;4750:27;;4718:61;4825:2;4817:6;4814:14;4794:18;4791:38;4788:161;;4871:10;4866:3;4862:20;4859:1;4852:31;4906:4;4903:1;4896:15;4934:4;4931:1;4924:15;4788:161;;4575:380;;;:::o;4960:251::-;5030:6;5083:2;5071:9;5062:7;5058:23;5054:32;5051:52;;;5099:1;5096;5089:12;5051:52;5131:9;5125:16;5150:31;5175:5;5150:31;:::i;6289:127::-;6350:10;6345:3;6341:20;6338:1;6331:31;6381:4;6378:1;6371:15;6405:4;6402:1;6395:15;6421:125;6486:9;;;6507:10;;;6504:36;;;6520:18;;:::i;9327:128::-;9394:9;;;9415:11;;;9412:37;;;9429:18;;:::i;9816:168::-;9889:9;;;9920;;9937:15;;;9931:22;;9917:37;9907:71;;9958:18;;:::i;9989:217::-;10029:1;10055;10045:132;;10099:10;10094:3;10090:20;10087:1;10080:31;10134:4;10131:1;10124:15;10162:4;10159:1;10152:15;10045:132;-1:-1:-1;10191:9:1;;9989:217::o;10745:127::-;10806:10;10801:3;10797:20;10794:1;10787:31;10837:4;10834:1;10827:15;10861:4;10858:1;10851:15;10877:461;10930:3;10968:5;10962:12;10995:6;10990:3;10983:19;11021:4;11050:2;11045:3;11041:12;11034:19;;11087:2;11080:5;11076:14;11108:1;11118:195;11132:6;11129:1;11126:13;11118:195;;;11197:13;;-1:-1:-1;;;;;11193:39:1;11181:52;;11253:12;;;;11288:15;;;;11229:1;11147:9;11118:195;;;-1:-1:-1;11329:3:1;;10877:461;-1:-1:-1;;;;;10877:461:1:o;11343:582::-;11642:6;11631:9;11624:25;11685:6;11680:2;11669:9;11665:18;11658:34;11728:3;11723:2;11712:9;11708:18;11701:31;11605:4;11749:57;11801:3;11790:9;11786:19;11778:6;11749:57;:::i;:::-;-1:-1:-1;;;;;11842:32:1;;;;11837:2;11822:18;;11815:60;-1:-1:-1;11906:3:1;11891:19;11884:35;11741:65;11343:582;-1:-1:-1;;;11343:582:1:o;11930:332::-;12137:6;12126:9;12119:25;12180:2;12175;12164:9;12160:18;12153:30;12100:4;12200:56;12252:2;12241:9;12237:18;12229:6;12200:56;:::i;:::-;12192:64;11930:332;-1:-1:-1;;;;11930:332:1:o;12879:306::-;12967:6;12975;12983;13036:2;13024:9;13015:7;13011:23;13007:32;13004:52;;;13052:1;13049;13042:12;13004:52;13081:9;13075:16;13065:26;;13131:2;13120:9;13116:18;13110:25;13100:35;;13175:2;13164:9;13160:18;13154:25;13144:35;;12879:306;;;;;:::o
Swarm Source
ipfs://a22258aab0a50a7b71205f372168800e797945703271972565e1ddaa414acda6
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.