Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
420,000,000,000,000 SmAi2.0
Holders
713 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SempsunAI
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-21 */ /** */ // SPDX-License-Identifier: MIT Licence pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; 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) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; 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; 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(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface 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 SempsunAI is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "SmAi2.0"; string private _symbol = "SmAi2.0"; uint8 private _decimals = 9; address payable public MarketingWallet = payable(0x78719606873846A447A3402305D77181Fe40Be2a); address payable public DragonWallet = payable(0xA21598B6Ef6B6840fCfd6B7E5EDa226BE1928Db8); 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 private _buyLiquidityFee = 1; uint256 private _buyMarketingFee = 2; uint256 private _buyDragonFee = 0; uint256 private _sellLiquidityFee = 1; uint256 private _sellMarketingFee = 2; uint256 private _sellDragonFee = 1; uint256 private _liquidityShare = 1; uint256 private _marketingShare = 2; uint256 private _DragonShare = 1; uint256 public _totalTaxIfBuying = 3; uint256 public _totalTaxIfSelling = 4; uint256 private _totalDistributionShares = 4; uint256 public _totalSupply = 420 * 10**12 * 10**9; uint256 public _maxTxAmount = 84 * 10**11 * 10**9; uint256 public _walletMax = 84 * 10**11 * 10**9; uint256 private minimumTokensBeforeSwap = 25000 * 10**9; 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(_buyDragonFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDragonFee); _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_DragonShare); 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 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 addMarketPair(address account) public onlyOwner { isMarketPair[account] = true; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newDragonShare) external onlyOwner() { _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _DragonShare = newDragonShare; _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_DragonShare); } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } 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(!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 = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : 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 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHDev = amountReceived.mul(_DragonShare).div(totalETHFee); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(amountETHDev); if(amountETHMarketing > 0) transferToAddressETH(MarketingWallet, amountETHMarketing); if(amountETHDev > 0) transferToAddressETH(DragonWallet, amountETHDev); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } 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 owner(), 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":"DragonWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getCirculatingSupply","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":[{"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":[],"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":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newDragonShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","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":"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":[],"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":"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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600781526020017f536d4169322e3000000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b45565b506040518060400160405280600781526020017f536d4169322e3000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b45565b506009600460006101000a81548160ff021916908360ff1602179055507378719606873846a447a3402305d77181fe40be2a600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a21598b6ef6b6840fcfd6b7e5eda226be1928db8600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506001600c556002600d556000600e556001600f55600260105560016011556001601255600260135560016014556003601555600460165560046017556958f03ee118a13e8000006018556901c75d6ae6e4814000006019556901c75d6ae6e481400000601a556516bcc41e9000601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200026957600080fd5b5060006200027c62000ab160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037a57600080fd5b505afa1580156200038f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000c5f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041857600080fd5b505afa1580156200042d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000453919062000c5f565b6040518363ffffffff1660e01b81526004016200047292919062000ca2565b602060405180830381600087803b1580156200048d57600080fd5b505af1158015620004a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c8919062000c5f565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200060462000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006e6600e54620006d2600d54600c5462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b6015819055506200072560115462000711601054600f5462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b601681905550620007646014546200075060135460125462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b6017819055506001600960006200078062000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008b962000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009f362000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a4162000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000aa2919062000cea565b60405180910390a35062000e7b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000af3919062000d36565b90508381101562000b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b329062000df4565b60405180910390fd5b8091505092915050565b82805462000b539062000e45565b90600052602060002090601f01602090048101928262000b77576000855562000bc3565b82601f1062000b9257805160ff191683800117855562000bc3565b8280016001018555821562000bc3579182015b8281111562000bc257825182559160200191906001019062000ba5565b5b50905062000bd2919062000bd6565b5090565b5b8082111562000bf157600081600090555060010162000bd7565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c278262000bfa565b9050919050565b62000c398162000c1a565b811462000c4557600080fd5b50565b60008151905062000c598162000c2e565b92915050565b60006020828403121562000c785762000c7762000bf5565b5b600062000c888482850162000c48565b91505092915050565b62000c9c8162000c1a565b82525050565b600060408201905062000cb9600083018562000c91565b62000cc8602083018462000c91565b9392505050565b6000819050919050565b62000ce48162000ccf565b82525050565b600060208201905062000d01600083018462000cd9565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d438262000ccf565b915062000d508362000ccf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d885762000d8762000d07565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000ddc601b8362000d93565b915062000de98262000da4565b602082019050919050565b6000602082019050818103600083015262000e0f8162000dcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5e57607f821691505b6020821081141562000e755762000e7462000e16565b5b50919050565b6080516142ab62000e9e60003960008181610cbd0152610ce901526142ab6000f3fe60806040526004361061024a5760003560e01c8063807c2d9c11610139578063c49b9a80116100b6578063e207a92b1161007a578063e207a92b146108f1578063ef422a181461091a578063f0cd1dac14610943578063f2fde38b1461096e578063f84ba65d14610997578063f872858a146109c057610251565b8063c49b9a80146107f8578063c816841b14610821578063c867d60b1461084c578063da00097d14610889578063dd62ed3e146108b457610251565b806395d89b41116100fd57806395d89b4114610701578063a457c2d71461072c578063a5d69d1f14610769578063a9059cbb14610792578063c2d4640e146107cf57610251565b8063807c2d9c1461062c57806382eefb43146106575780638b42507f146106825780638da5cb5b146106bf578063914eb66a146106ea57610251565b806339509351116101c75780635342acb41161018b5780635342acb41461051f5780635881f3ef1461055c5780636416edce1461059957806370a08231146105c45780637d1db4a51461060157610251565b806339509351146104265780633b97084a146104635780633eaaf86b1461048c5780633ecad271146104b75780634a74bb02146104f457610251565b806323b872dd1161020e57806323b872dd1461033d5780632598cdb21461037a57806327c8f835146103a55780632b112e49146103d0578063313ce567146103fb57610251565b806306fdde0314610256578063095ea7b3146102815780631694505e146102be57806318160ddd146102e95780632198cf6c1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109eb565b604051610278919061341e565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906134d9565b610a7d565b6040516102b59190613534565b60405180910390f35b3480156102ca57600080fd5b506102d3610a9b565b6040516102e091906135ae565b60405180910390f35b3480156102f557600080fd5b506102fe610ac1565b60405161030b91906135d8565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061361f565b610acb565b005b34801561034957600080fd5b50610364600480360381019061035f919061365f565b610bbb565b6040516103719190613534565b60405180910390f35b34801561038657600080fd5b5061038f610c95565b60405161039c91906136d3565b60405180910390f35b3480156103b157600080fd5b506103ba610cbb565b6040516103c791906136fd565b60405180910390f35b3480156103dc57600080fd5b506103e5610cdf565b6040516103f291906135d8565b60405180910390f35b34801561040757600080fd5b50610410610d23565b60405161041d9190613734565b60405180910390f35b34801561043257600080fd5b5061044d600480360381019061044891906134d9565b610d3a565b60405161045a9190613534565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061374f565b610ded565b005b34801561049857600080fd5b506104a1610e8c565b6040516104ae91906135d8565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d9919061377c565b610e92565b6040516104eb9190613534565b60405180910390f35b34801561050057600080fd5b50610509610eb2565b6040516105169190613534565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061377c565b610ec5565b6040516105539190613534565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061377c565b610ee5565b60405161059091906136fd565b60405180910390f35b3480156105a557600080fd5b506105ae611443565b6040516105bb91906136d3565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e6919061377c565b611469565b6040516105f891906135d8565b60405180910390f35b34801561060d57600080fd5b506106166114b2565b60405161062391906135d8565b60405180910390f35b34801561063857600080fd5b506106416114b8565b60405161064e91906135d8565b60405180910390f35b34801561066357600080fd5b5061066c6114be565b60405161067991906135d8565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061377c565b6114c4565b6040516106b69190613534565b60405180910390f35b3480156106cb57600080fd5b506106d46114e4565b6040516106e191906136fd565b60405180910390f35b3480156106f657600080fd5b506106ff61150d565b005b34801561070d57600080fd5b50610716611660565b604051610723919061341e565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e91906134d9565b6116f2565b6040516107609190613534565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b91906137a9565b6117bf565b005b34801561079e57600080fd5b506107b960048036038101906107b491906134d9565b611871565b6040516107c69190613534565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f191906137d6565b611890565b005b34801561080457600080fd5b5061081f600480360381019061081a91906137a9565b611970565b005b34801561082d57600080fd5b50610836611a59565b60405161084391906136fd565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e919061377c565b611a7f565b6040516108809190613534565b60405180910390f35b34801561089557600080fd5b5061089e611a9f565b6040516108ab9190613534565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613829565b611ab2565b6040516108e891906135d8565b60405180910390f35b3480156108fd57600080fd5b506109186004803603810190610913919061377c565b611b39565b005b34801561092657600080fd5b50610941600480360381019061093c919061361f565b611c29565b005b34801561094f57600080fd5b50610958611d19565b60405161096591906135d8565b60405180910390f35b34801561097a57600080fd5b506109956004803603810190610990919061377c565b611d1f565b005b3480156109a357600080fd5b506109be60048036038101906109b9919061361f565b611ee1565b005b3480156109cc57600080fd5b506109d5611fd1565b6040516109e29190613534565b60405180910390f35b6060600280546109fa90613898565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690613898565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050905090565b6000610a91610a8a612042565b848461204a565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610ad3612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613916565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610bc8848484612215565b50610c8a84610bd5612042565b610c858560405180606001604052806028815260200161422960289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c3b612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b600190509392505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d1e610d0d7f0000000000000000000000000000000000000000000000000000000000000000611469565b60185461285e90919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610de3610d47612042565b84610dde8560076000610d58612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b61204a565b6001905092915050565b610df5612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613916565b60405180910390fd5b80601b8190555050565b60185481565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000610eef612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613916565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc757600080fd5b505afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561106157600080fd5b505afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061394b565b6040518363ffffffff1660e01b81526004016110b6929190613978565b60206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611106919061394b565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c7578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611255919061394b565b6040518363ffffffff1660e01b8152600401611272929190613978565b602060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c4919061394b565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611515612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606003805461166f90613898565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613898565b80156116e85780601f106116bd576101008083540402835291602001916116e8565b820191906000526020600020905b8154815290600101906020018083116116cb57829003601f168201915b5050505050905090565b60006117b56116ff612042565b846117b0856040518060600160405280602581526020016142516025913960076000611729612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b6001905092915050565b6117c7612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b90613916565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b600061188561187e612042565b8484612215565b506001905092915050565b611898612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613916565b60405180910390fd5b826012819055508160138190555080601481905550611965601454611957601354601254611fe490919063ffffffff16565b611fe490919063ffffffff16565b601781905550505050565b611978612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fc90613916565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611a4e9190613534565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b41612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590613916565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c31612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590613916565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611d27612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90613a13565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ee9612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613916565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b6000808284611ff39190613a62565b905083811015612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613b04565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b190613b96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613c28565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161220891906135d8565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d90613cba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ed90613d4c565b60405180910390fd5b601d60149054906101000a900460ff161561231d576123168484846128a8565b90506127f3565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123c15750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561240c5760195482111561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613dde565b60405180910390fd5b5b600061241730611469565b90506000601b54821015905080801561243d5750601d60149054906101000a900460ff16155b80156124935750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124ab5750601d60159054906101000a900460ff165b156124d557601d60169054906101000a900460ff16156124cb57601b5491505b6124d482612a7b565b5b61255e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126445750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61265857612653878787612c6c565b61265a565b845b9050601d60179054906101000a900460ff1680156126c25750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f157601a546126e5826126d789611469565b611fe490919063ffffffff16565b11156126f057600080fd5b5b61274381600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e391906135d8565b60405180910390a3600193505050505b9392505050565b6000838311158290612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839919061341e565b60405180910390fd5b50600083856128519190613dfe565b9050809150509392505050565b60006128a083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127fa565b905092915050565b6000612933826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6891906135d8565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612ad46002612ac6601754612ab860125487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612aeb828461285e90919063ffffffff16565b9050612af681612f58565b60004790506000612b27612b166002601254612f0e90919063ffffffff16565b60175461285e90919063ffffffff16565b90506000612b656002612b5784612b4960125488612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612b9083612b8260145487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90506000612bb982612bab858861285e90919063ffffffff16565b61285e90919063ffffffff16565b90506000811115612bf157612bf0600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826131e3565b5b6000821115612c2757612c26600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836131e3565b5b600083118015612c375750600087115b15612c4757612c46878461322e565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612cf457612ced6064612cdf60155486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b9050612d72565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d7157612d6e6064612d6060165486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90505b5b6000811115612e7657612dcd81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e6d91906135d8565b60405180910390a35b612e89818461285e90919063ffffffff16565b9150509392505050565b600080831415612ea65760009050612f08565b60008284612eb49190613e32565b9050828482612ec39190613ebb565b14612f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efa90613f5e565b60405180910390fd5b809150505b92915050565b6000612f5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613322565b905092915050565b6000600267ffffffffffffffff811115612f7557612f74613f7e565b5b604051908082528060200260200182016040528015612fa35781602001602082028036833780820191505090505b5090503081600081518110612fbb57612fba613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561305d57600080fd5b505afa158015613071573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613095919061394b565b816001815181106130a9576130a8613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061311030601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131749594939291906140d5565b600060405180830381600087803b15801561318e57600080fd5b505af11580156131a2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516131d792919061412f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613229573d6000803e3d6000fd5b505050565b61325b30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132a76114e4565b426040518863ffffffff1660e01b81526004016132c99695949392919061415f565b6060604051808303818588803b1580156132e257600080fd5b505af11580156132f6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061331b91906141d5565b5050505050565b60008083118290613369576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613360919061341e565b60405180910390fd5b50600083856133789190613ebb565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133bf5780820151818401526020810190506133a4565b838111156133ce576000848401525b50505050565b6000601f19601f8301169050919050565b60006133f082613385565b6133fa8185613390565b935061340a8185602086016133a1565b613413816133d4565b840191505092915050565b6000602082019050818103600083015261343881846133e5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061347082613445565b9050919050565b61348081613465565b811461348b57600080fd5b50565b60008135905061349d81613477565b92915050565b6000819050919050565b6134b6816134a3565b81146134c157600080fd5b50565b6000813590506134d3816134ad565b92915050565b600080604083850312156134f0576134ef613440565b5b60006134fe8582860161348e565b925050602061350f858286016134c4565b9150509250929050565b60008115159050919050565b61352e81613519565b82525050565b60006020820190506135496000830184613525565b92915050565b6000819050919050565b600061357461356f61356a84613445565b61354f565b613445565b9050919050565b600061358682613559565b9050919050565b60006135988261357b565b9050919050565b6135a88161358d565b82525050565b60006020820190506135c3600083018461359f565b92915050565b6135d2816134a3565b82525050565b60006020820190506135ed60008301846135c9565b92915050565b6135fc81613519565b811461360757600080fd5b50565b600081359050613619816135f3565b92915050565b6000806040838503121561363657613635613440565b5b60006136448582860161348e565b92505060206136558582860161360a565b9150509250929050565b60008060006060848603121561367857613677613440565b5b60006136868682870161348e565b93505060206136978682870161348e565b92505060406136a8868287016134c4565b9150509250925092565b60006136bd82613445565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6136f781613465565b82525050565b600060208201905061371260008301846136ee565b92915050565b600060ff82169050919050565b61372e81613718565b82525050565b60006020820190506137496000830184613725565b92915050565b60006020828403121561376557613764613440565b5b6000613773848285016134c4565b91505092915050565b60006020828403121561379257613791613440565b5b60006137a08482850161348e565b91505092915050565b6000602082840312156137bf576137be613440565b5b60006137cd8482850161360a565b91505092915050565b6000806000606084860312156137ef576137ee613440565b5b60006137fd868287016134c4565b935050602061380e868287016134c4565b925050604061381f868287016134c4565b9150509250925092565b600080604083850312156138405761383f613440565b5b600061384e8582860161348e565b925050602061385f8582860161348e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138b057607f821691505b602082108114156138c4576138c3613869565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613900602083613390565b915061390b826138ca565b602082019050919050565b6000602082019050818103600083015261392f816138f3565b9050919050565b60008151905061394581613477565b92915050565b60006020828403121561396157613960613440565b5b600061396f84828501613936565b91505092915050565b600060408201905061398d60008301856136ee565b61399a60208301846136ee565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139fd602683613390565b9150613a08826139a1565b604082019050919050565b60006020820190508181036000830152613a2c816139f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a6d826134a3565b9150613a78836134a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aad57613aac613a33565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aee601b83613390565b9150613af982613ab8565b602082019050919050565b60006020820190508181036000830152613b1d81613ae1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b80602483613390565b9150613b8b82613b24565b604082019050919050565b60006020820190508181036000830152613baf81613b73565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c12602283613390565b9150613c1d82613bb6565b604082019050919050565b60006020820190508181036000830152613c4181613c05565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca4602583613390565b9150613caf82613c48565b604082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d36602383613390565b9150613d4182613cda565b604082019050919050565b60006020820190508181036000830152613d6581613d29565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613dc8602883613390565b9150613dd382613d6c565b604082019050919050565b60006020820190508181036000830152613df781613dbb565b9050919050565b6000613e09826134a3565b9150613e14836134a3565b925082821015613e2757613e26613a33565b5b828203905092915050565b6000613e3d826134a3565b9150613e48836134a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8157613e80613a33565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ec6826134a3565b9150613ed1836134a3565b925082613ee157613ee0613e8c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f48602183613390565b9150613f5382613eec565b604082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614001613ffc613ff784613fdc565b61354f565b6134a3565b9050919050565b61401181613fe6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404c81613465565b82525050565b600061405e8383614043565b60208301905092915050565b6000602082019050919050565b600061408282614017565b61408c8185614022565b935061409783614033565b8060005b838110156140c85781516140af8882614052565b97506140ba8361406a565b92505060018101905061409b565b5085935050505092915050565b600060a0820190506140ea60008301886135c9565b6140f76020830187614008565b81810360408301526141098186614077565b905061411860608301856136ee565b61412560808301846135c9565b9695505050505050565b600060408201905061414460008301856135c9565b81810360208301526141568184614077565b90509392505050565b600060c08201905061417460008301896136ee565b61418160208301886135c9565b61418e6040830187614008565b61419b6060830186614008565b6141a860808301856136ee565b6141b560a08301846135c9565b979650505050505050565b6000815190506141cf816134ad565b92915050565b6000806000606084860312156141ee576141ed613440565b5b60006141fc868287016141c0565b935050602061420d868287016141c0565b925050604061421e868287016141c0565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200908c49b3ad3810aca1973602d90810224e9532c9c5b410c6fe592e20c94f02164736f6c63430008090033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c8063807c2d9c11610139578063c49b9a80116100b6578063e207a92b1161007a578063e207a92b146108f1578063ef422a181461091a578063f0cd1dac14610943578063f2fde38b1461096e578063f84ba65d14610997578063f872858a146109c057610251565b8063c49b9a80146107f8578063c816841b14610821578063c867d60b1461084c578063da00097d14610889578063dd62ed3e146108b457610251565b806395d89b41116100fd57806395d89b4114610701578063a457c2d71461072c578063a5d69d1f14610769578063a9059cbb14610792578063c2d4640e146107cf57610251565b8063807c2d9c1461062c57806382eefb43146106575780638b42507f146106825780638da5cb5b146106bf578063914eb66a146106ea57610251565b806339509351116101c75780635342acb41161018b5780635342acb41461051f5780635881f3ef1461055c5780636416edce1461059957806370a08231146105c45780637d1db4a51461060157610251565b806339509351146104265780633b97084a146104635780633eaaf86b1461048c5780633ecad271146104b75780634a74bb02146104f457610251565b806323b872dd1161020e57806323b872dd1461033d5780632598cdb21461037a57806327c8f835146103a55780632b112e49146103d0578063313ce567146103fb57610251565b806306fdde0314610256578063095ea7b3146102815780631694505e146102be57806318160ddd146102e95780632198cf6c1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109eb565b604051610278919061341e565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906134d9565b610a7d565b6040516102b59190613534565b60405180910390f35b3480156102ca57600080fd5b506102d3610a9b565b6040516102e091906135ae565b60405180910390f35b3480156102f557600080fd5b506102fe610ac1565b60405161030b91906135d8565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061361f565b610acb565b005b34801561034957600080fd5b50610364600480360381019061035f919061365f565b610bbb565b6040516103719190613534565b60405180910390f35b34801561038657600080fd5b5061038f610c95565b60405161039c91906136d3565b60405180910390f35b3480156103b157600080fd5b506103ba610cbb565b6040516103c791906136fd565b60405180910390f35b3480156103dc57600080fd5b506103e5610cdf565b6040516103f291906135d8565b60405180910390f35b34801561040757600080fd5b50610410610d23565b60405161041d9190613734565b60405180910390f35b34801561043257600080fd5b5061044d600480360381019061044891906134d9565b610d3a565b60405161045a9190613534565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061374f565b610ded565b005b34801561049857600080fd5b506104a1610e8c565b6040516104ae91906135d8565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d9919061377c565b610e92565b6040516104eb9190613534565b60405180910390f35b34801561050057600080fd5b50610509610eb2565b6040516105169190613534565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061377c565b610ec5565b6040516105539190613534565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061377c565b610ee5565b60405161059091906136fd565b60405180910390f35b3480156105a557600080fd5b506105ae611443565b6040516105bb91906136d3565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e6919061377c565b611469565b6040516105f891906135d8565b60405180910390f35b34801561060d57600080fd5b506106166114b2565b60405161062391906135d8565b60405180910390f35b34801561063857600080fd5b506106416114b8565b60405161064e91906135d8565b60405180910390f35b34801561066357600080fd5b5061066c6114be565b60405161067991906135d8565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061377c565b6114c4565b6040516106b69190613534565b60405180910390f35b3480156106cb57600080fd5b506106d46114e4565b6040516106e191906136fd565b60405180910390f35b3480156106f657600080fd5b506106ff61150d565b005b34801561070d57600080fd5b50610716611660565b604051610723919061341e565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e91906134d9565b6116f2565b6040516107609190613534565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b91906137a9565b6117bf565b005b34801561079e57600080fd5b506107b960048036038101906107b491906134d9565b611871565b6040516107c69190613534565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f191906137d6565b611890565b005b34801561080457600080fd5b5061081f600480360381019061081a91906137a9565b611970565b005b34801561082d57600080fd5b50610836611a59565b60405161084391906136fd565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e919061377c565b611a7f565b6040516108809190613534565b60405180910390f35b34801561089557600080fd5b5061089e611a9f565b6040516108ab9190613534565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613829565b611ab2565b6040516108e891906135d8565b60405180910390f35b3480156108fd57600080fd5b506109186004803603810190610913919061377c565b611b39565b005b34801561092657600080fd5b50610941600480360381019061093c919061361f565b611c29565b005b34801561094f57600080fd5b50610958611d19565b60405161096591906135d8565b60405180910390f35b34801561097a57600080fd5b506109956004803603810190610990919061377c565b611d1f565b005b3480156109a357600080fd5b506109be60048036038101906109b9919061361f565b611ee1565b005b3480156109cc57600080fd5b506109d5611fd1565b6040516109e29190613534565b60405180910390f35b6060600280546109fa90613898565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690613898565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050905090565b6000610a91610a8a612042565b848461204a565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610ad3612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613916565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610bc8848484612215565b50610c8a84610bd5612042565b610c858560405180606001604052806028815260200161422960289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c3b612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b600190509392505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610d1e610d0d7f000000000000000000000000000000000000000000000000000000000000dead611469565b60185461285e90919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610de3610d47612042565b84610dde8560076000610d58612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b61204a565b6001905092915050565b610df5612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613916565b60405180910390fd5b80601b8190555050565b60185481565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000610eef612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613916565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc757600080fd5b505afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561106157600080fd5b505afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061394b565b6040518363ffffffff1660e01b81526004016110b6929190613978565b60206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611106919061394b565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c7578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611255919061394b565b6040518363ffffffff1660e01b8152600401611272929190613978565b602060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c4919061394b565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611515612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606003805461166f90613898565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613898565b80156116e85780601f106116bd576101008083540402835291602001916116e8565b820191906000526020600020905b8154815290600101906020018083116116cb57829003601f168201915b5050505050905090565b60006117b56116ff612042565b846117b0856040518060600160405280602581526020016142516025913960076000611729612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b6001905092915050565b6117c7612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b90613916565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b600061188561187e612042565b8484612215565b506001905092915050565b611898612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613916565b60405180910390fd5b826012819055508160138190555080601481905550611965601454611957601354601254611fe490919063ffffffff16565b611fe490919063ffffffff16565b601781905550505050565b611978612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fc90613916565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611a4e9190613534565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b41612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590613916565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c31612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590613916565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611d27612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90613a13565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ee9612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613916565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b6000808284611ff39190613a62565b905083811015612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613b04565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b190613b96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613c28565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161220891906135d8565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d90613cba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ed90613d4c565b60405180910390fd5b601d60149054906101000a900460ff161561231d576123168484846128a8565b90506127f3565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123c15750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561240c5760195482111561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613dde565b60405180910390fd5b5b600061241730611469565b90506000601b54821015905080801561243d5750601d60149054906101000a900460ff16155b80156124935750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124ab5750601d60159054906101000a900460ff165b156124d557601d60169054906101000a900460ff16156124cb57601b5491505b6124d482612a7b565b5b61255e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126445750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61265857612653878787612c6c565b61265a565b845b9050601d60179054906101000a900460ff1680156126c25750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f157601a546126e5826126d789611469565b611fe490919063ffffffff16565b11156126f057600080fd5b5b61274381600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e391906135d8565b60405180910390a3600193505050505b9392505050565b6000838311158290612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839919061341e565b60405180910390fd5b50600083856128519190613dfe565b9050809150509392505050565b60006128a083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127fa565b905092915050565b6000612933826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6891906135d8565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612ad46002612ac6601754612ab860125487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612aeb828461285e90919063ffffffff16565b9050612af681612f58565b60004790506000612b27612b166002601254612f0e90919063ffffffff16565b60175461285e90919063ffffffff16565b90506000612b656002612b5784612b4960125488612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612b9083612b8260145487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90506000612bb982612bab858861285e90919063ffffffff16565b61285e90919063ffffffff16565b90506000811115612bf157612bf0600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826131e3565b5b6000821115612c2757612c26600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836131e3565b5b600083118015612c375750600087115b15612c4757612c46878461322e565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612cf457612ced6064612cdf60155486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b9050612d72565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d7157612d6e6064612d6060165486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90505b5b6000811115612e7657612dcd81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e6d91906135d8565b60405180910390a35b612e89818461285e90919063ffffffff16565b9150509392505050565b600080831415612ea65760009050612f08565b60008284612eb49190613e32565b9050828482612ec39190613ebb565b14612f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efa90613f5e565b60405180910390fd5b809150505b92915050565b6000612f5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613322565b905092915050565b6000600267ffffffffffffffff811115612f7557612f74613f7e565b5b604051908082528060200260200182016040528015612fa35781602001602082028036833780820191505090505b5090503081600081518110612fbb57612fba613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561305d57600080fd5b505afa158015613071573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613095919061394b565b816001815181106130a9576130a8613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061311030601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131749594939291906140d5565b600060405180830381600087803b15801561318e57600080fd5b505af11580156131a2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516131d792919061412f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613229573d6000803e3d6000fd5b505050565b61325b30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132a76114e4565b426040518863ffffffff1660e01b81526004016132c99695949392919061415f565b6060604051808303818588803b1580156132e257600080fd5b505af11580156132f6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061331b91906141d5565b5050505050565b60008083118290613369576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613360919061341e565b60405180910390fd5b50600083856133789190613ebb565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133bf5780820151818401526020810190506133a4565b838111156133ce576000848401525b50505050565b6000601f19601f8301169050919050565b60006133f082613385565b6133fa8185613390565b935061340a8185602086016133a1565b613413816133d4565b840191505092915050565b6000602082019050818103600083015261343881846133e5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061347082613445565b9050919050565b61348081613465565b811461348b57600080fd5b50565b60008135905061349d81613477565b92915050565b6000819050919050565b6134b6816134a3565b81146134c157600080fd5b50565b6000813590506134d3816134ad565b92915050565b600080604083850312156134f0576134ef613440565b5b60006134fe8582860161348e565b925050602061350f858286016134c4565b9150509250929050565b60008115159050919050565b61352e81613519565b82525050565b60006020820190506135496000830184613525565b92915050565b6000819050919050565b600061357461356f61356a84613445565b61354f565b613445565b9050919050565b600061358682613559565b9050919050565b60006135988261357b565b9050919050565b6135a88161358d565b82525050565b60006020820190506135c3600083018461359f565b92915050565b6135d2816134a3565b82525050565b60006020820190506135ed60008301846135c9565b92915050565b6135fc81613519565b811461360757600080fd5b50565b600081359050613619816135f3565b92915050565b6000806040838503121561363657613635613440565b5b60006136448582860161348e565b92505060206136558582860161360a565b9150509250929050565b60008060006060848603121561367857613677613440565b5b60006136868682870161348e565b93505060206136978682870161348e565b92505060406136a8868287016134c4565b9150509250925092565b60006136bd82613445565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6136f781613465565b82525050565b600060208201905061371260008301846136ee565b92915050565b600060ff82169050919050565b61372e81613718565b82525050565b60006020820190506137496000830184613725565b92915050565b60006020828403121561376557613764613440565b5b6000613773848285016134c4565b91505092915050565b60006020828403121561379257613791613440565b5b60006137a08482850161348e565b91505092915050565b6000602082840312156137bf576137be613440565b5b60006137cd8482850161360a565b91505092915050565b6000806000606084860312156137ef576137ee613440565b5b60006137fd868287016134c4565b935050602061380e868287016134c4565b925050604061381f868287016134c4565b9150509250925092565b600080604083850312156138405761383f613440565b5b600061384e8582860161348e565b925050602061385f8582860161348e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138b057607f821691505b602082108114156138c4576138c3613869565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613900602083613390565b915061390b826138ca565b602082019050919050565b6000602082019050818103600083015261392f816138f3565b9050919050565b60008151905061394581613477565b92915050565b60006020828403121561396157613960613440565b5b600061396f84828501613936565b91505092915050565b600060408201905061398d60008301856136ee565b61399a60208301846136ee565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139fd602683613390565b9150613a08826139a1565b604082019050919050565b60006020820190508181036000830152613a2c816139f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a6d826134a3565b9150613a78836134a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aad57613aac613a33565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aee601b83613390565b9150613af982613ab8565b602082019050919050565b60006020820190508181036000830152613b1d81613ae1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b80602483613390565b9150613b8b82613b24565b604082019050919050565b60006020820190508181036000830152613baf81613b73565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c12602283613390565b9150613c1d82613bb6565b604082019050919050565b60006020820190508181036000830152613c4181613c05565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca4602583613390565b9150613caf82613c48565b604082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d36602383613390565b9150613d4182613cda565b604082019050919050565b60006020820190508181036000830152613d6581613d29565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613dc8602883613390565b9150613dd382613d6c565b604082019050919050565b60006020820190508181036000830152613df781613dbb565b9050919050565b6000613e09826134a3565b9150613e14836134a3565b925082821015613e2757613e26613a33565b5b828203905092915050565b6000613e3d826134a3565b9150613e48836134a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8157613e80613a33565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ec6826134a3565b9150613ed1836134a3565b925082613ee157613ee0613e8c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f48602183613390565b9150613f5382613eec565b604082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614001613ffc613ff784613fdc565b61354f565b6134a3565b9050919050565b61401181613fe6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404c81613465565b82525050565b600061405e8383614043565b60208301905092915050565b6000602082019050919050565b600061408282614017565b61408c8185614022565b935061409783614033565b8060005b838110156140c85781516140af8882614052565b97506140ba8361406a565b92505060018101905061409b565b5085935050505092915050565b600060a0820190506140ea60008301886135c9565b6140f76020830187614008565b81810360408301526141098186614077565b905061411860608301856136ee565b61412560808301846135c9565b9695505050505050565b600060408201905061414460008301856135c9565b81810360208301526141568184614077565b90509392505050565b600060c08201905061417460008301896136ee565b61418160208301886135c9565b61418e6040830187614008565b61419b6060830186614008565b6141a860808301856136ee565b6141b560a08301846135c9565b979650505050505050565b6000815190506141cf816134ad565b92915050565b6000806000606084860312156141ee576141ed613440565b5b60006141fc868287016141c0565b935050602061420d868287016141c0565b925050604061421e868287016141c0565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200908c49b3ad3810aca1973602d90810224e9532c9c5b410c6fe592e20c94f02164736f6c63430008090033
Deployed Bytecode Sourcemap
13827:13272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17452:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18618:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15469:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17729:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19904:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21853:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14074:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14269:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20495:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17638:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18115:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20047:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15237:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14661:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15584:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14490:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20769:807;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14173:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17837:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15294:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15350:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15140:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14606:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5366:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5591:145;;;;;;;;;;;;;:::i;:::-;;17543:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18341:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20358:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21678:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19530:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20179:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15517:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14547:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15631:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17964:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19132:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19383:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15097:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19244:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15683:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17452:83;17489:13;17522:5;17515:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17452:83;:::o;18618:161::-;18693:4;18710:39;18719:12;:10;:12::i;:::-;18733:7;18742:6;18710:8;:39::i;:::-;18767:4;18760:11;;18618:161;;;;:::o;15469:41::-;;;;;;;;;;;;;:::o;17729:100::-;17782:7;17809:12;;17802:19;;17729:100;:::o;19904:135::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20025:6:::1;19995:19;:27;20015:6;19995:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19904:135:::0;;:::o;21853:313::-;21951:4;21968:36;21978:6;21986:9;21997:6;21968:9;:36::i;:::-;;22015:121;22024:6;22032:12;:10;:12::i;:::-;22046:89;22084:6;22046:89;;;;;;;;;;;;;;;;;:11;:19;22058:6;22046:19;;;;;;;;;;;;;;;:33;22066:12;:10;:12::i;:::-;22046:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22015:8;:121::i;:::-;22154:4;22147:11;;21853:313;;;;;:::o;14074:92::-;;;;;;;;;;;;;:::o;14269:81::-;;;:::o;20495:128::-;20548:7;20575:40;20592:22;20602:11;20592:9;:22::i;:::-;20575:12;;:16;;:40;;;;:::i;:::-;20568:47;;20495:128;:::o;17638:83::-;17679:5;17704:9;;;;;;;;;;;17697:16;;17638:83;:::o;18115:218::-;18203:4;18220:83;18229:12;:10;:12::i;:::-;18243:7;18252:50;18291:10;18252:11;:25;18264:12;:10;:12::i;:::-;18252:25;;;;;;;;;;;;;;;:34;18278:7;18252:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18220:8;:83::i;:::-;18321:4;18314:11;;18115:218;;;;:::o;20047:124::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20155:8:::1;20129:23;:34;;;;20047:124:::0;:::o;15237:50::-;;;;:::o;14661:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15584:40::-;;;;;;;;;;;;;:::o;14490:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20769:807::-;20849:22;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20886:35:::1;20943:16;20886:74;;21009:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20991:53;;;21053:4;21060:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20991:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20974:110;;21126:1;21100:28;;:14;:28;;;21097:225;;;21214:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21196:74;;;21279:4;21286:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21196:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21179:131;;21097:225;21348:14;21334:11;;:28;;;;;;;;;;;;;;;;;;21414:16;21396:15;;:34;;;;;;;;;;;;;;;;;;21512:4;21468:19;:41;21496:11;;;;;;;;;;;21468:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;21564:4;21527:12;:34;21548:11;;;;;;;;;;;21527:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;20873:703;20769:807:::0;;;:::o;14173:89::-;;;;;;;;;;;;;:::o;17837:119::-;17903:7;17930:9;:18;17940:7;17930:18;;;;;;;;;;;;;;;;17923:25;;17837:119;;;:::o;15294:49::-;;;;:::o;15350:47::-;;;;:::o;15140:37::-;;;;:::o;14606:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;5366:79::-;5404:7;5431:6;;;;;;;;;;;5424:13;;5366:79;:::o;5591:145::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5695:1:::1;5658:40;;5679:6;::::0;::::1;;;;;;;;5658:40;;;;;;;;;;;;5726:1;5709:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5591:145::o:0;17543:87::-;17582:13;17615:7;17608:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17543:87;:::o;18341:269::-;18434:4;18451:129;18460:12;:10;:12::i;:::-;18474:7;18483:96;18522:15;18483:96;;;;;;;;;;;;;;;;;:11;:25;18495:12;:10;:12::i;:::-;18483:25;;;;;;;;;;;;;;;:34;18509:7;18483:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18451:8;:129::i;:::-;18598:4;18591:11;;18341:269;;;;:::o;20358:125::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20467:8:::1;20439:25;;:36;;;;;;;;;;;;;;;;;;20358:125:::0;:::o;21678:167::-;21756:4;21773:42;21783:12;:10;:12::i;:::-;21797:9;21808:6;21773:9;:42::i;:::-;;21833:4;21826:11;;21678:167;;;;:::o;19530:366::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19691:17:::1;19673:15;:35;;;;19737:17;19719:15;:35;;;;19780:14;19765:12;:29;;;;19834:54;19875:12;;19834:36;19854:15;;19834;;:19;;:36;;;;:::i;:::-;:40;;:54;;;;:::i;:::-;19807:24;:81;;;;19530:366:::0;;;:::o;20179:171::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20280:8:::1;20256:21;;:32;;;;;;;;;;;;;;;;;;20304:38;20333:8;20304:38;;;;;;:::i;:::-;;;;;;;;20179:171:::0;:::o;15517:26::-;;;;;;;;;;;;;:::o;14547:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;15631:45::-;;;;;;;;;;;;;:::o;17964:143::-;18045:7;18072:11;:18;18084:5;18072:18;;;;;;;;;;;;;;;:27;18091:7;18072:27;;;;;;;;;;;;;;;;18065:34;;17964:143;;;;:::o;19132:104::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19224:4:::1;19200:12;:21;19213:7;19200:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19132:104:::0;:::o;19383:135::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19502:8:::1;19473:17;:26;19491:7;19473:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19383:135:::0;;:::o;15097:36::-;;;;:::o;5744:244::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5853:1:::1;5833:22;;:8;:22;;;;5825:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5943:8;5914:38;;5935:6;::::0;::::1;;;;;;;;5914:38;;;;;;;;;;;;5972:8;5963:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5744:244:::0;:::o;19244:127::-;5510:12;:10;:12::i;:::-;5500:22;;:6;;;;;;;;;;:22;;;5492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19357:6:::1;19331:15;:23;19347:6;19331:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19244:127:::0;;:::o;15683:35::-;;;;;;;;;;;;;:::o;1070:181::-;1128:7;1148:9;1164:1;1160;:5;;;;:::i;:::-;1148:17;;1189:1;1184;:6;;1176:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1242:1;1235:8;;;1070:181;;;;:::o;120:115::-;173:15;216:10;201:26;;120:115;:::o;18787:337::-;18897:1;18880:19;;:5;:19;;;;18872:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18978:1;18959:21;;:7;:21;;;;18951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19062:6;19032:11;:18;19044:5;19032:18;;;;;;;;;;;;;;;:27;19051:7;19032:27;;;;;;;;;;;;;;;:36;;;;19100:7;19084:32;;19093:5;19084:32;;;19109:6;19084:32;;;;;;:::i;:::-;;;;;;;;18787:337;;;:::o;22174:1707::-;22261:4;22306:1;22288:20;;:6;:20;;;;22280:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22390:1;22369:23;;:9;:23;;;;22361:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22448:16;;;;;;;;;;;22445:1429;;;22498:41;22513:6;22521:9;22532:6;22498:14;:41::i;:::-;22491:48;;;;22445:1429;22595:15;:23;22611:6;22595:23;;;;;;;;;;;;;;;;;;;;;;;;;22594:24;:55;;;;;22623:15;:26;22639:9;22623:26;;;;;;;;;;;;;;;;;;;;;;;;;22622:27;22594:55;22591:170;;;22688:12;;22678:6;:22;;22670:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22591:170;22789:28;22820:24;22838:4;22820:9;:24::i;:::-;22789:55;;22859:28;22914:23;;22890:20;:47;;22859:78;;22970:23;:44;;;;;22998:16;;;;;;;;;;;22997:17;22970:44;:69;;;;;23019:12;:20;23032:6;23019:20;;;;;;;;;;;;;;;;;;;;;;;;;23018:21;22970:69;:94;;;;;23043:21;;;;;;;;;;;22970:94;22966:305;;;23102:25;;;;;;;;;;;23099:97;;;23173:23;;23150:46;;23099:97;23215:36;23230:20;23215:14;:36::i;:::-;22966:305;23307:53;23329:6;23307:53;;;;;;;;;;;;;;;;;:9;:17;23317:6;23307:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23287:9;:17;23297:6;23287:17;;;;;;;;;;;;;;;:73;;;;23377:19;23400:17;:25;23418:6;23400:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23429:17;:28;23447:9;23429:28;;;;;;;;;;;;;;;;;;;;;;;;;23400:57;23399:148;;23513:34;23521:6;23529:9;23540:6;23513:7;:34::i;:::-;23399:148;;;23504:6;23399:148;23377:170;;23567:16;;;;;;;;;;;:51;;;;;23588:19;:30;23608:9;23588:30;;;;;;;;;;;;;;;;;;;;;;;;;23587:31;23567:51;23564:133;;;23686:10;;23645:37;23670:11;23645:20;23655:9;23645;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;23637:60;;;;;;23564:133;23737:37;23762:11;23737:9;:20;23747:9;23737:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23714:9;:20;23724:9;23714:20;;;;;;;;;;;;;;;:60;;;;23813:9;23796:40;;23805:6;23796:40;;;23824:11;23796:40;;;;;;:::i;:::-;;;;;;;;23858:4;23851:11;;;;;22174:1707;;;;;;:::o;1403:192::-;1489:7;1522:1;1517;:6;;1525:12;1509:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1549:9;1565:1;1561;:5;;;;:::i;:::-;1549:17;;1586:1;1579:8;;;1403:192;;;;;:::o;1259:136::-;1317:7;1344:43;1348:1;1351;1344:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1337:50;;1259:136;;;;:::o;23889:330::-;23982:4;24019:53;24041:6;24019:53;;;;;;;;;;;;;;;;;:9;:17;24029:6;24019:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23999:9;:17;24009:6;23999:17;;;;;;;;;;;;;;;:73;;;;24106:32;24131:6;24106:9;:20;24116:9;24106:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24083:9;:20;24093:9;24083:20;;;;;;;;;;;;;;;:55;;;;24171:9;24154:35;;24163:6;24154:35;;;24182:6;24154:35;;;;;;:::i;:::-;;;;;;;;24207:4;24200:11;;23889:330;;;;;:::o;24227:1034::-;16160:4;16141:16;;:23;;;;;;;;;;;;;;;;;;24309:19:::1;24331:65;24394:1;24331:58;24364:24;;24331:28;24343:15;;24331:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;24309:87;;24407:21;24431:24;24443:11;24431:7;:11;;:24;;;;:::i;:::-;24407:48;;24468:31;24485:13;24468:16;:31::i;:::-;24510:22;24535:21;24510:46;;24569:19;24591:52;24620:22;24640:1;24620:15;;:19;;:22;;;;:::i;:::-;24591:24;;:28;;:52;;;;:::i;:::-;24569:74;;24664:26;24693:59;24750:1;24693:52;24733:11;24693:35;24712:15;;24693:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;24664:88;;24763:20;24786:49;24823:11;24786:32;24805:12;;24786:14;:18;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;24763:72;;24846:26;24875:56;24918:12;24875:38;24894:18;24875:14;:18;;:38;;;;:::i;:::-;:42;;:56;;;;:::i;:::-;24846:85;;24968:1;24947:18;:22;24944:97;;;24984:57;25005:15;;;;;;;;;;;25022:18;24984:20;:57::i;:::-;24944:97;25072:1;25057:12;:16;25054:82;;;25088:48;25109:12;;;;;;;;;;;25123;25088:20;:48::i;:::-;25054:82;25173:1;25152:18;:22;:41;;;;;25192:1;25178:11;:15;25152:41;25149:104;;;25208:45;25221:11;25234:18;25208:12;:45::i;:::-;25149:104;24288:973;;;;;;;16206:5:::0;16187:16;;:24;;;;;;;;;;;;;;;;;;24227:1034;:::o;26468:622::-;26554:7;26584:17;26604:1;26584:21;;26629:12;:20;26642:6;26629:20;;;;;;;;;;;;;;;;;;;;;;;;;26626:223;;;26678:38;26712:3;26678:29;26689:17;;26678:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;26666:50;;26626:223;;;26746:12;:23;26759:9;26746:23;;;;;;;;;;;;;;;;;;;;;;;;;26743:106;;;26798:39;26833:3;26798:30;26809:18;;26798:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;26786:51;;26743:106;26626:223;26884:1;26872:9;:13;26869:173;;;26929:39;26958:9;26929;:24;26947:4;26929:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;26902:9;:24;26920:4;26902:24;;;;;;;;;;;;;;;:66;;;;27013:4;26988:42;;26997:6;26988:42;;;27020:9;26988:42;;;;;;:::i;:::-;;;;;;;;26869:173;27061:21;27072:9;27061:6;:10;;:21;;;;:::i;:::-;27054:28;;;26468:622;;;;;:::o;1603:250::-;1661:7;1690:1;1685;:6;1681:47;;;1715:1;1708:8;;;;1681:47;1740:9;1756:1;1752;:5;;;;:::i;:::-;1740:17;;1785:1;1780;1776;:5;;;;:::i;:::-;:10;1768:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1844:1;1837:8;;;1603:250;;;;;:::o;1861:132::-;1919:7;1946:39;1950:1;1953;1946:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1939:46;;1861:132;;;;:::o;25273:666::-;25399:21;25437:1;25423:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25399:40;;25468:4;25450;25455:1;25450:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25494:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25484:4;25489:1;25484:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25529:62;25546:4;25561:15;;;;;;;;;;;25579:11;25529:8;:62::i;:::-;25630:15;;;;;;;;;;;:66;;;25711:11;25737:1;25781:4;25808;25844:15;25630:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25896:35;25913:11;25926:4;25896:35;;;;;;;:::i;:::-;;;;;;;;25328:611;25273:666;:::o;20631:126::-;20723:9;:18;;:26;20742:6;20723:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20631:126;;:::o;25947:513::-;26095:62;26112:4;26127:15;;;;;;;;;;;26145:11;26095:8;:62::i;:::-;26200:15;;;;;;;;;;;:31;;;26239:9;26272:4;26292:11;26318:1;26361;26404:7;:5;:7::i;:::-;26426:15;26200:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25947:513;;:::o;2001:278::-;2087:7;2119:1;2115;:5;2122:12;2107:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2146:9;2162:1;2158;:5;;;;:::i;:::-;2146:17;;2270:1;2263:8;;;2001:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:153::-;3917:9;3950:37;3981:5;3950:37;:::i;:::-;3937:50;;3840:153;;;:::o;3999:185::-;4113:64;4171:5;4113:64;:::i;:::-;4108:3;4101:77;3999:185;;:::o;4190:276::-;4310:4;4348:2;4337:9;4333:18;4325:26;;4361:98;4456:1;4445:9;4441:17;4432:6;4361:98;:::i;:::-;4190:276;;;;:::o;4472:118::-;4559:24;4577:5;4559:24;:::i;:::-;4554:3;4547:37;4472:118;;:::o;4596:222::-;4689:4;4727:2;4716:9;4712:18;4704:26;;4740:71;4808:1;4797:9;4793:17;4784:6;4740:71;:::i;:::-;4596:222;;;;:::o;4824:116::-;4894:21;4909:5;4894:21;:::i;:::-;4887:5;4884:32;4874:60;;4930:1;4927;4920:12;4874:60;4824:116;:::o;4946:133::-;4989:5;5027:6;5014:20;5005:29;;5043:30;5067:5;5043:30;:::i;:::-;4946:133;;;;:::o;5085:468::-;5150:6;5158;5207:2;5195:9;5186:7;5182:23;5178:32;5175:119;;;5213:79;;:::i;:::-;5175:119;5333:1;5358:53;5403:7;5394:6;5383:9;5379:22;5358:53;:::i;:::-;5348:63;;5304:117;5460:2;5486:50;5528:7;5519:6;5508:9;5504:22;5486:50;:::i;:::-;5476:60;;5431:115;5085:468;;;;;:::o;5559:619::-;5636:6;5644;5652;5701:2;5689:9;5680:7;5676:23;5672:32;5669:119;;;5707:79;;:::i;:::-;5669:119;5827:1;5852:53;5897:7;5888:6;5877:9;5873:22;5852:53;:::i;:::-;5842:63;;5798:117;5954:2;5980:53;6025:7;6016:6;6005:9;6001:22;5980:53;:::i;:::-;5970:63;;5925:118;6082:2;6108:53;6153:7;6144:6;6133:9;6129:22;6108:53;:::i;:::-;6098:63;;6053:118;5559:619;;;;;:::o;6184:104::-;6229:7;6258:24;6276:5;6258:24;:::i;:::-;6247:35;;6184:104;;;:::o;6294:142::-;6397:32;6423:5;6397:32;:::i;:::-;6392:3;6385:45;6294:142;;:::o;6442:254::-;6551:4;6589:2;6578:9;6574:18;6566:26;;6602:87;6686:1;6675:9;6671:17;6662:6;6602:87;:::i;:::-;6442:254;;;;:::o;6702:118::-;6789:24;6807:5;6789:24;:::i;:::-;6784:3;6777:37;6702:118;;:::o;6826:222::-;6919:4;6957:2;6946:9;6942:18;6934:26;;6970:71;7038:1;7027:9;7023:17;7014:6;6970:71;:::i;:::-;6826:222;;;;:::o;7054:86::-;7089:7;7129:4;7122:5;7118:16;7107:27;;7054:86;;;:::o;7146:112::-;7229:22;7245:5;7229:22;:::i;:::-;7224:3;7217:35;7146:112;;:::o;7264:214::-;7353:4;7391:2;7380:9;7376:18;7368:26;;7404:67;7468:1;7457:9;7453:17;7444:6;7404:67;:::i;:::-;7264:214;;;;:::o;7484:329::-;7543:6;7592:2;7580:9;7571:7;7567:23;7563:32;7560:119;;;7598:79;;:::i;:::-;7560:119;7718:1;7743:53;7788:7;7779:6;7768:9;7764:22;7743:53;:::i;:::-;7733:63;;7689:117;7484:329;;;;:::o;7819:::-;7878:6;7927:2;7915:9;7906:7;7902:23;7898:32;7895:119;;;7933:79;;:::i;:::-;7895:119;8053:1;8078:53;8123:7;8114:6;8103:9;8099:22;8078:53;:::i;:::-;8068:63;;8024:117;7819:329;;;;:::o;8154:323::-;8210:6;8259:2;8247:9;8238:7;8234:23;8230:32;8227:119;;;8265:79;;:::i;:::-;8227:119;8385:1;8410:50;8452:7;8443:6;8432:9;8428:22;8410:50;:::i;:::-;8400:60;;8356:114;8154:323;;;;:::o;8483:619::-;8560:6;8568;8576;8625:2;8613:9;8604:7;8600:23;8596:32;8593:119;;;8631:79;;:::i;:::-;8593:119;8751:1;8776:53;8821:7;8812:6;8801:9;8797:22;8776:53;:::i;:::-;8766:63;;8722:117;8878:2;8904:53;8949:7;8940:6;8929:9;8925:22;8904:53;:::i;:::-;8894:63;;8849:118;9006:2;9032:53;9077:7;9068:6;9057:9;9053:22;9032:53;:::i;:::-;9022:63;;8977:118;8483:619;;;;;:::o;9108:474::-;9176:6;9184;9233:2;9221:9;9212:7;9208:23;9204:32;9201:119;;;9239:79;;:::i;:::-;9201:119;9359:1;9384:53;9429:7;9420:6;9409:9;9405:22;9384:53;:::i;:::-;9374:63;;9330:117;9486:2;9512:53;9557:7;9548:6;9537:9;9533:22;9512:53;:::i;:::-;9502:63;;9457:118;9108:474;;;;;:::o;9588:180::-;9636:77;9633:1;9626:88;9733:4;9730:1;9723:15;9757:4;9754:1;9747:15;9774:320;9818:6;9855:1;9849:4;9845:12;9835:22;;9902:1;9896:4;9892:12;9923:18;9913:81;;9979:4;9971:6;9967:17;9957:27;;9913:81;10041:2;10033:6;10030:14;10010:18;10007:38;10004:84;;;10060:18;;:::i;:::-;10004:84;9825:269;9774:320;;;:::o;10100:182::-;10240:34;10236:1;10228:6;10224:14;10217:58;10100:182;:::o;10288:366::-;10430:3;10451:67;10515:2;10510:3;10451:67;:::i;:::-;10444:74;;10527:93;10616:3;10527:93;:::i;:::-;10645:2;10640:3;10636:12;10629:19;;10288:366;;;:::o;10660:419::-;10826:4;10864:2;10853:9;10849:18;10841:26;;10913:9;10907:4;10903:20;10899:1;10888:9;10884:17;10877:47;10941:131;11067:4;10941:131;:::i;:::-;10933:139;;10660:419;;;:::o;11085:143::-;11142:5;11173:6;11167:13;11158:22;;11189:33;11216:5;11189:33;:::i;:::-;11085:143;;;;:::o;11234:351::-;11304:6;11353:2;11341:9;11332:7;11328:23;11324:32;11321:119;;;11359:79;;:::i;:::-;11321:119;11479:1;11504:64;11560:7;11551:6;11540:9;11536:22;11504:64;:::i;:::-;11494:74;;11450:128;11234:351;;;;:::o;11591:332::-;11712:4;11750:2;11739:9;11735:18;11727:26;;11763:71;11831:1;11820:9;11816:17;11807:6;11763:71;:::i;:::-;11844:72;11912:2;11901:9;11897:18;11888:6;11844:72;:::i;:::-;11591:332;;;;;:::o;11929:225::-;12069:34;12065:1;12057:6;12053:14;12046:58;12138:8;12133:2;12125:6;12121:15;12114:33;11929:225;:::o;12160:366::-;12302:3;12323:67;12387:2;12382:3;12323:67;:::i;:::-;12316:74;;12399:93;12488:3;12399:93;:::i;:::-;12517:2;12512:3;12508:12;12501:19;;12160:366;;;:::o;12532:419::-;12698:4;12736:2;12725:9;12721:18;12713:26;;12785:9;12779:4;12775:20;12771:1;12760:9;12756:17;12749:47;12813:131;12939:4;12813:131;:::i;:::-;12805:139;;12532:419;;;:::o;12957:180::-;13005:77;13002:1;12995:88;13102:4;13099:1;13092:15;13126:4;13123:1;13116:15;13143:305;13183:3;13202:20;13220:1;13202:20;:::i;:::-;13197:25;;13236:20;13254:1;13236:20;:::i;:::-;13231:25;;13390:1;13322:66;13318:74;13315:1;13312:81;13309:107;;;13396:18;;:::i;:::-;13309:107;13440:1;13437;13433:9;13426:16;;13143:305;;;;:::o;13454:177::-;13594:29;13590:1;13582:6;13578:14;13571:53;13454:177;:::o;13637:366::-;13779:3;13800:67;13864:2;13859:3;13800:67;:::i;:::-;13793:74;;13876:93;13965:3;13876:93;:::i;:::-;13994:2;13989:3;13985:12;13978:19;;13637:366;;;:::o;14009:419::-;14175:4;14213:2;14202:9;14198:18;14190:26;;14262:9;14256:4;14252:20;14248:1;14237:9;14233:17;14226:47;14290:131;14416:4;14290:131;:::i;:::-;14282:139;;14009:419;;;:::o;14434:223::-;14574:34;14570:1;14562:6;14558:14;14551:58;14643:6;14638:2;14630:6;14626:15;14619:31;14434:223;:::o;14663:366::-;14805:3;14826:67;14890:2;14885:3;14826:67;:::i;:::-;14819:74;;14902:93;14991:3;14902:93;:::i;:::-;15020:2;15015:3;15011:12;15004:19;;14663:366;;;:::o;15035:419::-;15201:4;15239:2;15228:9;15224:18;15216:26;;15288:9;15282:4;15278:20;15274:1;15263:9;15259:17;15252:47;15316:131;15442:4;15316:131;:::i;:::-;15308:139;;15035:419;;;:::o;15460:221::-;15600:34;15596:1;15588:6;15584:14;15577:58;15669:4;15664:2;15656:6;15652:15;15645:29;15460:221;:::o;15687:366::-;15829:3;15850:67;15914:2;15909:3;15850:67;:::i;:::-;15843:74;;15926:93;16015:3;15926:93;:::i;:::-;16044:2;16039:3;16035:12;16028:19;;15687:366;;;:::o;16059:419::-;16225:4;16263:2;16252:9;16248:18;16240:26;;16312:9;16306:4;16302:20;16298:1;16287:9;16283:17;16276:47;16340:131;16466:4;16340:131;:::i;:::-;16332:139;;16059:419;;;:::o;16484:224::-;16624:34;16620:1;16612:6;16608:14;16601:58;16693:7;16688:2;16680:6;16676:15;16669:32;16484:224;:::o;16714:366::-;16856:3;16877:67;16941:2;16936:3;16877:67;:::i;:::-;16870:74;;16953:93;17042:3;16953:93;:::i;:::-;17071:2;17066:3;17062:12;17055:19;;16714:366;;;:::o;17086:419::-;17252:4;17290:2;17279:9;17275:18;17267:26;;17339:9;17333:4;17329:20;17325:1;17314:9;17310:17;17303:47;17367:131;17493:4;17367:131;:::i;:::-;17359:139;;17086:419;;;:::o;17511:222::-;17651:34;17647:1;17639:6;17635:14;17628:58;17720:5;17715:2;17707:6;17703:15;17696:30;17511:222;:::o;17739:366::-;17881:3;17902:67;17966:2;17961:3;17902:67;:::i;:::-;17895:74;;17978:93;18067:3;17978:93;:::i;:::-;18096:2;18091:3;18087:12;18080:19;;17739:366;;;:::o;18111:419::-;18277:4;18315:2;18304:9;18300:18;18292:26;;18364:9;18358:4;18354:20;18350:1;18339:9;18335:17;18328:47;18392:131;18518:4;18392:131;:::i;:::-;18384:139;;18111:419;;;:::o;18536:227::-;18676:34;18672:1;18664:6;18660:14;18653:58;18745:10;18740:2;18732:6;18728:15;18721:35;18536:227;:::o;18769:366::-;18911:3;18932:67;18996:2;18991:3;18932:67;:::i;:::-;18925:74;;19008:93;19097:3;19008:93;:::i;:::-;19126:2;19121:3;19117:12;19110:19;;18769:366;;;:::o;19141:419::-;19307:4;19345:2;19334:9;19330:18;19322:26;;19394:9;19388:4;19384:20;19380:1;19369:9;19365:17;19358:47;19422:131;19548:4;19422:131;:::i;:::-;19414:139;;19141:419;;;:::o;19566:191::-;19606:4;19626:20;19644:1;19626:20;:::i;:::-;19621:25;;19660:20;19678:1;19660:20;:::i;:::-;19655:25;;19699:1;19696;19693:8;19690:34;;;19704:18;;:::i;:::-;19690:34;19749:1;19746;19742:9;19734:17;;19566:191;;;;:::o;19763:348::-;19803:7;19826:20;19844:1;19826:20;:::i;:::-;19821:25;;19860:20;19878:1;19860:20;:::i;:::-;19855:25;;20048:1;19980:66;19976:74;19973:1;19970:81;19965:1;19958:9;19951:17;19947:105;19944:131;;;20055:18;;:::i;:::-;19944:131;20103:1;20100;20096:9;20085:20;;19763:348;;;;:::o;20117:180::-;20165:77;20162:1;20155:88;20262:4;20259:1;20252:15;20286:4;20283:1;20276:15;20303:185;20343:1;20360:20;20378:1;20360:20;:::i;:::-;20355:25;;20394:20;20412:1;20394:20;:::i;:::-;20389:25;;20433:1;20423:35;;20438:18;;:::i;:::-;20423:35;20480:1;20477;20473:9;20468:14;;20303:185;;;;:::o;20494:220::-;20634:34;20630:1;20622:6;20618:14;20611:58;20703:3;20698:2;20690:6;20686:15;20679:28;20494:220;:::o;20720:366::-;20862:3;20883:67;20947:2;20942:3;20883:67;:::i;:::-;20876:74;;20959:93;21048:3;20959:93;:::i;:::-;21077:2;21072:3;21068:12;21061:19;;20720:366;;;:::o;21092:419::-;21258:4;21296:2;21285:9;21281:18;21273:26;;21345:9;21339:4;21335:20;21331:1;21320:9;21316:17;21309:47;21373:131;21499:4;21373:131;:::i;:::-;21365:139;;21092:419;;;:::o;21517:180::-;21565:77;21562:1;21555:88;21662:4;21659:1;21652:15;21686:4;21683:1;21676:15;21703:180;21751:77;21748:1;21741:88;21848:4;21845:1;21838:15;21872:4;21869:1;21862:15;21889:85;21934:7;21963:5;21952:16;;21889:85;;;:::o;21980:158::-;22038:9;22071:61;22089:42;22098:32;22124:5;22098:32;:::i;:::-;22089:42;:::i;:::-;22071:61;:::i;:::-;22058:74;;21980:158;;;:::o;22144:147::-;22239:45;22278:5;22239:45;:::i;:::-;22234:3;22227:58;22144:147;;:::o;22297:114::-;22364:6;22398:5;22392:12;22382:22;;22297:114;;;:::o;22417:184::-;22516:11;22550:6;22545:3;22538:19;22590:4;22585:3;22581:14;22566:29;;22417:184;;;;:::o;22607:132::-;22674:4;22697:3;22689:11;;22727:4;22722:3;22718:14;22710:22;;22607:132;;;:::o;22745:108::-;22822:24;22840:5;22822:24;:::i;:::-;22817:3;22810:37;22745:108;;:::o;22859:179::-;22928:10;22949:46;22991:3;22983:6;22949:46;:::i;:::-;23027:4;23022:3;23018:14;23004:28;;22859:179;;;;:::o;23044:113::-;23114:4;23146;23141:3;23137:14;23129:22;;23044:113;;;:::o;23193:732::-;23312:3;23341:54;23389:5;23341:54;:::i;:::-;23411:86;23490:6;23485:3;23411:86;:::i;:::-;23404:93;;23521:56;23571:5;23521:56;:::i;:::-;23600:7;23631:1;23616:284;23641:6;23638:1;23635:13;23616:284;;;23717:6;23711:13;23744:63;23803:3;23788:13;23744:63;:::i;:::-;23737:70;;23830:60;23883:6;23830:60;:::i;:::-;23820:70;;23676:224;23663:1;23660;23656:9;23651:14;;23616:284;;;23620:14;23916:3;23909:10;;23317:608;;;23193:732;;;;:::o;23931:831::-;24194:4;24232:3;24221:9;24217:19;24209:27;;24246:71;24314:1;24303:9;24299:17;24290:6;24246:71;:::i;:::-;24327:80;24403:2;24392:9;24388:18;24379:6;24327:80;:::i;:::-;24454:9;24448:4;24444:20;24439:2;24428:9;24424:18;24417:48;24482:108;24585:4;24576:6;24482:108;:::i;:::-;24474:116;;24600:72;24668:2;24657:9;24653:18;24644:6;24600:72;:::i;:::-;24682:73;24750:3;24739:9;24735:19;24726:6;24682:73;:::i;:::-;23931:831;;;;;;;;:::o;24768:483::-;24939:4;24977:2;24966:9;24962:18;24954:26;;24990:71;25058:1;25047:9;25043:17;25034:6;24990:71;:::i;:::-;25108:9;25102:4;25098:20;25093:2;25082:9;25078:18;25071:48;25136:108;25239:4;25230:6;25136:108;:::i;:::-;25128:116;;24768:483;;;;;:::o;25257:807::-;25506:4;25544:3;25533:9;25529:19;25521:27;;25558:71;25626:1;25615:9;25611:17;25602:6;25558:71;:::i;:::-;25639:72;25707:2;25696:9;25692:18;25683:6;25639:72;:::i;:::-;25721:80;25797:2;25786:9;25782:18;25773:6;25721:80;:::i;:::-;25811;25887:2;25876:9;25872:18;25863:6;25811:80;:::i;:::-;25901:73;25969:3;25958:9;25954:19;25945:6;25901:73;:::i;:::-;25984;26052:3;26041:9;26037:19;26028:6;25984:73;:::i;:::-;25257:807;;;;;;;;;:::o;26070:143::-;26127:5;26158:6;26152:13;26143:22;;26174:33;26201:5;26174:33;:::i;:::-;26070:143;;;;:::o;26219:663::-;26307:6;26315;26323;26372:2;26360:9;26351:7;26347:23;26343:32;26340:119;;;26378:79;;:::i;:::-;26340:119;26498:1;26523:64;26579:7;26570:6;26559:9;26555:22;26523:64;:::i;:::-;26513:74;;26469:128;26636:2;26662:64;26718:7;26709:6;26698:9;26694:22;26662:64;:::i;:::-;26652:74;;26607:129;26775:2;26801:64;26857:7;26848:6;26837:9;26833:22;26801:64;:::i;:::-;26791:74;;26746:129;26219:663;;;;;:::o
Swarm Source
ipfs://0908c49b3ad3810aca1973602d90810224e9532c9c5b410c6fe592e20c94f021
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.