Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 XBOT
Holders
55
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
4,091,154.103175415189393612 XBOTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
XBOT
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-31 */ // SPDX-License-Identifier: MIT // A bot based multichain DEX aggregator specifically designed for TG and X ( Twitter ). // Trading Rewards + Revenue Share for Token Holders. // Website: https://xbot.exchange // Telegram: https://t.me/XBotExchange // Twitter: https://twitter.com/XBotExchange pragma solidity >=0.8.10 >=0.8.0 <0.9.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; address private creator; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ 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); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } ////// src/IUniswapV2Factory.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } ////// src/IUniswapV2Pair.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract XBOT is ERC20, Ownable { event SwapBackSuccess( uint256 tokenAmount, uint256 ethAmountReceived, bool success ); bool private swapping; address public revShareWallet = address(0xC772F560cEa6479DDD6B75948aeA21815C828392); address public marketingWallet = address(0x1dCAf037d0Eb1a454C238232e0f89876A152559D); address public devWallet = address(0x2b28Da7DC81c7EE8d0Eb69B262bafca09A180F42); uint256 _totalSupply = 1_000_000_000 * 1e18; uint256 public maxTransactionAmount = (_totalSupply * 10) / 1000; // 1% from total supply maxTransactionAmountTxn; uint256 public swapTokensAtAmount = (_totalSupply * 10) / 10000; // 0.1% swap tokens at this amount. (10_000_000 * 10) / 10000 = 0.1%(10000 tokens) of the total supply uint256 public maxWallet = (_totalSupply * 10) / 1000; // 1% from total supply maxWallet bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyFees = 30; uint256 public sellFees = 30; uint256 public marketingAmount = 20; // uint256 public revShareAmount = 40; // uint256 public devAmount = 40; // using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; constructor() ERC20("XBOT", "XBOT") { // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(revShareWallet, true); excludeFromFees(marketingWallet, true); excludeFromFees(devWallet, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(revShareWallet, true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(address(this), _totalSupply); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable (sets sell fees to 5%) function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; sellFees = 5; buyFees = 5; return true; } function excludeFromMaxTransaction( address addressToExclude, bool isExcluded ) public onlyOwner { _isExcludedMaxTransactionAmount[addressToExclude] = isExcluded; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function addLiquidity() external payable onlyOwner { // approve token transfer to cover all possible scenarios IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; excludeFromMaxTransaction(address(_uniswapV2Router), true); _approve(address(this), address(uniswapV2Router), totalSupply()); // add the liquidity uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), //token address totalSupply(), // liquidity amount 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), // LP tokens are sent to the owner block.timestamp ); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateFeeWallet( address revShareWallet_, address marketingWallet_, address devWallet_ ) public onlyOwner { devWallet = devWallet_; revShareWallet = revShareWallet_; marketingWallet = marketingWallet_; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet." ); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } if ( swapEnabled && //if this is true !swapping && //if this is false !automatedMarketMakerPairs[from] && //if this is false !_isExcludedFromFees[from] && //if this is false !_isExcludedFromFees[to] //if this is false ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellFees > 0) { fees = amount.mul(sellFees).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyFees > 0) { fees = amount.mul(buyFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } 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), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance == 0) { return; } if (contractBalance >= swapTokensAtAmount) { uint256 amountToSwapForETH = swapTokensAtAmount; swapTokensForEth(amountToSwapForETH); uint256 amountEthToSend = address(this).balance; uint256 amountToMarketing = amountEthToSend .mul(marketingAmount) .div(100); uint256 amountToRevShare = amountToMarketing.mul(2); uint256 amountToDev = amountToRevShare; (success, ) = address(marketingWallet).call{ value: amountToMarketing }(""); (success, ) = address(revShareWallet).call{value: amountToRevShare}(""); (success, ) = address(devWallet).call{value: amountToDev}(""); emit SwapBackSuccess(amountToSwapForETH, amountEthToSend, success); } } function rescueETH() external { require(_msgSender() == devWallet); payable(_msgSender()).transfer(address(this).balance); } function rescueERC20(address _token) external { require(_msgSender() == devWallet); transfer(_msgSender(), IERC20(address(_token)).balanceOf(address(this))); } }
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":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmountReceived","type":"uint256"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"SwapBackSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"devAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressToExclude","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revShareAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revShareWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"revShareWallet_","type":"address"},{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"address","name":"devWallet_","type":"address"}],"name":"updateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273c772f560cea6479ddd6b75948aea21815c828392600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731dcaf037d0eb1a454c238232e0f89876a152559d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732b28da7dc81c7ee8d0eb69b262bafca09a180f42600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce8000000600a556103e8600a805462000126919062000916565b62000132919062000990565b600b55612710600a805462000148919062000916565b62000154919062000990565b600c556103e8600a80546200016a919062000916565b62000176919062000990565b600d556001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff021916908315150217905550601e600f55601e601055601460115560286012556028601355348015620001f057600080fd5b506040518060400160405280600481526020017f58424f54000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f58424f540000000000000000000000000000000000000000000000000000000081525081600390816200026e919062000c38565b50806004908162000280919062000c38565b505050620002a3620002976200048f60201b60201c565b6200049760201b60201c565b620002c5620002b76200055d60201b60201c565b60016200058760201b60201c565b620002fa600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200058760201b60201c565b6200032f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200058760201b60201c565b62000364600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200058760201b60201c565b620003773060016200058760201b60201c565b6200038c61dead60016200058760201b60201c565b620003ae620003a06200055d60201b60201c565b60016200067160201b60201c565b620003e3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200067160201b60201c565b62000418600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200067160201b60201c565b6200044d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200067160201b60201c565b620004603060016200067160201b60201c565b6200047561dead60016200067160201b60201c565b6200048930600a546200075b60201b60201c565b62000e7d565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005976200048f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005bd6200055d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000616576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060d9062000d80565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620006816200048f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006a76200055d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000700576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f79062000d80565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c49062000df2565b60405180910390fd5b620007e160008383620008d360201b60201c565b8060026000828254620007f5919062000e14565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084c919062000e14565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b3919062000e60565b60405180910390a3620008cf60008383620008d860201b60201c565b5050565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200092382620008dd565b91506200093083620008dd565b92508282026200094081620008dd565b915082820484148315176200095a5762000959620008e7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200099d82620008dd565b9150620009aa83620008dd565b925082620009bd57620009bc62000961565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a4a57607f821691505b60208210810362000a605762000a5f62000a02565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a8b565b62000ad6868362000a8b565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b1962000b1362000b0d84620008dd565b62000aee565b620008dd565b9050919050565b6000819050919050565b62000b358362000af8565b62000b4d62000b448262000b20565b84845462000a98565b825550505050565b600090565b62000b6462000b55565b62000b7181848462000b2a565b505050565b5b8181101562000b995762000b8d60008262000b5a565b60018101905062000b77565b5050565b601f82111562000be85762000bb28162000a66565b62000bbd8462000a7b565b8101602085101562000bcd578190505b62000be562000bdc8562000a7b565b83018262000b76565b50505b505050565b600082821c905092915050565b600062000c0d6000198460080262000bed565b1980831691505092915050565b600062000c28838362000bfa565b9150826002028217905092915050565b62000c4382620009c8565b67ffffffffffffffff81111562000c5f5762000c5e620009d3565b5b62000c6b825462000a31565b62000c7882828562000b9d565b600060209050601f83116001811462000cb0576000841562000c9b578287015190505b62000ca7858262000c1a565b86555062000d17565b601f19841662000cc08662000a66565b60005b8281101562000cea5784890151825560018201915060208501945060208101905062000cc3565b8683101562000d0a578489015162000d06601f89168262000bfa565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d6860208362000d1f565b915062000d758262000d30565b602082019050919050565b6000602082019050818103600083015262000d9b8162000d59565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000dda601f8362000d1f565b915062000de78262000da2565b602082019050919050565b6000602082019050818103600083015262000e0d8162000dcb565b9050919050565b600062000e2182620008dd565b915062000e2e83620008dd565b925082820190508082111562000e495762000e48620008e7565b5b92915050565b62000e5a81620008dd565b82525050565b600060208201905062000e77600083018462000e4f565b92915050565b6143bf8062000e8d6000396000f3fe60806040526004361061026b5760003560e01c80638a8c523c11610144578063bbc0c742116100b6578063e0f3ccf51161007a578063e0f3ccf514610945578063e2f4560514610970578063e4748b9e1461099b578063e8078d94146109c6578063f2fde38b146109d0578063f8b45b05146109f957610272565b8063bbc0c74214610860578063c02466681461088b578063c8c8ebe4146108b4578063ccec3716146108df578063dd62ed3e1461090857610272565b80639a7a23d6116101085780639a7a23d61461072c578063a457c2d714610755578063a5396c7914610792578063a9059cbb146107bb578063b5929f2e146107f8578063b62496f51461082357610272565b80638a8c523c1461066b5780638da5cb5b146106825780638ea5220f146106ad578063924de9b7146106d857806395d89b411461070157610272565b806339509351116101dd57806370a08231116101a157806370a082311461056d578063715018a6146105aa578063751039fc146105c15780637571336a146105ec57806375f0a87414610615578063782c4e991461064057610272565b8063395093511461047257806349bd5a5e146104af5780634a62bb65146104da5780634fbee193146105055780636ddd17131461054257610272565b806320800a001161022f57806320800a001461037257806323b872dd1461038957806327c8f835146103c65780632b345964146103f1578063313ce5671461041c578063360bfd541461044757610272565b806306fdde0314610277578063095ea7b3146102a257806310d5de53146102df5780631694505e1461031c57806318160ddd1461034757610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a24565b6040516102999190613263565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c4919061331e565b610ab6565b6040516102d69190613379565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190613394565b610ad4565b6040516103139190613379565b60405180910390f35b34801561032857600080fd5b50610331610af4565b60405161033e9190613420565b60405180910390f35b34801561035357600080fd5b5061035c610b1a565b604051610369919061344a565b60405180910390f35b34801561037e57600080fd5b50610387610b24565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613465565b610bd5565b6040516103bd9190613379565b60405180910390f35b3480156103d257600080fd5b506103db610ccd565b6040516103e891906134c7565b60405180910390f35b3480156103fd57600080fd5b50610406610cd3565b604051610413919061344a565b60405180910390f35b34801561042857600080fd5b50610431610cd9565b60405161043e91906134fe565b60405180910390f35b34801561045357600080fd5b5061045c610ce2565b604051610469919061344a565b60405180910390f35b34801561047e57600080fd5b506104996004803603810190610494919061331e565b610ce8565b6040516104a69190613379565b60405180910390f35b3480156104bb57600080fd5b506104c4610d94565b6040516104d191906134c7565b60405180910390f35b3480156104e657600080fd5b506104ef610dba565b6040516104fc9190613379565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190613394565b610dcd565b6040516105399190613379565b60405180910390f35b34801561054e57600080fd5b50610557610e23565b6040516105649190613379565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f9190613394565b610e36565b6040516105a1919061344a565b60405180910390f35b3480156105b657600080fd5b506105bf610e7e565b005b3480156105cd57600080fd5b506105d6610f06565b6040516105e39190613379565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e9190613545565b610fb6565b005b34801561062157600080fd5b5061062a61108d565b60405161063791906134c7565b60405180910390f35b34801561064c57600080fd5b506106556110b3565b60405161066291906134c7565b60405180910390f35b34801561067757600080fd5b506106806110d9565b005b34801561068e57600080fd5b5061069761118d565b6040516106a491906134c7565b60405180910390f35b3480156106b957600080fd5b506106c26111b7565b6040516106cf91906134c7565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa9190613585565b6111dd565b005b34801561070d57600080fd5b50610716611276565b6040516107239190613263565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613545565b611308565b005b34801561076157600080fd5b5061077c6004803603810190610777919061331e565b611422565b6040516107899190613379565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b491906135b2565b61150d565b005b3480156107c757600080fd5b506107e260048036038101906107dd919061331e565b611651565b6040516107ef9190613379565b60405180910390f35b34801561080457600080fd5b5061080d61166f565b60405161081a919061344a565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613394565b611675565b6040516108579190613379565b60405180910390f35b34801561086c57600080fd5b50610875611695565b6040516108829190613379565b60405180910390f35b34801561089757600080fd5b506108b260048036038101906108ad9190613545565b6116a8565b005b3480156108c057600080fd5b506108c961177f565b6040516108d6919061344a565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613394565b611785565b005b34801561091457600080fd5b5061092f600480360381019061092a9190613605565b611874565b60405161093c919061344a565b60405180910390f35b34801561095157600080fd5b5061095a6118fb565b604051610967919061344a565b60405180910390f35b34801561097c57600080fd5b50610985611901565b604051610992919061344a565b60405180910390f35b3480156109a757600080fd5b506109b0611907565b6040516109bd919061344a565b60405180910390f35b6109ce61190d565b005b3480156109dc57600080fd5b506109f760048036038101906109f29190613394565b611cd4565b005b348015610a0557600080fd5b50610a0e611dcb565b604051610a1b919061344a565b60405180910390f35b606060038054610a3390613674565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5f90613674565b8015610aac5780601f10610a8157610100808354040283529160200191610aac565b820191906000526020600020905b815481529060010190602001808311610a8f57829003601f168201915b5050505050905090565b6000610aca610ac3611dd1565b8484611dd9565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b65611dd1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8557600080fd5b610b8d611dd1565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bd2573d6000803e3d6000fd5b50565b6000610be2848484611fa2565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c2d611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca490613717565b60405180910390fd5b610cc185610cb9611dd1565b858403611dd9565b60019150509392505050565b61dead81565b60135481565b60006012905090565b60115481565b6000610d8a610cf5611dd1565b848460016000610d03611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d859190613766565b611dd9565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900460ff1681565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e86611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610ea461118d565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef1906137e6565b60405180910390fd5b610f046000612946565b565b6000610f10611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610f2e61118d565b73ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906137e6565b60405180910390fd5b6000600e60006101000a81548160ff02191690831515021790555060056010819055506005600f819055506001905090565b610fbe611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610fdc61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611032576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611029906137e6565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110e1611dd1565b73ffffffffffffffffffffffffffffffffffffffff166110ff61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c906137e6565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e5611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661120361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611259576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611250906137e6565b60405180910390fd5b80600e60026101000a81548160ff02191690831515021790555050565b60606004805461128590613674565b80601f01602080910402602001604051908101604052809291908181526020018280546112b190613674565b80156112fe5780601f106112d3576101008083540402835291602001916112fe565b820191906000526020600020905b8154815290600101906020018083116112e157829003601f168201915b5050505050905090565b611310611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661132e61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906137e6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613878565b60405180910390fd5b61141e8282612a0c565b5050565b60008060016000611431611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061390a565b60405180910390fd5b6115026114f9611dd1565b85858403611dd9565b600191505092915050565b611515611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661153361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906137e6565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600061166561165e611dd1565b8484611fa2565b6001905092915050565b60125481565b60186020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b6116b0611dd1565b73ffffffffffffffffffffffffffffffffffffffff166116ce61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b906137e6565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117c6611dd1565b73ffffffffffffffffffffffffffffffffffffffff16146117e657600080fd5b6118706117f1611dd1565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161182a91906134c7565b602060405180830381865afa158015611847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186b919061393f565b611651565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b600c5481565b600f5481565b611915611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661193361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611980906137e6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119ee816001610fb6565b611a2230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a1d610b1a565b611dd9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190613981565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c9190613981565b6040518363ffffffff1660e01b8152600401611b399291906139ae565b6020604051808303816000875af1158015611b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7c9190613981565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611be9601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610fb6565b611c16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612a0c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611c5e610b1a565b600080611c6961118d565b426040518863ffffffff1660e01b8152600401611c8b96959493929190613a12565b60606040518083038185885af1158015611ca9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cce9190613a73565b50505050565b611cdc611dd1565b73ffffffffffffffffffffffffffffffffffffffff16611cfa61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d47906137e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690613b38565b60405180910390fd5b611dc881612946565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613bca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90613c5c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f95919061344a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200890613cee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207790613d80565b60405180910390fd5b600081116120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613e12565b60405180910390fd5b600e60009054906101000a900460ff16156125be576120e061118d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214e575061211e61118d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121875750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121c1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121da5750600660149054906101000a900460ff16155b156125bd57600e60019054906101000a900460ff166122d457601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122945750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca90613e7e565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123775750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241e57600b548111156123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b890613f10565b60405180910390fd5b600d546123cd83610e36565b826123d89190613766565b1115612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241090613f7c565b60405180910390fd5b6125bc565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124c15750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251057600b5481111561250b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125029061400e565b60405180910390fd5b6125bb565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125ba57600d5461256d83610e36565b826125789190613766565b11156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090613f7c565b60405180910390fd5b5b5b5b5b5b600e60029054906101000a900460ff1680156125e75750600660149054906101000a900460ff16155b801561263d5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126935750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126e95750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561272d576001600660146101000a81548160ff021916908315150217905550612711612a67565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e35750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127ed57600090505b6000811561293457601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561285057506000601054115b156128845761287d606461286f60105486612cdb90919063ffffffff16565b612cf190919063ffffffff16565b9050612910565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128df57506000600f54115b1561290f5761290c60646128fe600f5486612cdb90919063ffffffff16565b612cf190919063ffffffff16565b90505b5b600081111561292557612924853083612d07565b5b8083612931919061402e565b92505b61293f858585612d07565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612a7230610e36565b90506000808203612a84575050612cd9565b600c548210612cd6576000600c549050612a9d81612f86565b60004790506000612acc6064612abe60115485612cdb90919063ffffffff16565b612cf190919063ffffffff16565b90506000612ae4600283612cdb90919063ffffffff16565b90506000819050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b3190614093565b60006040518083038185875af1925050503d8060008114612b6e576040519150601f19603f3d011682016040523d82523d6000602084013e612b73565b606091505b505080965050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612bbf90614093565b60006040518083038185875af1925050503d8060008114612bfc576040519150601f19603f3d011682016040523d82523d6000602084013e612c01565b606091505b505080965050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612c4d90614093565b60006040518083038185875af1925050503d8060008114612c8a576040519150601f19603f3d011682016040523d82523d6000602084013e612c8f565b606091505b5050809650507fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff858588604051612cc8939291906140a8565b60405180910390a150505050505b50505b565b60008183612ce991906140df565b905092915050565b60008183612cff9190614150565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6d90613cee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddc90613d80565b60405180910390fd5b612df08383836131c9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6d906141f3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613766565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f6d919061344a565b60405180910390a3612f808484846131ce565b50505050565b6000600267ffffffffffffffff811115612fa357612fa2614213565b5b604051908082528060200260200182016040528015612fd15781602001602082028036833780820191505090505b5090503081600081518110612fe957612fe8614242565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b49190613981565b816001815181106130c8576130c7614242565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061312f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dd9565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161319395949392919061432f565b600060405180830381600087803b1580156131ad57600080fd5b505af11580156131c1573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561320d5780820151818401526020810190506131f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613235826131d3565b61323f81856131de565b935061324f8185602086016131ef565b61325881613219565b840191505092915050565b6000602082019050818103600083015261327d818461322a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132b58261328a565b9050919050565b6132c5816132aa565b81146132d057600080fd5b50565b6000813590506132e2816132bc565b92915050565b6000819050919050565b6132fb816132e8565b811461330657600080fd5b50565b600081359050613318816132f2565b92915050565b6000806040838503121561333557613334613285565b5b6000613343858286016132d3565b925050602061335485828601613309565b9150509250929050565b60008115159050919050565b6133738161335e565b82525050565b600060208201905061338e600083018461336a565b92915050565b6000602082840312156133aa576133a9613285565b5b60006133b8848285016132d3565b91505092915050565b6000819050919050565b60006133e66133e16133dc8461328a565b6133c1565b61328a565b9050919050565b60006133f8826133cb565b9050919050565b600061340a826133ed565b9050919050565b61341a816133ff565b82525050565b60006020820190506134356000830184613411565b92915050565b613444816132e8565b82525050565b600060208201905061345f600083018461343b565b92915050565b60008060006060848603121561347e5761347d613285565b5b600061348c868287016132d3565b935050602061349d868287016132d3565b92505060406134ae86828701613309565b9150509250925092565b6134c1816132aa565b82525050565b60006020820190506134dc60008301846134b8565b92915050565b600060ff82169050919050565b6134f8816134e2565b82525050565b600060208201905061351360008301846134ef565b92915050565b6135228161335e565b811461352d57600080fd5b50565b60008135905061353f81613519565b92915050565b6000806040838503121561355c5761355b613285565b5b600061356a858286016132d3565b925050602061357b85828601613530565b9150509250929050565b60006020828403121561359b5761359a613285565b5b60006135a984828501613530565b91505092915050565b6000806000606084860312156135cb576135ca613285565b5b60006135d9868287016132d3565b93505060206135ea868287016132d3565b92505060406135fb868287016132d3565b9150509250925092565b6000806040838503121561361c5761361b613285565b5b600061362a858286016132d3565b925050602061363b858286016132d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061368c57607f821691505b60208210810361369f5761369e613645565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006137016028836131de565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613771826132e8565b915061377c836132e8565b925082820190508082111561379457613793613737565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137d06020836131de565b91506137db8261379a565b602082019050919050565b600060208201905081810360008301526137ff816137c3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006138626039836131de565b915061386d82613806565b604082019050919050565b6000602082019050818103600083015261389181613855565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006138f46025836131de565b91506138ff82613898565b604082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b600081519050613939816132f2565b92915050565b60006020828403121561395557613954613285565b5b60006139638482850161392a565b91505092915050565b60008151905061397b816132bc565b92915050565b60006020828403121561399757613996613285565b5b60006139a58482850161396c565b91505092915050565b60006040820190506139c360008301856134b8565b6139d060208301846134b8565b9392505050565b6000819050919050565b60006139fc6139f76139f2846139d7565b6133c1565b6132e8565b9050919050565b613a0c816139e1565b82525050565b600060c082019050613a2760008301896134b8565b613a34602083018861343b565b613a416040830187613a03565b613a4e6060830186613a03565b613a5b60808301856134b8565b613a6860a083018461343b565b979650505050505050565b600080600060608486031215613a8c57613a8b613285565b5b6000613a9a8682870161392a565b9350506020613aab8682870161392a565b9250506040613abc8682870161392a565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b226026836131de565b9150613b2d82613ac6565b604082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bb46024836131de565b9150613bbf82613b58565b604082019050919050565b60006020820190508181036000830152613be381613ba7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c466022836131de565b9150613c5182613bea565b604082019050919050565b60006020820190508181036000830152613c7581613c39565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cd86025836131de565b9150613ce382613c7c565b604082019050919050565b60006020820190508181036000830152613d0781613ccb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d6a6023836131de565b9150613d7582613d0e565b604082019050919050565b60006020820190508181036000830152613d9981613d5d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dfc6029836131de565b9150613e0782613da0565b604082019050919050565b60006020820190508181036000830152613e2b81613def565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b6000613e68601b836131de565b9150613e7382613e32565b602082019050919050565b60006020820190508181036000830152613e9781613e5b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613efa6035836131de565b9150613f0582613e9e565b604082019050919050565b60006020820190508181036000830152613f2981613eed565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f666013836131de565b9150613f7182613f30565b602082019050919050565b60006020820190508181036000830152613f9581613f59565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ff86036836131de565b915061400382613f9c565b604082019050919050565b6000602082019050818103600083015261402781613feb565b9050919050565b6000614039826132e8565b9150614044836132e8565b925082820390508181111561405c5761405b613737565b5b92915050565b600081905092915050565b50565b600061407d600083614062565b91506140888261406d565b600082019050919050565b600061409e82614070565b9150819050919050565b60006060820190506140bd600083018661343b565b6140ca602083018561343b565b6140d7604083018461336a565b949350505050565b60006140ea826132e8565b91506140f5836132e8565b9250828202614103816132e8565b9150828204841483151761411a57614119613737565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061415b826132e8565b9150614166836132e8565b92508261417657614175614121565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006141dd6026836131de565b91506141e882614181565b604082019050919050565b6000602082019050818103600083015261420c816141d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142a6816132aa565b82525050565b60006142b8838361429d565b60208301905092915050565b6000602082019050919050565b60006142dc82614271565b6142e6818561427c565b93506142f18361428d565b8060005b8381101561432257815161430988826142ac565b9750614314836142c4565b9250506001810190506142f5565b5085935050505092915050565b600060a082019050614344600083018861343b565b6143516020830187613a03565b818103604083015261436381866142d1565b905061437260608301856134b8565b61437f608083018461343b565b969550505050505056fea264697066735822122058f4838c5e692d71dc488f4763bdc969441413308cf989adbad537c41b14ed6064736f6c63430008120033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c80638a8c523c11610144578063bbc0c742116100b6578063e0f3ccf51161007a578063e0f3ccf514610945578063e2f4560514610970578063e4748b9e1461099b578063e8078d94146109c6578063f2fde38b146109d0578063f8b45b05146109f957610272565b8063bbc0c74214610860578063c02466681461088b578063c8c8ebe4146108b4578063ccec3716146108df578063dd62ed3e1461090857610272565b80639a7a23d6116101085780639a7a23d61461072c578063a457c2d714610755578063a5396c7914610792578063a9059cbb146107bb578063b5929f2e146107f8578063b62496f51461082357610272565b80638a8c523c1461066b5780638da5cb5b146106825780638ea5220f146106ad578063924de9b7146106d857806395d89b411461070157610272565b806339509351116101dd57806370a08231116101a157806370a082311461056d578063715018a6146105aa578063751039fc146105c15780637571336a146105ec57806375f0a87414610615578063782c4e991461064057610272565b8063395093511461047257806349bd5a5e146104af5780634a62bb65146104da5780634fbee193146105055780636ddd17131461054257610272565b806320800a001161022f57806320800a001461037257806323b872dd1461038957806327c8f835146103c65780632b345964146103f1578063313ce5671461041c578063360bfd541461044757610272565b806306fdde0314610277578063095ea7b3146102a257806310d5de53146102df5780631694505e1461031c57806318160ddd1461034757610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a24565b6040516102999190613263565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c4919061331e565b610ab6565b6040516102d69190613379565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190613394565b610ad4565b6040516103139190613379565b60405180910390f35b34801561032857600080fd5b50610331610af4565b60405161033e9190613420565b60405180910390f35b34801561035357600080fd5b5061035c610b1a565b604051610369919061344a565b60405180910390f35b34801561037e57600080fd5b50610387610b24565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613465565b610bd5565b6040516103bd9190613379565b60405180910390f35b3480156103d257600080fd5b506103db610ccd565b6040516103e891906134c7565b60405180910390f35b3480156103fd57600080fd5b50610406610cd3565b604051610413919061344a565b60405180910390f35b34801561042857600080fd5b50610431610cd9565b60405161043e91906134fe565b60405180910390f35b34801561045357600080fd5b5061045c610ce2565b604051610469919061344a565b60405180910390f35b34801561047e57600080fd5b506104996004803603810190610494919061331e565b610ce8565b6040516104a69190613379565b60405180910390f35b3480156104bb57600080fd5b506104c4610d94565b6040516104d191906134c7565b60405180910390f35b3480156104e657600080fd5b506104ef610dba565b6040516104fc9190613379565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190613394565b610dcd565b6040516105399190613379565b60405180910390f35b34801561054e57600080fd5b50610557610e23565b6040516105649190613379565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f9190613394565b610e36565b6040516105a1919061344a565b60405180910390f35b3480156105b657600080fd5b506105bf610e7e565b005b3480156105cd57600080fd5b506105d6610f06565b6040516105e39190613379565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e9190613545565b610fb6565b005b34801561062157600080fd5b5061062a61108d565b60405161063791906134c7565b60405180910390f35b34801561064c57600080fd5b506106556110b3565b60405161066291906134c7565b60405180910390f35b34801561067757600080fd5b506106806110d9565b005b34801561068e57600080fd5b5061069761118d565b6040516106a491906134c7565b60405180910390f35b3480156106b957600080fd5b506106c26111b7565b6040516106cf91906134c7565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa9190613585565b6111dd565b005b34801561070d57600080fd5b50610716611276565b6040516107239190613263565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e9190613545565b611308565b005b34801561076157600080fd5b5061077c6004803603810190610777919061331e565b611422565b6040516107899190613379565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b491906135b2565b61150d565b005b3480156107c757600080fd5b506107e260048036038101906107dd919061331e565b611651565b6040516107ef9190613379565b60405180910390f35b34801561080457600080fd5b5061080d61166f565b60405161081a919061344a565b60405180910390f35b34801561082f57600080fd5b5061084a60048036038101906108459190613394565b611675565b6040516108579190613379565b60405180910390f35b34801561086c57600080fd5b50610875611695565b6040516108829190613379565b60405180910390f35b34801561089757600080fd5b506108b260048036038101906108ad9190613545565b6116a8565b005b3480156108c057600080fd5b506108c961177f565b6040516108d6919061344a565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613394565b611785565b005b34801561091457600080fd5b5061092f600480360381019061092a9190613605565b611874565b60405161093c919061344a565b60405180910390f35b34801561095157600080fd5b5061095a6118fb565b604051610967919061344a565b60405180910390f35b34801561097c57600080fd5b50610985611901565b604051610992919061344a565b60405180910390f35b3480156109a757600080fd5b506109b0611907565b6040516109bd919061344a565b60405180910390f35b6109ce61190d565b005b3480156109dc57600080fd5b506109f760048036038101906109f29190613394565b611cd4565b005b348015610a0557600080fd5b50610a0e611dcb565b604051610a1b919061344a565b60405180910390f35b606060038054610a3390613674565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5f90613674565b8015610aac5780601f10610a8157610100808354040283529160200191610aac565b820191906000526020600020905b815481529060010190602001808311610a8f57829003601f168201915b5050505050905090565b6000610aca610ac3611dd1565b8484611dd9565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b65611dd1565b73ffffffffffffffffffffffffffffffffffffffff1614610b8557600080fd5b610b8d611dd1565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bd2573d6000803e3d6000fd5b50565b6000610be2848484611fa2565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c2d611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca490613717565b60405180910390fd5b610cc185610cb9611dd1565b858403611dd9565b60019150509392505050565b61dead81565b60135481565b60006012905090565b60115481565b6000610d8a610cf5611dd1565b848460016000610d03611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d859190613766565b611dd9565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900460ff1681565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e86611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610ea461118d565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef1906137e6565b60405180910390fd5b610f046000612946565b565b6000610f10611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610f2e61118d565b73ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906137e6565b60405180910390fd5b6000600e60006101000a81548160ff02191690831515021790555060056010819055506005600f819055506001905090565b610fbe611dd1565b73ffffffffffffffffffffffffffffffffffffffff16610fdc61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611032576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611029906137e6565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110e1611dd1565b73ffffffffffffffffffffffffffffffffffffffff166110ff61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c906137e6565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111e5611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661120361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611259576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611250906137e6565b60405180910390fd5b80600e60026101000a81548160ff02191690831515021790555050565b60606004805461128590613674565b80601f01602080910402602001604051908101604052809291908181526020018280546112b190613674565b80156112fe5780601f106112d3576101008083540402835291602001916112fe565b820191906000526020600020905b8154815290600101906020018083116112e157829003601f168201915b5050505050905090565b611310611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661132e61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906137e6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613878565b60405180910390fd5b61141e8282612a0c565b5050565b60008060016000611431611dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e59061390a565b60405180910390fd5b6115026114f9611dd1565b85858403611dd9565b600191505092915050565b611515611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661153361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906137e6565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600061166561165e611dd1565b8484611fa2565b6001905092915050565b60125481565b60186020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b6116b0611dd1565b73ffffffffffffffffffffffffffffffffffffffff166116ce61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b906137e6565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b5481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117c6611dd1565b73ffffffffffffffffffffffffffffffffffffffff16146117e657600080fd5b6118706117f1611dd1565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161182a91906134c7565b602060405180830381865afa158015611847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186b919061393f565b611651565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60105481565b600c5481565b600f5481565b611915611dd1565b73ffffffffffffffffffffffffffffffffffffffff1661193361118d565b73ffffffffffffffffffffffffffffffffffffffff1614611989576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611980906137e6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119ee816001610fb6565b611a2230601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a1d610b1a565b611dd9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190613981565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c9190613981565b6040518363ffffffff1660e01b8152600401611b399291906139ae565b6020604051808303816000875af1158015611b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7c9190613981565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611be9601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610fb6565b611c16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612a0c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611c5e610b1a565b600080611c6961118d565b426040518863ffffffff1660e01b8152600401611c8b96959493929190613a12565b60606040518083038185885af1158015611ca9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cce9190613a73565b50505050565b611cdc611dd1565b73ffffffffffffffffffffffffffffffffffffffff16611cfa61118d565b73ffffffffffffffffffffffffffffffffffffffff1614611d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d47906137e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db690613b38565b60405180910390fd5b611dc881612946565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f90613bca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae90613c5c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f95919061344a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200890613cee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207790613d80565b60405180910390fd5b600081116120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613e12565b60405180910390fd5b600e60009054906101000a900460ff16156125be576120e061118d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561214e575061211e61118d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121875750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121c1575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121da5750600660149054906101000a900460ff16155b156125bd57600e60019054906101000a900460ff166122d457601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122945750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca90613e7e565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123775750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241e57600b548111156123c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b890613f10565b60405180910390fd5b600d546123cd83610e36565b826123d89190613766565b1115612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241090613f7c565b60405180910390fd5b6125bc565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124c15750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251057600b5481111561250b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125029061400e565b60405180910390fd5b6125bb565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125ba57600d5461256d83610e36565b826125789190613766565b11156125b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b090613f7c565b60405180910390fd5b5b5b5b5b5b600e60029054906101000a900460ff1680156125e75750600660149054906101000a900460ff16155b801561263d5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126935750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126e95750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561272d576001600660146101000a81548160ff021916908315150217905550612711612a67565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e35750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127ed57600090505b6000811561293457601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561285057506000601054115b156128845761287d606461286f60105486612cdb90919063ffffffff16565b612cf190919063ffffffff16565b9050612910565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128df57506000600f54115b1561290f5761290c60646128fe600f5486612cdb90919063ffffffff16565b612cf190919063ffffffff16565b90505b5b600081111561292557612924853083612d07565b5b8083612931919061402e565b92505b61293f858585612d07565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612a7230610e36565b90506000808203612a84575050612cd9565b600c548210612cd6576000600c549050612a9d81612f86565b60004790506000612acc6064612abe60115485612cdb90919063ffffffff16565b612cf190919063ffffffff16565b90506000612ae4600283612cdb90919063ffffffff16565b90506000819050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612b3190614093565b60006040518083038185875af1925050503d8060008114612b6e576040519150601f19603f3d011682016040523d82523d6000602084013e612b73565b606091505b505080965050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612bbf90614093565b60006040518083038185875af1925050503d8060008114612bfc576040519150601f19603f3d011682016040523d82523d6000602084013e612c01565b606091505b505080965050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612c4d90614093565b60006040518083038185875af1925050503d8060008114612c8a576040519150601f19603f3d011682016040523d82523d6000602084013e612c8f565b606091505b5050809650507fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff858588604051612cc8939291906140a8565b60405180910390a150505050505b50505b565b60008183612ce991906140df565b905092915050565b60008183612cff9190614150565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6d90613cee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddc90613d80565b60405180910390fd5b612df08383836131c9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6d906141f3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613766565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f6d919061344a565b60405180910390a3612f808484846131ce565b50505050565b6000600267ffffffffffffffff811115612fa357612fa2614213565b5b604051908082528060200260200182016040528015612fd15781602001602082028036833780820191505090505b5090503081600081518110612fe957612fe8614242565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b49190613981565b816001815181106130c8576130c7614242565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061312f30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dd9565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161319395949392919061432f565b600060405180830381600087803b1580156131ad57600080fd5b505af11580156131c1573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561320d5780820151818401526020810190506131f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000613235826131d3565b61323f81856131de565b935061324f8185602086016131ef565b61325881613219565b840191505092915050565b6000602082019050818103600083015261327d818461322a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132b58261328a565b9050919050565b6132c5816132aa565b81146132d057600080fd5b50565b6000813590506132e2816132bc565b92915050565b6000819050919050565b6132fb816132e8565b811461330657600080fd5b50565b600081359050613318816132f2565b92915050565b6000806040838503121561333557613334613285565b5b6000613343858286016132d3565b925050602061335485828601613309565b9150509250929050565b60008115159050919050565b6133738161335e565b82525050565b600060208201905061338e600083018461336a565b92915050565b6000602082840312156133aa576133a9613285565b5b60006133b8848285016132d3565b91505092915050565b6000819050919050565b60006133e66133e16133dc8461328a565b6133c1565b61328a565b9050919050565b60006133f8826133cb565b9050919050565b600061340a826133ed565b9050919050565b61341a816133ff565b82525050565b60006020820190506134356000830184613411565b92915050565b613444816132e8565b82525050565b600060208201905061345f600083018461343b565b92915050565b60008060006060848603121561347e5761347d613285565b5b600061348c868287016132d3565b935050602061349d868287016132d3565b92505060406134ae86828701613309565b9150509250925092565b6134c1816132aa565b82525050565b60006020820190506134dc60008301846134b8565b92915050565b600060ff82169050919050565b6134f8816134e2565b82525050565b600060208201905061351360008301846134ef565b92915050565b6135228161335e565b811461352d57600080fd5b50565b60008135905061353f81613519565b92915050565b6000806040838503121561355c5761355b613285565b5b600061356a858286016132d3565b925050602061357b85828601613530565b9150509250929050565b60006020828403121561359b5761359a613285565b5b60006135a984828501613530565b91505092915050565b6000806000606084860312156135cb576135ca613285565b5b60006135d9868287016132d3565b93505060206135ea868287016132d3565b92505060406135fb868287016132d3565b9150509250925092565b6000806040838503121561361c5761361b613285565b5b600061362a858286016132d3565b925050602061363b858286016132d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061368c57607f821691505b60208210810361369f5761369e613645565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006137016028836131de565b915061370c826136a5565b604082019050919050565b60006020820190508181036000830152613730816136f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613771826132e8565b915061377c836132e8565b925082820190508082111561379457613793613737565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137d06020836131de565b91506137db8261379a565b602082019050919050565b600060208201905081810360008301526137ff816137c3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006138626039836131de565b915061386d82613806565b604082019050919050565b6000602082019050818103600083015261389181613855565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006138f46025836131de565b91506138ff82613898565b604082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b600081519050613939816132f2565b92915050565b60006020828403121561395557613954613285565b5b60006139638482850161392a565b91505092915050565b60008151905061397b816132bc565b92915050565b60006020828403121561399757613996613285565b5b60006139a58482850161396c565b91505092915050565b60006040820190506139c360008301856134b8565b6139d060208301846134b8565b9392505050565b6000819050919050565b60006139fc6139f76139f2846139d7565b6133c1565b6132e8565b9050919050565b613a0c816139e1565b82525050565b600060c082019050613a2760008301896134b8565b613a34602083018861343b565b613a416040830187613a03565b613a4e6060830186613a03565b613a5b60808301856134b8565b613a6860a083018461343b565b979650505050505050565b600080600060608486031215613a8c57613a8b613285565b5b6000613a9a8682870161392a565b9350506020613aab8682870161392a565b9250506040613abc8682870161392a565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b226026836131de565b9150613b2d82613ac6565b604082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613bb46024836131de565b9150613bbf82613b58565b604082019050919050565b60006020820190508181036000830152613be381613ba7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c466022836131de565b9150613c5182613bea565b604082019050919050565b60006020820190508181036000830152613c7581613c39565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cd86025836131de565b9150613ce382613c7c565b604082019050919050565b60006020820190508181036000830152613d0781613ccb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d6a6023836131de565b9150613d7582613d0e565b604082019050919050565b60006020820190508181036000830152613d9981613d5d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dfc6029836131de565b9150613e0782613da0565b604082019050919050565b60006020820190508181036000830152613e2b81613def565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b6000613e68601b836131de565b9150613e7382613e32565b602082019050919050565b60006020820190508181036000830152613e9781613e5b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613efa6035836131de565b9150613f0582613e9e565b604082019050919050565b60006020820190508181036000830152613f2981613eed565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f666013836131de565b9150613f7182613f30565b602082019050919050565b60006020820190508181036000830152613f9581613f59565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ff86036836131de565b915061400382613f9c565b604082019050919050565b6000602082019050818103600083015261402781613feb565b9050919050565b6000614039826132e8565b9150614044836132e8565b925082820390508181111561405c5761405b613737565b5b92915050565b600081905092915050565b50565b600061407d600083614062565b91506140888261406d565b600082019050919050565b600061409e82614070565b9150819050919050565b60006060820190506140bd600083018661343b565b6140ca602083018561343b565b6140d7604083018461336a565b949350505050565b60006140ea826132e8565b91506140f5836132e8565b9250828202614103816132e8565b9150828204841483151761411a57614119613737565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061415b826132e8565b9150614166836132e8565b92508261417657614175614121565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006141dd6026836131de565b91506141e882614181565b604082019050919050565b6000602082019050818103600083015261420c816141d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142a6816132aa565b82525050565b60006142b8838361429d565b60208301905092915050565b6000602082019050919050565b60006142dc82614271565b6142e6818561427c565b93506142f18361428d565b8060005b8381101561432257815161430988826142ac565b9750614314836142c4565b9250506001810190506142f5565b5085935050505092915050565b600060a082019050614344600083018861343b565b6143516020830187613a03565b818103604083015261436381866142d1565b905061437260608301856134b8565b61437f608083018461343b565b969550505050505056fea264697066735822122058f4838c5e692d71dc488f4763bdc969441413308cf989adbad537c41b14ed6064736f6c63430008120033
Deployed Bytecode Sourcemap
18596:10743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4967:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6569:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20140:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19883:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5456:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28997:147;;;;;;;;;;;;;:::i;:::-;;6771:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19966:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19807:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5298:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19718:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19931:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19527:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23880:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19607:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5627:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1715:103;;;;;;;;;;;;;:::i;:::-;;21327:166;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21501:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18890:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18789:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21140:112;;;;;;;;;;;;;:::i;:::-;;1064:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18992;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21798:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5186:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22046:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7606:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23596:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5983:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19763:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20210:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19567:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21906:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19138:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29152:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6246:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19681:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19258:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19647:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22358:1092;;;:::i;:::-;;1973:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19431:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4967:100;5021:13;5054:5;5047:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4967:100;:::o;6569:194::-;6677:4;6694:39;6703:12;:10;:12::i;:::-;6717:7;6726:6;6694:8;:39::i;:::-;6751:4;6744:11;;6569:194;;;;:::o;20140:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;19883:41::-;;;;;;;;;;;;;:::o;5456:108::-;5517:7;5544:12;;5537:19;;5456:108;:::o;28997:147::-;29062:9;;;;;;;;;;;29046:25;;:12;:10;:12::i;:::-;:25;;;29038:34;;;;;;29091:12;:10;:12::i;:::-;29083:30;;:53;29114:21;29083:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28997:147::o;6771:529::-;6911:4;6928:36;6938:6;6946:9;6957:6;6928:9;:36::i;:::-;6977:24;7004:11;:19;7016:6;7004:19;;;;;;;;;;;;;;;:33;7024:12;:10;:12::i;:::-;7004:33;;;;;;;;;;;;;;;;6977:60;;7090:6;7070:16;:26;;7048:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;7200:57;7209:6;7217:12;:10;:12::i;:::-;7250:6;7231:16;:25;7200:8;:57::i;:::-;7288:4;7281:11;;;6771:529;;;;;:::o;19966:53::-;20012:6;19966:53;:::o;19807:29::-;;;;:::o;5298:93::-;5356:5;5381:2;5374:9;;5298:93;:::o;19718:35::-;;;;:::o;7308:290::-;7421:4;7438:130;7461:12;:10;:12::i;:::-;7488:7;7547:10;7510:11;:25;7522:12;:10;:12::i;:::-;7510:25;;;;;;;;;;;;;;;:34;7536:7;7510:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7438:8;:130::i;:::-;7586:4;7579:11;;7308:290;;;;:::o;19931:28::-;;;;;;;;;;;;;:::o;19527:33::-;;;;;;;;;;;;;:::o;23880:126::-;23946:4;23970:19;:28;23990:7;23970:28;;;;;;;;;;;;;;;;;;;;;;;;;23963:35;;23880:126;;;:::o;19607:31::-;;;;;;;;;;;;;:::o;5627:143::-;5717:7;5744:9;:18;5754:7;5744:18;;;;;;;;;;;;;;;;5737:25;;5627:143;;;:::o;1715:103::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:30:::1;1807:1;1780:18;:30::i;:::-;1715:103::o:0;21327:166::-;21379:4;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21413:5:::1;21396:14;;:22;;;;;;;;;;;;;;;;;;21440:1;21429:8;:12;;;;21462:1;21452:7;:11;;;;21481:4;21474:11;;21327:166:::0;:::o;21501:201::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21684:10:::1;21632:31;:49;21664:16;21632:49;;;;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;21501:201:::0;;:::o;18890:93::-;;;;;;;;;;;;;:::o;18789:92::-;;;;;;;;;;;;;:::o;21140:112::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21211:4:::1;21195:13;;:20;;;;;;;;;;;;;;;;;;21240:4;21226:11;;:18;;;;;;;;;;;;;;;;;;21140:112::o:0;1064:87::-;1110:7;1137:6;;;;;;;;;;;1130:13;;1064:87;:::o;18992:::-;;;;;;;;;;;;;:::o;21798:100::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21883:7:::1;21869:11;;:21;;;;;;;;;;;;;;;;;;21798:100:::0;:::o;5186:104::-;5242:13;5275:7;5268:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5186:104;:::o;22046:304::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22192:13:::1;;;;;;;;;;;22184:21;;:4;:21;;::::0;22162:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22301:41;22330:4;22336:5;22301:28;:41::i;:::-;22046:304:::0;;:::o;7606:475::-;7724:4;7741:24;7768:11;:25;7780:12;:10;:12::i;:::-;7768:25;;;;;;;;;;;;;;;:34;7794:7;7768:34;;;;;;;;;;;;;;;;7741:61;;7855:15;7835:16;:35;;7813:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:67;7980:12;:10;:12::i;:::-;7994:7;8022:15;8003:16;:34;7971:8;:67::i;:::-;8069:4;8062:11;;;7606:475;;;;:::o;23596:276::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23766:10:::1;23754:9;;:22;;;;;;;;;;;;;;;;;;23804:15;23787:14;;:32;;;;;;;;;;;;;;;;;;23848:16;23830:15;;:34;;;;;;;;;;;;;;;;;;23596:276:::0;;;:::o;5983:200::-;6094:4;6111:42;6121:12;:10;:12::i;:::-;6135:9;6146:6;6111:9;:42::i;:::-;6171:4;6164:11;;5983:200;;;;:::o;19763:34::-;;;;:::o;20210:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;19567:33::-;;;;;;;;;;;;;:::o;21906:132::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22022:8:::1;21991:19;:28;22011:7;21991:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21906:132:::0;;:::o;19138:64::-;;;;:::o;29152:182::-;29233:9;;;;;;;;;;;29217:25;;:12;:10;:12::i;:::-;:25;;;29209:34;;;;;;29254:72;29263:12;:10;:12::i;:::-;29292:6;29277:33;;;29319:4;29277:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29254:8;:72::i;:::-;;29152:182;:::o;6246:176::-;6360:7;6387:11;:18;6399:5;6387:18;;;;;;;;;;;;;;;:27;6406:7;6387:27;;;;;;;;;;;;;;;;6380:34;;6246:176;;;;:::o;19681:28::-;;;;:::o;19258:63::-;;;;:::o;19647:27::-;;;;:::o;22358:1092::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22487:35:::1;22558:42;22487:124;;22642:16;22624:15;;:34;;;;;;;;;;;;;;;;;;22669:58;22703:16;22722:4;22669:25;:58::i;:::-;22738:64;22755:4;22770:15;;;;;;;;;;;22788:13;:11;:13::i;:::-;22738:8;:64::i;:::-;22877:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22859:70;;;22938:4;22945:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22859:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22843:13;;:126;;;;;;;;;;;;;;;;;;22980:55;23014:13;;;;;;;;;;;23030:4;22980:25;:55::i;:::-;23046:58;23083:13;;;;;;;;;;;23099:4;23046:28;:58::i;:::-;23117:15;;;;;;;;;;;:31;;;23156:9;23189:4;23225:13;:11;:13::i;:::-;23273:1;23316::::0;23359:7:::1;:5;:7::i;:::-;23416:15;23117:325;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22409:1041;22358:1092::o:0;1973:238::-;1295:12;:10;:12::i;:::-;1284:23;;:7;:5;:7::i;:::-;:23;;;1276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2096:1:::1;2076:22;;:8;:22;;::::0;2054:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2175:28;2194:8;2175:18;:28::i;:::-;1973:238:::0;:::o;19431:53::-;;;;:::o;385:98::-;438:7;465:10;458:17;;385:98;:::o;9873:380::-;10026:1;10009:19;;:5;:19;;;10001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10107:1;10088:21;;:7;:21;;;10080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10191:6;10161:11;:18;10173:5;10161:18;;;;;;;;;;;;;;;:27;10180:7;10161:27;;;;;;;;;;;;;;;:36;;;;10229:7;10213:32;;10222:5;10213:32;;;10238:6;10213:32;;;;;;:::i;:::-;;;;;;;;9873:380;;;:::o;24014:3339::-;24162:1;24146:18;;:4;:18;;;24138:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24239:1;24225:16;;:2;:16;;;24217:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24309:1;24300:6;:10;24292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24371:14;;;;;;;;;;;24367:1699;;;24432:7;:5;:7::i;:::-;24424:15;;:4;:15;;;;:49;;;;;24466:7;:5;:7::i;:::-;24460:13;;:2;:13;;;;24424:49;:86;;;;;24508:1;24494:16;;:2;:16;;;;24424:86;:128;;;;;24545:6;24531:21;;:2;:21;;;;24424:128;:158;;;;;24574:8;;;;;;;;;;;24573:9;24424:158;24402:1653;;;24622:13;;;;;;;;;;;24617:228;;24694:19;:25;24714:4;24694:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24723:19;:23;24743:2;24723:23;;;;;;;;;;;;;;;;;;;;;;;;;24694:52;24660:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;24617:228;24919:25;:31;24945:4;24919:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24976:31;:35;25008:2;24976:35;;;;;;;;;;;;;;;;;;;;;;;;;24975:36;24919:92;24893:1147;;;25098:20;;25088:6;:30;;25054:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;25306:9;;25289:13;25299:2;25289:9;:13::i;:::-;25280:6;:22;;;;:::i;:::-;:35;;25246:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24893:1147;;;25484:25;:29;25510:2;25484:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;25539:31;:37;25571:4;25539:37;;;;;;;;;;;;;;;;;;;;;;;;;25538:38;25484:92;25458:582;;;25663:20;;25653:6;:30;;25619:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;25458:582;;;25820:31;:35;25852:2;25820:35;;;;;;;;;;;;;;;;;;;;;;;;;25815:225;;25940:9;;25923:13;25933:2;25923:9;:13::i;:::-;25914:6;:22;;;;:::i;:::-;:35;;25880:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;25815:225;25458:582;24893:1147;24402:1653;24367:1699;26096:11;;;;;;;;;;;:55;;;;;26143:8;;;;;;;;;;;26142:9;26096:55;:123;;;;;26188:25;:31;26214:4;26188:31;;;;;;;;;;;;;;;;;;;;;;;;;26187:32;26096:123;:185;;;;;26256:19;:25;26276:4;26256:25;;;;;;;;;;;;;;;;;;;;;;;;;26255:26;26096:185;:245;;;;;26318:19;:23;26338:2;26318:23;;;;;;;;;;;;;;;;;;;;;;;;;26317:24;26096:245;26078:392;;;26398:4;26387:8;;:15;;;;;;;;;;;;;;;;;;26417:10;:8;:10::i;:::-;26453:5;26442:8;;:16;;;;;;;;;;;;;;;;;;26078:392;26482:12;26498:8;;;;;;;;;;;26497:9;26482:24;;26608:19;:25;26628:4;26608:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;26637:19;:23;26657:2;26637:23;;;;;;;;;;;;;;;;;;;;;;;;;26608:52;26604:100;;;26687:5;26677:15;;26604:100;26716:12;26821:7;26817:485;;;26873:25;:29;26899:2;26873:29;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;26917:1;26906:8;;:12;26873:45;26869:286;;;26946:29;26971:3;26946:20;26957:8;;26946:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;26939:36;;26869:286;;;27037:25;:31;27063:4;27037:31;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;27082:1;27072:7;;:11;27037:46;27033:122;;;27111:28;27135:3;27111:19;27122:7;;27111:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;27104:35;;27033:122;26869:286;27182:1;27175:4;:8;27171:91;;;27204:42;27220:4;27234;27241;27204:15;:42::i;:::-;27171:91;27286:4;27276:14;;;;;:::i;:::-;;;26817:485;27312:33;27328:4;27334:2;27338:6;27312:15;:33::i;:::-;24127:3226;;24014:3339;;;:::o;2371:191::-;2445:16;2464:6;;;;;;;;;;;2445:25;;2490:8;2481:6;;:17;;;;;;;;;;;;;;;;;;2545:8;2514:40;;2535:8;2514:40;;;;;;;;;;;;2434:128;2371:191;:::o;23458:130::-;23575:5;23541:25;:31;23567:4;23541:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;23458:130;;:::o;27954:1035::-;27993:23;28019:24;28037:4;28019:9;:24::i;:::-;27993:50;;28054:12;28100:1;28081:15;:20;28077:59;;28118:7;;;;28077:59;28169:18;;28150:15;:37;28146:836;;28204:26;28233:18;;28204:47;;28266:36;28283:18;28266:16;:36::i;:::-;28317:23;28343:21;28317:47;;28379:25;28407:81;28484:3;28407:54;28445:15;;28407;:37;;:54;;;;:::i;:::-;:76;;:81;;;;:::i;:::-;28379:109;;28503:24;28530;28552:1;28530:17;:21;;:24;;;;:::i;:::-;28503:51;;28569:19;28591:16;28569:38;;28644:15;;;;;;;;;;;28636:29;;28691:17;28636:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28622:105;;;;;28764:14;;;;;;;;;;;28756:28;;28792:16;28756:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28742:71;;;;;28850:9;;;;;;;;;;;28842:23;;28873:11;28842:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28828:61;;;;;28909;28925:18;28945:15;28962:7;28909:61;;;;;;;;:::i;:::-;;;;;;;;28189:793;;;;;28146:836;27982:1007;;27954:1035;:::o;12235:98::-;12293:7;12324:1;12320;:5;;;;:::i;:::-;12313:12;;12235:98;;;;:::o;12341:::-;12399:7;12430:1;12426;:5;;;;:::i;:::-;12419:12;;12341:98;;;;:::o;8089:770::-;8247:1;8229:20;;:6;:20;;;8221:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8331:1;8310:23;;:9;:23;;;8302:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8386:47;8407:6;8415:9;8426:6;8386:20;:47::i;:::-;8446:21;8470:9;:17;8480:6;8470:17;;;;;;;;;;;;;;;;8446:41;;8537:6;8520:13;:23;;8498:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8681:6;8665:13;:22;8645:9;:17;8655:6;8645:17;;;;;;;;;;;;;;;:42;;;;8733:6;8709:9;:20;8719:9;8709:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8774:9;8757:35;;8766:6;8757:35;;;8785:6;8757:35;;;;;;:::i;:::-;;;;;;;;8805:46;8825:6;8833:9;8844:6;8805:19;:46::i;:::-;8210:649;8089:770;;;:::o;27361:585::-;27487:21;27525:1;27511:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27487:40;;27556:4;27538;27543:1;27538:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27582:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27572:4;27577:1;27572:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27615:62;27632:4;27647:15;;;;;;;;;;;27665:11;27615:8;:62::i;:::-;27714:15;;;;;;;;;;;:66;;;27795:11;27821:1;27865:4;27892;27912:15;27714:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27416:530;27361:585;:::o;10261:125::-;;;;:::o;10394:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:619::-;5188:6;5196;5204;5253:2;5241:9;5232:7;5228:23;5224:32;5221:119;;;5259:79;;:::i;:::-;5221:119;5379:1;5404:53;5449:7;5440:6;5429:9;5425:22;5404:53;:::i;:::-;5394:63;;5350:117;5506:2;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5477:118;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5111:619;;;;;:::o;5736:118::-;5823:24;5841:5;5823:24;:::i;:::-;5818:3;5811:37;5736:118;;:::o;5860:222::-;5953:4;5991:2;5980:9;5976:18;5968:26;;6004:71;6072:1;6061:9;6057:17;6048:6;6004:71;:::i;:::-;5860:222;;;;:::o;6088:86::-;6123:7;6163:4;6156:5;6152:16;6141:27;;6088:86;;;:::o;6180:112::-;6263:22;6279:5;6263:22;:::i;:::-;6258:3;6251:35;6180:112;;:::o;6298:214::-;6387:4;6425:2;6414:9;6410:18;6402:26;;6438:67;6502:1;6491:9;6487:17;6478:6;6438:67;:::i;:::-;6298:214;;;;:::o;6518:116::-;6588:21;6603:5;6588:21;:::i;:::-;6581:5;6578:32;6568:60;;6624:1;6621;6614:12;6568:60;6518:116;:::o;6640:133::-;6683:5;6721:6;6708:20;6699:29;;6737:30;6761:5;6737:30;:::i;:::-;6640:133;;;;:::o;6779:468::-;6844:6;6852;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7027:1;7052:53;7097:7;7088:6;7077:9;7073:22;7052:53;:::i;:::-;7042:63;;6998:117;7154:2;7180:50;7222:7;7213:6;7202:9;7198:22;7180:50;:::i;:::-;7170:60;;7125:115;6779:468;;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:619::-;7659:6;7667;7675;7724:2;7712:9;7703:7;7699:23;7695:32;7692:119;;;7730:79;;:::i;:::-;7692:119;7850:1;7875:53;7920:7;7911:6;7900:9;7896:22;7875:53;:::i;:::-;7865:63;;7821:117;7977:2;8003:53;8048:7;8039:6;8028:9;8024:22;8003:53;:::i;:::-;7993:63;;7948:118;8105:2;8131:53;8176:7;8167:6;8156:9;8152:22;8131:53;:::i;:::-;8121:63;;8076:118;7582:619;;;;;:::o;8207:474::-;8275:6;8283;8332:2;8320:9;8311:7;8307:23;8303:32;8300:119;;;8338:79;;:::i;:::-;8300:119;8458:1;8483:53;8528:7;8519:6;8508:9;8504:22;8483:53;:::i;:::-;8473:63;;8429:117;8585:2;8611:53;8656:7;8647:6;8636:9;8632:22;8611:53;:::i;:::-;8601:63;;8556:118;8207:474;;;;;:::o;8687:180::-;8735:77;8732:1;8725:88;8832:4;8829:1;8822:15;8856:4;8853:1;8846:15;8873:320;8917:6;8954:1;8948:4;8944:12;8934:22;;9001:1;8995:4;8991:12;9022:18;9012:81;;9078:4;9070:6;9066:17;9056:27;;9012:81;9140:2;9132:6;9129:14;9109:18;9106:38;9103:84;;9159:18;;:::i;:::-;9103:84;8924:269;8873:320;;;:::o;9199:227::-;9339:34;9335:1;9327:6;9323:14;9316:58;9408:10;9403:2;9395:6;9391:15;9384:35;9199:227;:::o;9432:366::-;9574:3;9595:67;9659:2;9654:3;9595:67;:::i;:::-;9588:74;;9671:93;9760:3;9671:93;:::i;:::-;9789:2;9784:3;9780:12;9773:19;;9432:366;;;:::o;9804:419::-;9970:4;10008:2;9997:9;9993:18;9985:26;;10057:9;10051:4;10047:20;10043:1;10032:9;10028:17;10021:47;10085:131;10211:4;10085:131;:::i;:::-;10077:139;;9804:419;;;:::o;10229:180::-;10277:77;10274:1;10267:88;10374:4;10371:1;10364:15;10398:4;10395:1;10388:15;10415:191;10455:3;10474:20;10492:1;10474:20;:::i;:::-;10469:25;;10508:20;10526:1;10508:20;:::i;:::-;10503:25;;10551:1;10548;10544:9;10537:16;;10572:3;10569:1;10566:10;10563:36;;;10579:18;;:::i;:::-;10563:36;10415:191;;;;:::o;10612:182::-;10752:34;10748:1;10740:6;10736:14;10729:58;10612:182;:::o;10800:366::-;10942:3;10963:67;11027:2;11022:3;10963:67;:::i;:::-;10956:74;;11039:93;11128:3;11039:93;:::i;:::-;11157:2;11152:3;11148:12;11141:19;;10800:366;;;:::o;11172:419::-;11338:4;11376:2;11365:9;11361:18;11353:26;;11425:9;11419:4;11415:20;11411:1;11400:9;11396:17;11389:47;11453:131;11579:4;11453:131;:::i;:::-;11445:139;;11172:419;;;:::o;11597:244::-;11737:34;11733:1;11725:6;11721:14;11714:58;11806:27;11801:2;11793:6;11789:15;11782:52;11597:244;:::o;11847:366::-;11989:3;12010:67;12074:2;12069:3;12010:67;:::i;:::-;12003:74;;12086:93;12175:3;12086:93;:::i;:::-;12204:2;12199:3;12195:12;12188:19;;11847:366;;;:::o;12219:419::-;12385:4;12423:2;12412:9;12408:18;12400:26;;12472:9;12466:4;12462:20;12458:1;12447:9;12443:17;12436:47;12500:131;12626:4;12500:131;:::i;:::-;12492:139;;12219:419;;;:::o;12644:224::-;12784:34;12780:1;12772:6;12768:14;12761:58;12853:7;12848:2;12840:6;12836:15;12829:32;12644:224;:::o;12874:366::-;13016:3;13037:67;13101:2;13096:3;13037:67;:::i;:::-;13030:74;;13113:93;13202:3;13113:93;:::i;:::-;13231:2;13226:3;13222:12;13215:19;;12874:366;;;:::o;13246:419::-;13412:4;13450:2;13439:9;13435:18;13427:26;;13499:9;13493:4;13489:20;13485:1;13474:9;13470:17;13463:47;13527:131;13653:4;13527:131;:::i;:::-;13519:139;;13246:419;;;:::o;13671:143::-;13728:5;13759:6;13753:13;13744:22;;13775:33;13802:5;13775:33;:::i;:::-;13671:143;;;;:::o;13820:351::-;13890:6;13939:2;13927:9;13918:7;13914:23;13910:32;13907:119;;;13945:79;;:::i;:::-;13907:119;14065:1;14090:64;14146:7;14137:6;14126:9;14122:22;14090:64;:::i;:::-;14080:74;;14036:128;13820:351;;;;:::o;14177:143::-;14234:5;14265:6;14259:13;14250:22;;14281:33;14308:5;14281:33;:::i;:::-;14177:143;;;;:::o;14326:351::-;14396:6;14445:2;14433:9;14424:7;14420:23;14416:32;14413:119;;;14451:79;;:::i;:::-;14413:119;14571:1;14596:64;14652:7;14643:6;14632:9;14628:22;14596:64;:::i;:::-;14586:74;;14542:128;14326:351;;;;:::o;14683:332::-;14804:4;14842:2;14831:9;14827:18;14819:26;;14855:71;14923:1;14912:9;14908:17;14899:6;14855:71;:::i;:::-;14936:72;15004:2;14993:9;14989:18;14980:6;14936:72;:::i;:::-;14683:332;;;;;:::o;15021:85::-;15066:7;15095:5;15084:16;;15021:85;;;:::o;15112:158::-;15170:9;15203:61;15221:42;15230:32;15256:5;15230:32;:::i;:::-;15221:42;:::i;:::-;15203:61;:::i;:::-;15190:74;;15112:158;;;:::o;15276:147::-;15371:45;15410:5;15371:45;:::i;:::-;15366:3;15359:58;15276:147;;:::o;15429:807::-;15678:4;15716:3;15705:9;15701:19;15693:27;;15730:71;15798:1;15787:9;15783:17;15774:6;15730:71;:::i;:::-;15811:72;15879:2;15868:9;15864:18;15855:6;15811:72;:::i;:::-;15893:80;15969:2;15958:9;15954:18;15945:6;15893:80;:::i;:::-;15983;16059:2;16048:9;16044:18;16035:6;15983:80;:::i;:::-;16073:73;16141:3;16130:9;16126:19;16117:6;16073:73;:::i;:::-;16156;16224:3;16213:9;16209:19;16200:6;16156:73;:::i;:::-;15429:807;;;;;;;;;:::o;16242:663::-;16330:6;16338;16346;16395:2;16383:9;16374:7;16370:23;16366:32;16363:119;;;16401:79;;:::i;:::-;16363:119;16521:1;16546:64;16602:7;16593:6;16582:9;16578:22;16546:64;:::i;:::-;16536:74;;16492:128;16659:2;16685:64;16741:7;16732:6;16721:9;16717:22;16685:64;:::i;:::-;16675:74;;16630:129;16798:2;16824:64;16880:7;16871:6;16860:9;16856:22;16824:64;:::i;:::-;16814:74;;16769:129;16242:663;;;;;:::o;16911:225::-;17051:34;17047:1;17039:6;17035:14;17028:58;17120:8;17115:2;17107:6;17103:15;17096:33;16911:225;:::o;17142:366::-;17284:3;17305:67;17369:2;17364:3;17305:67;:::i;:::-;17298:74;;17381:93;17470:3;17381:93;:::i;:::-;17499:2;17494:3;17490:12;17483:19;;17142:366;;;:::o;17514:419::-;17680:4;17718:2;17707:9;17703:18;17695:26;;17767:9;17761:4;17757:20;17753:1;17742:9;17738:17;17731:47;17795:131;17921:4;17795:131;:::i;:::-;17787:139;;17514:419;;;:::o;17939:223::-;18079:34;18075:1;18067:6;18063:14;18056:58;18148:6;18143:2;18135:6;18131:15;18124:31;17939:223;:::o;18168:366::-;18310:3;18331:67;18395:2;18390:3;18331:67;:::i;:::-;18324:74;;18407:93;18496:3;18407:93;:::i;:::-;18525:2;18520:3;18516:12;18509:19;;18168:366;;;:::o;18540:419::-;18706:4;18744:2;18733:9;18729:18;18721:26;;18793:9;18787:4;18783:20;18779:1;18768:9;18764:17;18757:47;18821:131;18947:4;18821:131;:::i;:::-;18813:139;;18540:419;;;:::o;18965:221::-;19105:34;19101:1;19093:6;19089:14;19082:58;19174:4;19169:2;19161:6;19157:15;19150:29;18965:221;:::o;19192:366::-;19334:3;19355:67;19419:2;19414:3;19355:67;:::i;:::-;19348:74;;19431:93;19520:3;19431:93;:::i;:::-;19549:2;19544:3;19540:12;19533:19;;19192:366;;;:::o;19564:419::-;19730:4;19768:2;19757:9;19753:18;19745:26;;19817:9;19811:4;19807:20;19803:1;19792:9;19788:17;19781:47;19845:131;19971:4;19845:131;:::i;:::-;19837:139;;19564:419;;;:::o;19989:224::-;20129:34;20125:1;20117:6;20113:14;20106:58;20198:7;20193:2;20185:6;20181:15;20174:32;19989:224;:::o;20219:366::-;20361:3;20382:67;20446:2;20441:3;20382:67;:::i;:::-;20375:74;;20458:93;20547:3;20458:93;:::i;:::-;20576:2;20571:3;20567:12;20560:19;;20219:366;;;:::o;20591:419::-;20757:4;20795:2;20784:9;20780:18;20772:26;;20844:9;20838:4;20834:20;20830:1;20819:9;20815:17;20808:47;20872:131;20998:4;20872:131;:::i;:::-;20864:139;;20591:419;;;:::o;21016:222::-;21156:34;21152:1;21144:6;21140:14;21133:58;21225:5;21220:2;21212:6;21208:15;21201:30;21016:222;:::o;21244:366::-;21386:3;21407:67;21471:2;21466:3;21407:67;:::i;:::-;21400:74;;21483:93;21572:3;21483:93;:::i;:::-;21601:2;21596:3;21592:12;21585:19;;21244:366;;;:::o;21616:419::-;21782:4;21820:2;21809:9;21805:18;21797:26;;21869:9;21863:4;21859:20;21855:1;21844:9;21840:17;21833:47;21897:131;22023:4;21897:131;:::i;:::-;21889:139;;21616:419;;;:::o;22041:228::-;22181:34;22177:1;22169:6;22165:14;22158:58;22250:11;22245:2;22237:6;22233:15;22226:36;22041:228;:::o;22275:366::-;22417:3;22438:67;22502:2;22497:3;22438:67;:::i;:::-;22431:74;;22514:93;22603:3;22514:93;:::i;:::-;22632:2;22627:3;22623:12;22616:19;;22275:366;;;:::o;22647:419::-;22813:4;22851:2;22840:9;22836:18;22828:26;;22900:9;22894:4;22890:20;22886:1;22875:9;22871:17;22864:47;22928:131;23054:4;22928:131;:::i;:::-;22920:139;;22647:419;;;:::o;23072:177::-;23212:29;23208:1;23200:6;23196:14;23189:53;23072:177;:::o;23255:366::-;23397:3;23418:67;23482:2;23477:3;23418:67;:::i;:::-;23411:74;;23494:93;23583:3;23494:93;:::i;:::-;23612:2;23607:3;23603:12;23596:19;;23255:366;;;:::o;23627:419::-;23793:4;23831:2;23820:9;23816:18;23808:26;;23880:9;23874:4;23870:20;23866:1;23855:9;23851:17;23844:47;23908:131;24034:4;23908:131;:::i;:::-;23900:139;;23627:419;;;:::o;24052:240::-;24192:34;24188:1;24180:6;24176:14;24169:58;24261:23;24256:2;24248:6;24244:15;24237:48;24052:240;:::o;24298:366::-;24440:3;24461:67;24525:2;24520:3;24461:67;:::i;:::-;24454:74;;24537:93;24626:3;24537:93;:::i;:::-;24655:2;24650:3;24646:12;24639:19;;24298:366;;;:::o;24670:419::-;24836:4;24874:2;24863:9;24859:18;24851:26;;24923:9;24917:4;24913:20;24909:1;24898:9;24894:17;24887:47;24951:131;25077:4;24951:131;:::i;:::-;24943:139;;24670:419;;;:::o;25095:169::-;25235:21;25231:1;25223:6;25219:14;25212:45;25095:169;:::o;25270:366::-;25412:3;25433:67;25497:2;25492:3;25433:67;:::i;:::-;25426:74;;25509:93;25598:3;25509:93;:::i;:::-;25627:2;25622:3;25618:12;25611:19;;25270:366;;;:::o;25642:419::-;25808:4;25846:2;25835:9;25831:18;25823:26;;25895:9;25889:4;25885:20;25881:1;25870:9;25866:17;25859:47;25923:131;26049:4;25923:131;:::i;:::-;25915:139;;25642:419;;;:::o;26067:241::-;26207:34;26203:1;26195:6;26191:14;26184:58;26276:24;26271:2;26263:6;26259:15;26252:49;26067:241;:::o;26314:366::-;26456:3;26477:67;26541:2;26536:3;26477:67;:::i;:::-;26470:74;;26553:93;26642:3;26553:93;:::i;:::-;26671:2;26666:3;26662:12;26655:19;;26314:366;;;:::o;26686:419::-;26852:4;26890:2;26879:9;26875:18;26867:26;;26939:9;26933:4;26929:20;26925:1;26914:9;26910:17;26903:47;26967:131;27093:4;26967:131;:::i;:::-;26959:139;;26686:419;;;:::o;27111:194::-;27151:4;27171:20;27189:1;27171:20;:::i;:::-;27166:25;;27205:20;27223:1;27205:20;:::i;:::-;27200:25;;27249:1;27246;27242:9;27234:17;;27273:1;27267:4;27264:11;27261:37;;;27278:18;;:::i;:::-;27261:37;27111:194;;;;:::o;27311:147::-;27412:11;27449:3;27434:18;;27311:147;;;;:::o;27464:114::-;;:::o;27584:398::-;27743:3;27764:83;27845:1;27840:3;27764:83;:::i;:::-;27757:90;;27856:93;27945:3;27856:93;:::i;:::-;27974:1;27969:3;27965:11;27958:18;;27584:398;;;:::o;27988:379::-;28172:3;28194:147;28337:3;28194:147;:::i;:::-;28187:154;;28358:3;28351:10;;27988:379;;;:::o;28373:430::-;28516:4;28554:2;28543:9;28539:18;28531:26;;28567:71;28635:1;28624:9;28620:17;28611:6;28567:71;:::i;:::-;28648:72;28716:2;28705:9;28701:18;28692:6;28648:72;:::i;:::-;28730:66;28792:2;28781:9;28777:18;28768:6;28730:66;:::i;:::-;28373:430;;;;;;:::o;28809:410::-;28849:7;28872:20;28890:1;28872:20;:::i;:::-;28867:25;;28906:20;28924:1;28906:20;:::i;:::-;28901:25;;28961:1;28958;28954:9;28983:30;29001:11;28983:30;:::i;:::-;28972:41;;29162:1;29153:7;29149:15;29146:1;29143:22;29123:1;29116:9;29096:83;29073:139;;29192:18;;:::i;:::-;29073:139;28857:362;28809:410;;;;:::o;29225:180::-;29273:77;29270:1;29263:88;29370:4;29367:1;29360:15;29394:4;29391:1;29384:15;29411:185;29451:1;29468:20;29486:1;29468:20;:::i;:::-;29463:25;;29502:20;29520:1;29502:20;:::i;:::-;29497:25;;29541:1;29531:35;;29546:18;;:::i;:::-;29531:35;29588:1;29585;29581:9;29576:14;;29411:185;;;;:::o;29602:225::-;29742:34;29738:1;29730:6;29726:14;29719:58;29811:8;29806:2;29798:6;29794:15;29787:33;29602:225;:::o;29833:366::-;29975:3;29996:67;30060:2;30055:3;29996:67;:::i;:::-;29989:74;;30072:93;30161:3;30072:93;:::i;:::-;30190:2;30185:3;30181:12;30174:19;;29833:366;;;:::o;30205:419::-;30371:4;30409:2;30398:9;30394:18;30386:26;;30458:9;30452:4;30448:20;30444:1;30433:9;30429:17;30422:47;30486:131;30612:4;30486:131;:::i;:::-;30478:139;;30205:419;;;:::o;30630:180::-;30678:77;30675:1;30668:88;30775:4;30772:1;30765:15;30799:4;30796:1;30789:15;30816:180;30864:77;30861:1;30854:88;30961:4;30958:1;30951:15;30985:4;30982:1;30975:15;31002:114;31069:6;31103:5;31097:12;31087:22;;31002:114;;;:::o;31122:184::-;31221:11;31255:6;31250:3;31243:19;31295:4;31290:3;31286:14;31271:29;;31122:184;;;;:::o;31312:132::-;31379:4;31402:3;31394:11;;31432:4;31427:3;31423:14;31415:22;;31312:132;;;:::o;31450:108::-;31527:24;31545:5;31527:24;:::i;:::-;31522:3;31515:37;31450:108;;:::o;31564:179::-;31633:10;31654:46;31696:3;31688:6;31654:46;:::i;:::-;31732:4;31727:3;31723:14;31709:28;;31564:179;;;;:::o;31749:113::-;31819:4;31851;31846:3;31842:14;31834:22;;31749:113;;;:::o;31898:732::-;32017:3;32046:54;32094:5;32046:54;:::i;:::-;32116:86;32195:6;32190:3;32116:86;:::i;:::-;32109:93;;32226:56;32276:5;32226:56;:::i;:::-;32305:7;32336:1;32321:284;32346:6;32343:1;32340:13;32321:284;;;32422:6;32416:13;32449:63;32508:3;32493:13;32449:63;:::i;:::-;32442:70;;32535:60;32588:6;32535:60;:::i;:::-;32525:70;;32381:224;32368:1;32365;32361:9;32356:14;;32321:284;;;32325:14;32621:3;32614:10;;32022:608;;;31898:732;;;;:::o;32636:831::-;32899:4;32937:3;32926:9;32922:19;32914:27;;32951:71;33019:1;33008:9;33004:17;32995:6;32951:71;:::i;:::-;33032:80;33108:2;33097:9;33093:18;33084:6;33032:80;:::i;:::-;33159:9;33153:4;33149:20;33144:2;33133:9;33129:18;33122:48;33187:108;33290:4;33281:6;33187:108;:::i;:::-;33179:116;;33305:72;33373:2;33362:9;33358:18;33349:6;33305:72;:::i;:::-;33387:73;33455:3;33444:9;33440:19;33431:6;33387:73;:::i;:::-;32636:831;;;;;;;;:::o
Swarm Source
ipfs://58f4838c5e692d71dc488f4763bdc969441413308cf989adbad537c41b14ed60
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.