ERC-20
Overview
Max Total Supply
100,000,000 MABA
Holders
339
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
79,745.28563902967976078 MABAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MABADOGE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-06 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is MABADOGE not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function getTime() public view returns (uint256) { return block.timestamp; } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction MABADOGE overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_,uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } /** * @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; } /** * @dev Returns the number of decimals used to get its MABADOGE user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return _decimals; } /** * @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; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero MABADOGE address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: MABADOGE transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to MABADOGE {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ 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); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` MABADOGE tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } contract usdtReceiver { address public usdt; address public owner; constructor(address _u) { usdt = _u; owner = msg.sender; IERC20(usdt).approve(msg.sender,~uint256(0)); } } contract MABADOGE is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool private swapping; uint256 public swapTokensAtAmount; uint256 public buyTokenRewardsFee; uint256 public sellTokenRewardsFee; uint256 public buyLiquidityFee; uint256 public sellLiquidityFee; uint256 public buyMarketingFee; uint256 public sellMarketingFee; uint256 public buyDeadFee; uint256 public sellDeadFee; uint256 public AmountLiquidityFee; uint256 public AmountTokenRewardsFee; uint256 public AmountMarketingFee; uint256 public addLiquidityFee; uint256 public removeLiquidityFee; usdtReceiver public _usdtReceiver; address public deadWallet = 0x000000000000000000000000000000000000dEaD; address public usdtAddress; address public _marketingWalletAddress; address public rewardsAddress; uint256 public gasForProcessing; bool public swapAndLiquifyEnabled = true; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping(address => bool) public automatedMarketMakerPairs; event UpdateDividendTracker(address indexed newAddress, address indexed oldAddress); event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event LiquidityWalletUpdated(address indexed newLiquidityWallet, address indexed oldLiquidityWallet); event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SendDividends( uint256 tokensSwapped, uint256 amount ); event ProcessedDividendTracker( uint256 iterations, uint256 claims, uint256 lastProcessedIndex, bool indexed automatic, uint256 gas, address indexed processor ); constructor() payable ERC20("MABADOGE", "MABA",18) { uint256 totalSupply = 100000000 * (10 ** 18); // use by default 300,000 gas to process auto-claiming dividends gasForProcessing = 300000; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _mint(owner(), totalSupply); } receive() external payable {} function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapPair, "The PancakeSwap pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { require(automatedMarketMakerPairs[pair] != value, "Automated market maker MABADOGE pair is already set to that value"); automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateGasForProcessing(uint256 newValue) public onlyOwner { require(newValue != gasForProcessing, "Cannot update gasForProcessing to same value"); emit GasForProcessingUpdated(newValue, gasForProcessing); gasForProcessing = newValue; } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; } function setSwapTokensAtAmount(uint256 amount) public onlyOwner { swapTokensAtAmount = amount; } 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"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && automatedMarketMakerPairs[from] && from != owner() && to != owner() && swapAndLiquifyEnabled ) { swapping = true; swapAndSendMarketing(AmountMarketingFee); swapAndLiquify(AmountLiquidityFee); swapAndSendDividends(AmountTokenRewardsFee); swapping = false; } bool takeFee = !swapping; if(takeFee) { uint256 fees; uint256 LFee; // Liquidity uint256 RFee; // Rewards uint256 MFee; // Marketing uint256 DFee; // Dead if(automatedMarketMakerPairs[from]){ LFee = amount.mul(buyLiquidityFee).div(100); AmountLiquidityFee += LFee; RFee = amount.mul(buyTokenRewardsFee).div(100); AmountTokenRewardsFee += RFee; MFee = amount.mul(buyMarketingFee).div(100); AmountMarketingFee += MFee; DFee = amount.mul(buyDeadFee).div(100); fees = LFee.add(RFee).add(MFee).add(DFee); }else if(automatedMarketMakerPairs[to]){ LFee = amount.mul(sellLiquidityFee).div(100); AmountLiquidityFee += LFee; RFee = amount.mul(sellTokenRewardsFee).div(100); AmountTokenRewardsFee += RFee; MFee = amount.mul(sellMarketingFee).div(100); AmountMarketingFee += MFee; DFee = amount.mul(sellDeadFee).div(100); fees = LFee.add(RFee).add(MFee).add(DFee); } amount = amount.sub(fees); if(DFee > 0) super._transfer(from, deadWallet, DFee); if(fees > 0) super._transfer(from, address(this), fees.sub(DFee)); } super._transfer(from, to, amount); } function swapAndSendMarketing(uint256 tokens) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = usdtAddress; if(usdtAddress == uniswapV2Router.WETH()){ // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokens, 0, // accept any amount of ETH path, _marketingWalletAddress, // The contract block.timestamp ); }else{ // make the swap uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokens, 0, // accept any amount of USDT path, _marketingWalletAddress, block.timestamp ); } AmountMarketingFee = AmountMarketingFee - tokens; } function swapAndLiquify(uint256 tokens) private { // split the contract balance into halves uint256 half = tokens.div(2); uint256 otherHalf = tokens.sub(half); uint256 initialBalance = IERC20(usdtAddress).balanceOf(address(this)); // swap tokens for ETH swapTokensForUsdt(half,address(this)); // <- this breaks the ETH -> HATE swap MABADOGE when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = IERC20(usdtAddress).balanceOf(address(this)).sub(initialBalance); // add liquidity to uniswap addLiquidityUSDT(otherHalf, newBalance); AmountLiquidityFee = AmountLiquidityFee - tokens; emit SwapAndLiquify(half, newBalance, otherHalf); } function addLiquidityUSDT(uint256 tokenAmount, uint256 USDTAmount) private { // approve token transfer to cover all possible scenarios IERC20(usdtAddress).approve(address(uniswapV2Router),USDTAmount); // add the liquidity uniswapV2Router.addLiquidity( address(this), usdtAddress, tokenAmount, USDTAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable _marketingWalletAddress, block.timestamp ); } function swapTokensForUsdt(uint256 tokenAmount,address addr) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = usdtAddress; // make the swap uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of USDT path, address(_usdtReceiver), block.timestamp ); uint256 amount = IERC20(usdtAddress).balanceOf(address(_usdtReceiver)); IERC20(usdtAddress).transferFrom(address(_usdtReceiver),addr, amount); } function swapTokensForRewards(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth -> rewards address[] memory path = new address[](3); path[0] = address(this); path[1] = usdtAddress; path[2] = rewardsAddress; // make the swap try uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of USDT path, address(this), block.timestamp ) {}catch{} } function swapAndSendDividends(uint256 tokens) private { // Judging whether to distribute dividends in the local currency if(usdtAddress == rewardsAddress){ swapTokensForUsdt(tokens,address(this)); }else{ swapTokensForRewards(tokens); } AmountTokenRewardsFee = AmountTokenRewardsFee - tokens; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"GasForProcessingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newLiquidityWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldLiquidityWallet","type":"address"}],"name":"LiquidityWalletUpdated","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":"iterations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claims","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastProcessedIndex","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":true,"internalType":"address","name":"processor","type":"address"}],"name":"ProcessedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"AmountLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdtReceiver","outputs":[{"internalType":"contract usdtReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"buyDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","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":"gasForProcessing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"removeLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDeadFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTokenRewardsFee","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":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateGasForProcessing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f6101000a81548160ff0219169083151502179055506040518060400160405280600881526020017f4d414241444f47450000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d4142410000000000000000000000000000000000000000000000000000000081525060128260039081620000df919062000726565b508160049081620000f1919062000726565b508060055f6101000a81548160ff021916908360ff1602179055505050506200012f62000123620001c960201b60201c565b620001d060201b60201c565b5f6a52b7d2dcc80cd2e40000009050620493e0601b819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c1620001b46200029560201b60201c565b83620002be60201b60201c565b505062000989565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003269062000868565b60405180910390fd5b620003425f83836200045b60201b60201c565b62000359816002546200046060201b90919060201c565b600281905550620003b0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200046060201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f919062000899565b60405180910390a35050565b505050565b5f808284620004709190620008e1565b905083811015620004b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004af9062000969565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053e57607f821691505b602082108103620005545762000553620004f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200057b565b620005c486836200057b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200060e620006086200060284620005dc565b620005e5565b620005dc565b9050919050565b5f819050919050565b6200062983620005ee565b62000641620006388262000615565b84845462000587565b825550505050565b5f90565b6200065762000649565b620006648184846200061e565b505050565b5b818110156200068b576200067f5f826200064d565b6001810190506200066a565b5050565b601f821115620006da57620006a4816200055a565b620006af846200056c565b81016020851015620006bf578190505b620006d7620006ce856200056c565b83018262000669565b50505b505050565b5f82821c905092915050565b5f620006fc5f1984600802620006df565b1980831691505092915050565b5f620007168383620006eb565b9150826002028217905092915050565b6200073182620004c2565b67ffffffffffffffff8111156200074d576200074c620004cc565b5b62000759825462000526565b620007668282856200068f565b5f60209050601f8311600181146200079c575f841562000787578287015190505b62000793858262000709565b86555062000802565b601f198416620007ac866200055a565b5f5b82811015620007d557848901518255600182019150602085019450602081019050620007ae565b86831015620007f55784890151620007f1601f891682620006eb565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000850601f836200080a565b91506200085d826200081a565b602082019050919050565b5f6020820190508181035f830152620008818162000842565b9050919050565b6200089381620005dc565b82525050565b5f602082019050620008ae5f83018462000888565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008ed82620005dc565b9150620008fa83620005dc565b9250828201905080821115620009155762000914620008b4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000951601b836200080a565b91506200095e826200091b565b602082019050919050565b5f6020820190508181035f830152620009828162000943565b9050919050565b6140d680620009975f395ff3fe60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b95856040518060600160405280603181526020016140246031913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613540565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613540565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135ce565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613540565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613682565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b8560405180606001604052806025815260200161407c6025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613540565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613540565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613540565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613710565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115499061379e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061382c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613948565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b59190613993565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f79190613993565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a399190613993565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b329190613993565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b749190613993565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb69190613993565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139c6565b9050809150509392505050565b5f808284611d1c9190613993565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a43565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613af7565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613948565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001613ffe602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b15565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b83565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c9e565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c9e565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139c6565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d0a565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d0a565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139c6565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d35565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139c6565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d6a565b90508284826128029190613dd8565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e78565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806027815260200161405560279139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613b15565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613c9e565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d0a565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613e96565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613edf565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f0a565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613edf565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613f31565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613fad565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613b15565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613c9e565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613dd8565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973204d414241444f4745206e6f74205f8201527f746865206f776e65720000000000000000000000000000000000000000000000602082015250565b5f61352a60298361305a565b9150613535826134d0565b604082019050919050565b5f6020820190508181035f8301526135578161351e565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135b8602c8361305a565b91506135c38261355e565b604082019050919050565b5f6020820190508181035f8301526135e5816135ac565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61366c60458361305a565b9150613677826135ec565b606082019050919050565b5f6020820190508181035f83015261369981613660565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136fa60268361305a565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61378860248361305a565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61381660228361305a565b9150613821826137bc565b604082019050919050565b5f6020820190508181035f8301526138438161380a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138a460258361305a565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61393260238361305a565b915061393d826138d8565b604082019050919050565b5f6020820190508181035f83015261395f81613926565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399d8261301f565b91506139a88361301f565b92508282019050808211156139c0576139bf613966565b5b92915050565b5f6139d08261301f565b91506139db8361301f565b92508282039050818111156139f3576139f2613966565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a2d601b8361305a565b9150613a38826139f9565b602082019050919050565b5f6020820190508181035f830152613a5a81613a21565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572204d414241444f4745205f8201527f7061697220697320616c72656164792073657420746f20746861742076616c7560208201527f6500000000000000000000000000000000000000000000000000000000000000604082015250565b5f613ae160418361305a565b9150613aec82613a61565b606082019050919050565b5f6020820190508181035f830152613b0e81613ad5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b7d8161312e565b92915050565b5f60208284031215613b9857613b976130fa565b5b5f613ba584828501613b6f565b91505092915050565b5f819050919050565b5f613bd1613bcc613bc784613bae565b6131f3565b61301f565b9050919050565b613be181613bb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c198161311d565b82525050565b5f613c2a8383613c10565b60208301905092915050565b5f602082019050919050565b5f613c4c82613be7565b613c568185613bf1565b9350613c6183613c01565b805f5b83811015613c91578151613c788882613c1f565b9750613c8383613c36565b925050600181019050613c64565b5085935050505092915050565b5f60a082019050613cb15f830188613028565b613cbe6020830187613bd8565b8181036040830152613cd08186613c42565b9050613cdf60608301856132eb565b613cec6080830184613028565b9695505050505050565b5f81519050613d0481613158565b92915050565b5f60208284031215613d1f57613d1e6130fa565b5b5f613d2c84828501613cf6565b91505092915050565b5f606082019050613d485f830186613028565b613d556020830185613028565b613d626040830184613028565b949350505050565b5f613d748261301f565b9150613d7f8361301f565b9250828202613d8d8161301f565b91508282048414831517613da457613da3613966565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613de28261301f565b9150613ded8361301f565b925082613dfd57613dfc613dab565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e6260218361305a565b9150613e6d82613e08565b604082019050919050565b5f6020820190508181035f830152613e8f81613e56565b9050919050565b5f606082019050613ea95f8301866132eb565b613eb660208301856132eb565b613ec36040830184613028565b949350505050565b5f81519050613ed981613369565b92915050565b5f60208284031215613ef457613ef36130fa565b5b5f613f0184828501613ecb565b91505092915050565b5f604082019050613f1d5f8301856132eb565b613f2a6020830184613028565b9392505050565b5f61010082019050613f455f83018b6132eb565b613f52602083018a6132eb565b613f5f6040830189613028565b613f6c6060830188613028565b613f796080830187613bd8565b613f8660a0830186613bd8565b613f9360c08301856132eb565b613fa060e0830184613028565b9998505050505050505050565b5f805f60608486031215613fc457613fc36130fa565b5b5f613fd186828701613cf6565b9350506020613fe286828701613cf6565b9250506040613ff386828701613cf6565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a204d414241444f4745207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e204d414241444f4745206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209579a8b64184a36bde679e30ae50d31711f9cf9a4fe5297ee6d863f6943c234264736f6c63430008140033
Deployed Bytecode
0x60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b95856040518060600160405280603181526020016140246031913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613540565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613540565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135ce565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613540565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613682565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b8560405180606001604052806025815260200161407c6025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613540565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613540565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613540565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613710565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115499061379e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061382c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613948565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b59190613993565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f79190613993565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a399190613993565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b329190613993565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b749190613993565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb69190613993565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139c6565b9050809150509392505050565b5f808284611d1c9190613993565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a43565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613af7565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613948565b60405180910390fd5b6120448383836128c2565b6120ad81604051806060016040528060268152602001613ffe602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613b15565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b83565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613c9e565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613c9e565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139c6565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d0a565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d0a565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139c6565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613d35565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139c6565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613d6a565b90508284826128029190613dd8565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613e78565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba838360405180606001604052806027815260200161405560279139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613b15565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613c9e565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d0a565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613e96565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613edf565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f0a565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613edf565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613f31565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad9190613fad565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613b15565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613b42565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613c9e565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613dd8565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973204d414241444f4745206e6f74205f8201527f746865206f776e65720000000000000000000000000000000000000000000000602082015250565b5f61352a60298361305a565b9150613535826134d0565b604082019050919050565b5f6020820190508181035f8301526135578161351e565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135b8602c8361305a565b91506135c38261355e565b604082019050919050565b5f6020820190508181035f8301526135e5816135ac565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61366c60458361305a565b9150613677826135ec565b606082019050919050565b5f6020820190508181035f83015261369981613660565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136fa60268361305a565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61378860248361305a565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61381660228361305a565b9150613821826137bc565b604082019050919050565b5f6020820190508181035f8301526138438161380a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138a460258361305a565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61393260238361305a565b915061393d826138d8565b604082019050919050565b5f6020820190508181035f83015261395f81613926565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399d8261301f565b91506139a88361301f565b92508282019050808211156139c0576139bf613966565b5b92915050565b5f6139d08261301f565b91506139db8361301f565b92508282039050818111156139f3576139f2613966565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a2d601b8361305a565b9150613a38826139f9565b602082019050919050565b5f6020820190508181035f830152613a5a81613a21565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572204d414241444f4745205f8201527f7061697220697320616c72656164792073657420746f20746861742076616c7560208201527f6500000000000000000000000000000000000000000000000000000000000000604082015250565b5f613ae160418361305a565b9150613aec82613a61565b606082019050919050565b5f6020820190508181035f830152613b0e81613ad5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613b7d8161312e565b92915050565b5f60208284031215613b9857613b976130fa565b5b5f613ba584828501613b6f565b91505092915050565b5f819050919050565b5f613bd1613bcc613bc784613bae565b6131f3565b61301f565b9050919050565b613be181613bb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c198161311d565b82525050565b5f613c2a8383613c10565b60208301905092915050565b5f602082019050919050565b5f613c4c82613be7565b613c568185613bf1565b9350613c6183613c01565b805f5b83811015613c91578151613c788882613c1f565b9750613c8383613c36565b925050600181019050613c64565b5085935050505092915050565b5f60a082019050613cb15f830188613028565b613cbe6020830187613bd8565b8181036040830152613cd08186613c42565b9050613cdf60608301856132eb565b613cec6080830184613028565b9695505050505050565b5f81519050613d0481613158565b92915050565b5f60208284031215613d1f57613d1e6130fa565b5b5f613d2c84828501613cf6565b91505092915050565b5f606082019050613d485f830186613028565b613d556020830185613028565b613d626040830184613028565b949350505050565b5f613d748261301f565b9150613d7f8361301f565b9250828202613d8d8161301f565b91508282048414831517613da457613da3613966565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613de28261301f565b9150613ded8361301f565b925082613dfd57613dfc613dab565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e6260218361305a565b9150613e6d82613e08565b604082019050919050565b5f6020820190508181035f830152613e8f81613e56565b9050919050565b5f606082019050613ea95f8301866132eb565b613eb660208301856132eb565b613ec36040830184613028565b949350505050565b5f81519050613ed981613369565b92915050565b5f60208284031215613ef457613ef36130fa565b5b5f613f0184828501613ecb565b91505092915050565b5f604082019050613f1d5f8301856132eb565b613f2a6020830184613028565b9392505050565b5f61010082019050613f455f83018b6132eb565b613f52602083018a6132eb565b613f5f6040830189613028565b613f6c6060830188613028565b613f796080830187613bd8565b613f8660a0830186613bd8565b613f9360c08301856132eb565b613fa060e0830184613028565b9998505050505050505050565b5f805f60608486031215613fc457613fc36130fa565b5b5f613fd186828701613cf6565b9350506020613fe286828701613cf6565b9250506040613ff386828701613cf6565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a204d414241444f4745207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e204d414241444f4745206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209579a8b64184a36bde679e30ae50d31711f9cf9a4fe5297ee6d863f6943c234264736f6c63430008140033
Deployed Bytecode Sourcemap
15481:10529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15715:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4983:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15755:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7166:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15559:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6119:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7826:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15984:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5954:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16059:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8601:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16144:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16373:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16492:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1099:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6290:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;779:103;;;;;;;;;;;;;:::i;:::-;;15875:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16263:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18904:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;547:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15952:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15912:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5202:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18319:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16340:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16454:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9322:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6630:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19327:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16223:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16690:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16181:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16418:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19200:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15607:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16102:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6868:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15673:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15798:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;890:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15835:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16019:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15715;;;;:::o;4983:100::-;5037:13;5070:5;5063:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4983:100;:::o;15755:34::-;;;;:::o;7166:169::-;7249:4;7266:39;7275:12;:10;:12::i;:::-;7289:7;7298:6;7266:8;:39::i;:::-;7323:4;7316:11;;7166:169;;;;:::o;15559:41::-;;;;;;;;;;;;;:::o;6119:108::-;6180:7;6207:12;;6200:19;;6119:108;:::o;7826:366::-;7958:4;7975:36;7985:6;7993:9;8004:6;7975:9;:36::i;:::-;8022:140;8031:6;8039:12;:10;:12::i;:::-;8053:108;8091:6;8053:108;;;;;;;;;;;;;;;;;:11;:19;8065:6;8053:19;;;;;;;;;;;;;;;:33;8073:12;:10;:12::i;:::-;8053:33;;;;;;;;;;;;;;;;:37;;:108;;;;;:::i;:::-;8022:8;:140::i;:::-;8180:4;8173:11;;7826:366;;;;;:::o;15984:26::-;;;;:::o;5954:100::-;6012:5;6037:9;;;;;;;;;;;6030:16;;5954:100;:::o;16059:36::-;;;;:::o;8601:218::-;8689:4;8706:83;8715:12;:10;:12::i;:::-;8729:7;8738:50;8777:10;8738:11;:25;8750:12;:10;:12::i;:::-;8738:25;;;;;;;;;;;;;;;:34;8764:7;8738:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8706:8;:83::i;:::-;8807:4;8800:11;;8601:218;;;;:::o;16144:30::-;;;;:::o;16373:38::-;;;;;;;;;;;;;:::o;16492:40::-;;;;;;;;;;;;;:::o;1099:90::-;1139:7;1166:15;1159:22;;1099:90;:::o;6290:127::-;6364:7;6391:9;:18;6401:7;6391:18;;;;;;;;;;;;;;;;6384:25;;6290:127;;;:::o;779:103::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;844:30:::1;871:1;844:18;:30::i;:::-;779:103::o:0;15875:30::-;;;;:::o;16263:70::-;;;;;;;;;;;;;:::o;18904:286::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;19002:16:::1;;18990:8;:28:::0;18982:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19127:16;;19117:8;19093:51;;;;;;;;;;19174:8;19155:16;:27;;;;18904:286:::0;:::o;547:87::-;593:7;620:6;;;;;;;;;;;613:13;;547:87;:::o;15952:25::-;;;;:::o;15912:31::-;;;;:::o;5202:104::-;5258:13;5291:7;5284:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:104;:::o;18319:252::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;18426:11:::1;;;;;;;;;;;18418:19;;:4;:19;;::::0;18410:101:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18522:41;18551:4;18557:5;18522:28;:41::i;:::-;18319:252:::0;;:::o;16340:26::-;;;;;;;;;;;;;:::o;16454:31::-;;;;:::o;9322:269::-;9415:4;9432:129;9441:12;:10;:12::i;:::-;9455:7;9464:96;9503:15;9464:96;;;;;;;;;;;;;;;;;:11;:25;9476:12;:10;:12::i;:::-;9464:25;;;;;;;;;;;;;;;:34;9490:7;9464:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9432:8;:129::i;:::-;9579:4;9572:11;;9322:269;;;;:::o;6630:175::-;6716:4;6733:42;6743:12;:10;:12::i;:::-;6757:9;6768:6;6733:9;:42::i;:::-;6793:4;6786:11;;6630:175;;;;:::o;19327:110::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;19423:6:::1;19402:18;:27;;;;19327:110:::0;:::o;16223:33::-;;;;;;;;;;;;;:::o;16690:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16181:33::-;;;;:::o;16418:29::-;;;;;;;;;;;;;:::o;19200:117::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;19301:8:::1;19277:21;;:32;;;;;;;;;;;;;;;;;;19200:117:::0;:::o;15607:27::-;;;;;;;;;;;;;:::o;16102:33::-;;;;:::o;6868:151::-;6957:7;6984:11;:18;6996:5;6984:18;;;;;;;;;;;;;;;:27;7003:7;6984:27;;;;;;;;;;;;;;;;6977:34;;6868:151;;;;:::o;15673:33::-;;;;:::o;15798:30::-;;;;:::o;890:201::-;693:12;:10;:12::i;:::-;682:23;;:7;:5;:7::i;:::-;:23;;;674:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;999:1:::1;979:22;;:8;:22;;::::0;971:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1055:28;1074:8;1055:18;:28::i;:::-;890:201:::0;:::o;15835:31::-;;;;:::o;16019:33::-;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;12509:372::-;12654:1;12637:19;;:5;:19;;;12629:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12735:1;12716:21;;:7;:21;;;12708:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12819:6;12789:11;:18;12801:5;12789:18;;;;;;;;;;;;;;;:27;12808:7;12789:27;;;;;;;;;;;;;;;:36;;;;12857:7;12841:32;;12850:5;12841:32;;;12866:6;12841:32;;;;;;:::i;:::-;;;;;;;;12509:372;;;:::o;19451:2481::-;19599:1;19583:18;;:4;:18;;;19575:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19676:1;19662:16;;:2;:16;;;19654:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19755:1;19745:6;:11;19741:93;;19773:28;19789:4;19795:2;19799:1;19773:15;:28::i;:::-;19816:7;;19741:93;19846:28;19877:24;19895:4;19877:9;:24::i;:::-;19846:55;;19914:12;19953:18;;19929:20;:42;;19914:57;;19988:7;:33;;;;;20013:8;;;;;;;;;;;20012:9;19988:33;:81;;;;;20038:25;:31;20064:4;20038:31;;;;;;;;;;;;;;;;;;;;;;;;;19988:81;:113;;;;;20094:7;:5;:7::i;:::-;20086:15;;:4;:15;;;;19988:113;:143;;;;;20124:7;:5;:7::i;:::-;20118:13;;:2;:13;;;;19988:143;:181;;;;;20148:21;;;;;;;;;;;19988:181;19984:432;;;20207:4;20196:8;;:15;;;;;;;;;;;;;;;;;;20226:40;20247:18;;20226:20;:40::i;:::-;20281:34;20296:18;;20281:14;:34::i;:::-;20330:43;20351:21;;20330:20;:43::i;:::-;20399:5;20388:8;;:16;;;;;;;;;;;;;;;;;;19984:432;20430:12;20446:8;;;;;;;;;;;20445:9;20430:24;;20470:7;20467:1408;;;20494:12;20521;20561;20599;20639;20679:25;:31;20705:4;20679:31;;;;;;;;;;;;;;;;;;;;;;;;;20676:997;;;20737:36;20769:3;20737:27;20748:15;;20737:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20730:43;;20814:4;20792:18;;:26;;;;;;;:::i;:::-;;;;;;;;20844:39;20879:3;20844:30;20855:18;;20844:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20837:46;;20927:4;20902:21;;:29;;;;;;;:::i;:::-;;;;;;;;20957:36;20989:3;20957:27;20968:15;;20957:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20950:43;;21034:4;21012:18;;:26;;;;;;;:::i;:::-;;;;;;;;21064:31;21091:3;21064:22;21075:10;;21064:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21057:38;;21121:34;21150:4;21121:24;21140:4;21121:14;21130:4;21121;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21114:41;;20676:997;;;21179:25;:29;21205:2;21179:29;;;;;;;;;;;;;;;;;;;;;;;;;21176:497;;;21235:37;21268:3;21235:28;21246:16;;21235:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21228:44;;21313:4;21291:18;;:26;;;;;;;:::i;:::-;;;;;;;;21343:40;21379:3;21343:31;21354:19;;21343:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;21336:47;;21427:4;21402:21;;:29;;;;;;;:::i;:::-;;;;;;;;21457:37;21490:3;21457:28;21468:16;;21457:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21450:44;;21535:4;21513:18;;:26;;;;;;;:::i;:::-;;;;;;;;21565:32;21593:3;21565:23;21576:11;;21565:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;21558:39;;21623:34;21652:4;21623:24;21642:4;21623:14;21632:4;21623;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21616:41;;21176:497;20676:997;21700:16;21711:4;21700:6;:10;;:16;;;;:::i;:::-;21691:25;;21741:1;21734:4;:8;21731:52;;;21744:39;21760:4;21766:10;;;;;;;;;;;21778:4;21744:15;:39::i;:::-;21731:52;21808:1;21801:4;:8;21798:65;;;21811:52;21827:4;21841;21848:14;21857:4;21848;:8;;:14;;;;:::i;:::-;21811:15;:52::i;:::-;21798:65;20479:1396;;;;;20467:1408;21889:33;21905:4;21911:2;21915:6;21889:15;:33::i;:::-;19564:2368;;;19451:2481;;;;:::o;2688:192::-;2774:7;2807:1;2802;:6;;2810:12;2794:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2834:9;2850:1;2846;:5;;;;:::i;:::-;2834:17;;2871:1;2864:8;;;2688:192;;;;;:::o;2346:181::-;2404:7;2424:9;2440:1;2436;:5;;;;:::i;:::-;2424:17;;2465:1;2460;:6;;2452:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2518:1;2511:8;;;2346:181;;;;:::o;1197:191::-;1271:16;1290:6;;;;;;;;;;;1271:25;;1316:8;1307:6;;:17;;;;;;;;;;;;;;;;;;1371:8;1340:40;;1361:8;1340:40;;;;;;;;;;;;1260:128;1197:191;:::o;18579:315::-;18705:5;18670:40;;:25;:31;18696:4;18670:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;18662:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;18825:5;18791:25;:31;18817:4;18791:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18880:5;18846:40;;18874:4;18846:40;;;;;;;;;;;;18579:315;;:::o;10090:565::-;10240:1;10222:20;;:6;:20;;;10214:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10324:1;10303:23;;:9;:23;;;10295:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10379:47;10400:6;10408:9;10419:6;10379:20;:47::i;:::-;10459:71;10481:6;10459:71;;;;;;;;;;;;;;;;;:9;:17;10469:6;10459:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10439:9;:17;10449:6;10439:17;;;;;;;;;;;;;;;:91;;;;10564:32;10589:6;10564:9;:20;10574:9;10564:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10541:9;:20;10551:9;10541:20;;;;;;;;;;;;;;;:55;;;;10629:9;10612:35;;10621:6;10612:35;;;10640:6;10612:35;;;;;;:::i;:::-;;;;;;;;10090:565;;;:::o;21944:993::-;22069:21;22107:1;22093:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22069:40;;22138:4;22120;22125:1;22120:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22164:11;;;;;;;;;;;22154:4;22159:1;22154:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22204:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22189:37;;:11;;;;;;;;;;;:37;;;22186:685;;22272:15;;;;;;;;;;;:66;;;22357:6;22382:1;22430:4;22453:23;;;;;;;;;;;22511:15;22272:269;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22186:685;;;22602:15;;;;;;;;;;;:69;;;22690:6;22715:1;22764:4;22787:23;;;;;;;;;;;22829:15;22602:257;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22186:685;22923:6;22902:18;;:27;;;;:::i;:::-;22881:18;:48;;;;21998:939;21944:993;:::o;22945:788::-;23054:12;23069:13;23080:1;23069:6;:10;;:13;;;;:::i;:::-;23054:28;;23093:17;23113:16;23124:4;23113:6;:10;;:16;;;;:::i;:::-;23093:36;;23142:22;23174:11;;;;;;;;;;;23167:29;;;23205:4;23167:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23142:69;;23256:37;23274:4;23287;23256:17;:37::i;:::-;23433:18;23454:64;23503:14;23461:11;;;;;;;;;;;23454:29;;;23492:4;23454:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;23433:85;;23568:39;23585:9;23596:10;23568:16;:39::i;:::-;23660:6;23639:18;;:27;;;;:::i;:::-;23618:18;:48;;;;23682:43;23697:4;23703:10;23715:9;23682:43;;;;;;;;:::i;:::-;;;;;;;;22993:740;;;;22945:788;:::o;25634:369::-;25791:14;;;;;;;;;;;25776:29;;:11;;;;;;;;;;;:29;;;25773:158;;25821:39;25839:6;25854:4;25821:17;:39::i;:::-;25773:158;;;25891:28;25912:6;25891:20;:28::i;:::-;25773:158;25989:6;25965:21;;:30;;;;:::i;:::-;25941:21;:54;;;;25634:369;:::o;2888:471::-;2946:7;3196:1;3191;:6;3187:47;;3221:1;3214:8;;;;3187:47;3246:9;3262:1;3258;:5;;;;:::i;:::-;3246:17;;3291:1;3286;3282;:5;;;;:::i;:::-;:10;3274:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3350:1;3343:8;;;2888:471;;;;;:::o;3367:132::-;3425:7;3452:39;3456:1;3459;3452:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3445:46;;3367:132;;;;:::o;2535:145::-;2593:7;2620:52;2624:1;2627;2620:52;;;;;;;;;;;;;;;;;:3;:52::i;:::-;2613:59;;2535:145;;;;:::o;13493:125::-;;;;:::o;24313:689::-;24453:21;24491:1;24477:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24453:40;;24522:4;24504;24509:1;24504:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24548:11;;;;;;;;;;;24538:4;24543:1;24538:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;24596:15;;;;;;;;;;;:69;;;24680:11;24706:1;24751:4;24778:13;;;;;;;;;;;24807:15;24596:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24844:14;24868:11;;;;;;;;;;;24861:29;;;24899:13;;;;;;;;;;;24861:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24844:70;;24932:11;;;;;;;;;;;24925:32;;;24966:13;;;;;;;;;;;24981:4;24987:6;24925:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24382:620;;24313:689;;:::o;23741:564::-;23901:11;;;;;;;;;;;23894:27;;;23930:15;;;;;;;;;;;23947:10;23894:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23999:15;;;;;;;;;;;:28;;;24050:4;24070:11;;;;;;;;;;;24096;24122:10;24147:1;24190;24233:23;;;;;;;;;;;24271:15;23999:298;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23741:564;;:::o;25010:616::-;25151:21;25189:1;25175:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25151:40;;25220:4;25202;25207:1;25202:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25246:11;;;;;;;;;;;25236:4;25241:1;25236:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;25278:14;;;;;;;;;;;25268:4;25273:1;25268:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;25346:15;;;;;;;;;;;:69;;;25434:11;25464:1;25513:4;25544;25568:15;25346:252;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25329:288;25069:557;25010:616;:::o;3507:278::-;3593:7;3625:1;3621;:5;3628:12;3613:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3652:9;3668:1;3664;:5;;;;:::i;:::-;3652:17;;3776:1;3769:8;;;3507:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:147::-;7654:9;7687:37;7718:5;7687:37;:::i;:::-;7674:50;;7583:147;;;:::o;7736:173::-;7844:58;7896:5;7844:58;:::i;:::-;7839:3;7832:71;7736:173;;:::o;7915:264::-;8029:4;8067:2;8056:9;8052:18;8044:26;;8080:92;8169:1;8158:9;8154:17;8145:6;8080:92;:::i;:::-;7915:264;;;;:::o;8185:323::-;8241:6;8290:2;8278:9;8269:7;8265:23;8261:32;8258:119;;;8296:79;;:::i;:::-;8258:119;8416:1;8441:50;8483:7;8474:6;8463:9;8459:22;8441:50;:::i;:::-;8431:60;;8387:114;8185:323;;;;:::o;8514:474::-;8582:6;8590;8639:2;8627:9;8618:7;8614:23;8610:32;8607:119;;;8645:79;;:::i;:::-;8607:119;8765:1;8790:53;8835:7;8826:6;8815:9;8811:22;8790:53;:::i;:::-;8780:63;;8736:117;8892:2;8918:53;8963:7;8954:6;8943:9;8939:22;8918:53;:::i;:::-;8908:63;;8863:118;8514:474;;;;;:::o;8994:180::-;9042:77;9039:1;9032:88;9139:4;9136:1;9129:15;9163:4;9160:1;9153:15;9180:320;9224:6;9261:1;9255:4;9251:12;9241:22;;9308:1;9302:4;9298:12;9329:18;9319:81;;9385:4;9377:6;9373:17;9363:27;;9319:81;9447:2;9439:6;9436:14;9416:18;9413:38;9410:84;;9466:18;;:::i;:::-;9410:84;9231:269;9180:320;;;:::o;9506:228::-;9646:34;9642:1;9634:6;9630:14;9623:58;9715:11;9710:2;9702:6;9698:15;9691:36;9506:228;:::o;9740:366::-;9882:3;9903:67;9967:2;9962:3;9903:67;:::i;:::-;9896:74;;9979:93;10068:3;9979:93;:::i;:::-;10097:2;10092:3;10088:12;10081:19;;9740:366;;;:::o;10112:419::-;10278:4;10316:2;10305:9;10301:18;10293:26;;10365:9;10359:4;10355:20;10351:1;10340:9;10336:17;10329:47;10393:131;10519:4;10393:131;:::i;:::-;10385:139;;10112:419;;;:::o;10537:231::-;10677:34;10673:1;10665:6;10661:14;10654:58;10746:14;10741:2;10733:6;10729:15;10722:39;10537:231;:::o;10774:366::-;10916:3;10937:67;11001:2;10996:3;10937:67;:::i;:::-;10930:74;;11013:93;11102:3;11013:93;:::i;:::-;11131:2;11126:3;11122:12;11115:19;;10774:366;;;:::o;11146:419::-;11312:4;11350:2;11339:9;11335:18;11327:26;;11399:9;11393:4;11389:20;11385:1;11374:9;11370:17;11363:47;11427:131;11553:4;11427:131;:::i;:::-;11419:139;;11146:419;;;:::o;11571:293::-;11711:34;11707:1;11699:6;11695:14;11688:58;11780:34;11775:2;11767:6;11763:15;11756:59;11849:7;11844:2;11836:6;11832:15;11825:32;11571:293;:::o;11870:366::-;12012:3;12033:67;12097:2;12092:3;12033:67;:::i;:::-;12026:74;;12109:93;12198:3;12109:93;:::i;:::-;12227:2;12222:3;12218:12;12211:19;;11870:366;;;:::o;12242:419::-;12408:4;12446:2;12435:9;12431:18;12423:26;;12495:9;12489:4;12485:20;12481:1;12470:9;12466:17;12459:47;12523:131;12649:4;12523:131;:::i;:::-;12515:139;;12242:419;;;:::o;12667:225::-;12807:34;12803:1;12795:6;12791:14;12784:58;12876:8;12871:2;12863:6;12859:15;12852:33;12667:225;:::o;12898:366::-;13040:3;13061:67;13125:2;13120:3;13061:67;:::i;:::-;13054:74;;13137:93;13226:3;13137:93;:::i;:::-;13255:2;13250:3;13246:12;13239:19;;12898:366;;;:::o;13270:419::-;13436:4;13474:2;13463:9;13459:18;13451:26;;13523:9;13517:4;13513:20;13509:1;13498:9;13494:17;13487:47;13551:131;13677:4;13551:131;:::i;:::-;13543:139;;13270:419;;;:::o;13695:223::-;13835:34;13831:1;13823:6;13819:14;13812:58;13904:6;13899:2;13891:6;13887:15;13880:31;13695:223;:::o;13924:366::-;14066:3;14087:67;14151:2;14146:3;14087:67;:::i;:::-;14080:74;;14163:93;14252:3;14163:93;:::i;:::-;14281:2;14276:3;14272:12;14265:19;;13924:366;;;:::o;14296:419::-;14462:4;14500:2;14489:9;14485:18;14477:26;;14549:9;14543:4;14539:20;14535:1;14524:9;14520:17;14513:47;14577:131;14703:4;14577:131;:::i;:::-;14569:139;;14296:419;;;:::o;14721:221::-;14861:34;14857:1;14849:6;14845:14;14838:58;14930:4;14925:2;14917:6;14913:15;14906:29;14721:221;:::o;14948:366::-;15090:3;15111:67;15175:2;15170:3;15111:67;:::i;:::-;15104:74;;15187:93;15276:3;15187:93;:::i;:::-;15305:2;15300:3;15296:12;15289:19;;14948:366;;;:::o;15320:419::-;15486:4;15524:2;15513:9;15509:18;15501:26;;15573:9;15567:4;15563:20;15559:1;15548:9;15544:17;15537:47;15601:131;15727:4;15601:131;:::i;:::-;15593:139;;15320:419;;;:::o;15745:224::-;15885:34;15881:1;15873:6;15869:14;15862:58;15954:7;15949:2;15941:6;15937:15;15930:32;15745:224;:::o;15975:366::-;16117:3;16138:67;16202:2;16197:3;16138:67;:::i;:::-;16131:74;;16214:93;16303:3;16214:93;:::i;:::-;16332:2;16327:3;16323:12;16316:19;;15975:366;;;:::o;16347:419::-;16513:4;16551:2;16540:9;16536:18;16528:26;;16600:9;16594:4;16590:20;16586:1;16575:9;16571:17;16564:47;16628:131;16754:4;16628:131;:::i;:::-;16620:139;;16347:419;;;:::o;16772:222::-;16912:34;16908:1;16900:6;16896:14;16889:58;16981:5;16976:2;16968:6;16964:15;16957:30;16772:222;:::o;17000:366::-;17142:3;17163:67;17227:2;17222:3;17163:67;:::i;:::-;17156:74;;17239:93;17328:3;17239:93;:::i;:::-;17357:2;17352:3;17348:12;17341:19;;17000:366;;;:::o;17372:419::-;17538:4;17576:2;17565:9;17561:18;17553:26;;17625:9;17619:4;17615:20;17611:1;17600:9;17596:17;17589:47;17653:131;17779:4;17653:131;:::i;:::-;17645:139;;17372:419;;;:::o;17797:180::-;17845:77;17842:1;17835:88;17942:4;17939:1;17932:15;17966:4;17963:1;17956:15;17983:191;18023:3;18042:20;18060:1;18042:20;:::i;:::-;18037:25;;18076:20;18094:1;18076:20;:::i;:::-;18071:25;;18119:1;18116;18112:9;18105:16;;18140:3;18137:1;18134:10;18131:36;;;18147:18;;:::i;:::-;18131:36;17983:191;;;;:::o;18180:194::-;18220:4;18240:20;18258:1;18240:20;:::i;:::-;18235:25;;18274:20;18292:1;18274:20;:::i;:::-;18269:25;;18318:1;18315;18311:9;18303:17;;18342:1;18336:4;18333:11;18330:37;;;18347:18;;:::i;:::-;18330:37;18180:194;;;;:::o;18380:177::-;18520:29;18516:1;18508:6;18504:14;18497:53;18380:177;:::o;18563:366::-;18705:3;18726:67;18790:2;18785:3;18726:67;:::i;:::-;18719:74;;18802:93;18891:3;18802:93;:::i;:::-;18920:2;18915:3;18911:12;18904:19;;18563:366;;;:::o;18935:419::-;19101:4;19139:2;19128:9;19124:18;19116:26;;19188:9;19182:4;19178:20;19174:1;19163:9;19159:17;19152:47;19216:131;19342:4;19216:131;:::i;:::-;19208:139;;18935:419;;;:::o;19360:289::-;19500:34;19496:1;19488:6;19484:14;19477:58;19569:34;19564:2;19556:6;19552:15;19545:59;19638:3;19633:2;19625:6;19621:15;19614:28;19360:289;:::o;19655:366::-;19797:3;19818:67;19882:2;19877:3;19818:67;:::i;:::-;19811:74;;19894:93;19983:3;19894:93;:::i;:::-;20012:2;20007:3;20003:12;19996:19;;19655:366;;;:::o;20027:419::-;20193:4;20231:2;20220:9;20216:18;20208:26;;20280:9;20274:4;20270:20;20266:1;20255:9;20251:17;20244:47;20308:131;20434:4;20308:131;:::i;:::-;20300:139;;20027:419;;;:::o;20452:180::-;20500:77;20497:1;20490:88;20597:4;20594:1;20587:15;20621:4;20618:1;20611:15;20638:180;20686:77;20683:1;20676:88;20783:4;20780:1;20773:15;20807:4;20804:1;20797:15;20824:143;20881:5;20912:6;20906:13;20897:22;;20928:33;20955:5;20928:33;:::i;:::-;20824:143;;;;:::o;20973:351::-;21043:6;21092:2;21080:9;21071:7;21067:23;21063:32;21060:119;;;21098:79;;:::i;:::-;21060:119;21218:1;21243:64;21299:7;21290:6;21279:9;21275:22;21243:64;:::i;:::-;21233:74;;21189:128;20973:351;;;;:::o;21330:85::-;21375:7;21404:5;21393:16;;21330:85;;;:::o;21421:158::-;21479:9;21512:61;21530:42;21539:32;21565:5;21539:32;:::i;:::-;21530:42;:::i;:::-;21512:61;:::i;:::-;21499:74;;21421:158;;;:::o;21585:147::-;21680:45;21719:5;21680:45;:::i;:::-;21675:3;21668:58;21585:147;;:::o;21738:114::-;21805:6;21839:5;21833:12;21823:22;;21738:114;;;:::o;21858:184::-;21957:11;21991:6;21986:3;21979:19;22031:4;22026:3;22022:14;22007:29;;21858:184;;;;:::o;22048:132::-;22115:4;22138:3;22130:11;;22168:4;22163:3;22159:14;22151:22;;22048:132;;;:::o;22186:108::-;22263:24;22281:5;22263:24;:::i;:::-;22258:3;22251:37;22186:108;;:::o;22300:179::-;22369:10;22390:46;22432:3;22424:6;22390:46;:::i;:::-;22468:4;22463:3;22459:14;22445:28;;22300:179;;;;:::o;22485:113::-;22555:4;22587;22582:3;22578:14;22570:22;;22485:113;;;:::o;22634:732::-;22753:3;22782:54;22830:5;22782:54;:::i;:::-;22852:86;22931:6;22926:3;22852:86;:::i;:::-;22845:93;;22962:56;23012:5;22962:56;:::i;:::-;23041:7;23072:1;23057:284;23082:6;23079:1;23076:13;23057:284;;;23158:6;23152:13;23185:63;23244:3;23229:13;23185:63;:::i;:::-;23178:70;;23271:60;23324:6;23271:60;:::i;:::-;23261:70;;23117:224;23104:1;23101;23097:9;23092:14;;23057:284;;;23061:14;23357:3;23350:10;;22758:608;;;22634:732;;;;:::o;23372:831::-;23635:4;23673:3;23662:9;23658:19;23650:27;;23687:71;23755:1;23744:9;23740:17;23731:6;23687:71;:::i;:::-;23768:80;23844:2;23833:9;23829:18;23820:6;23768:80;:::i;:::-;23895:9;23889:4;23885:20;23880:2;23869:9;23865:18;23858:48;23923:108;24026:4;24017:6;23923:108;:::i;:::-;23915:116;;24041:72;24109:2;24098:9;24094:18;24085:6;24041:72;:::i;:::-;24123:73;24191:3;24180:9;24176:19;24167:6;24123:73;:::i;:::-;23372:831;;;;;;;;:::o;24209:143::-;24266:5;24297:6;24291:13;24282:22;;24313:33;24340:5;24313:33;:::i;:::-;24209:143;;;;:::o;24358:351::-;24428:6;24477:2;24465:9;24456:7;24452:23;24448:32;24445:119;;;24483:79;;:::i;:::-;24445:119;24603:1;24628:64;24684:7;24675:6;24664:9;24660:22;24628:64;:::i;:::-;24618:74;;24574:128;24358:351;;;;:::o;24715:442::-;24864:4;24902:2;24891:9;24887:18;24879:26;;24915:71;24983:1;24972:9;24968:17;24959:6;24915:71;:::i;:::-;24996:72;25064:2;25053:9;25049:18;25040:6;24996:72;:::i;:::-;25078;25146:2;25135:9;25131:18;25122:6;25078:72;:::i;:::-;24715:442;;;;;;:::o;25163:410::-;25203:7;25226:20;25244:1;25226:20;:::i;:::-;25221:25;;25260:20;25278:1;25260:20;:::i;:::-;25255:25;;25315:1;25312;25308:9;25337:30;25355:11;25337:30;:::i;:::-;25326:41;;25516:1;25507:7;25503:15;25500:1;25497:22;25477:1;25470:9;25450:83;25427:139;;25546:18;;:::i;:::-;25427:139;25211:362;25163:410;;;;:::o;25579:180::-;25627:77;25624:1;25617:88;25724:4;25721:1;25714:15;25748:4;25745:1;25738:15;25765:185;25805:1;25822:20;25840:1;25822:20;:::i;:::-;25817:25;;25856:20;25874:1;25856:20;:::i;:::-;25851:25;;25895:1;25885:35;;25900:18;;:::i;:::-;25885:35;25942:1;25939;25935:9;25930:14;;25765:185;;;;:::o;25956:220::-;26096:34;26092:1;26084:6;26080:14;26073:58;26165:3;26160:2;26152:6;26148:15;26141:28;25956:220;:::o;26182:366::-;26324:3;26345:67;26409:2;26404:3;26345:67;:::i;:::-;26338:74;;26421:93;26510:3;26421:93;:::i;:::-;26539:2;26534:3;26530:12;26523:19;;26182:366;;;:::o;26554:419::-;26720:4;26758:2;26747:9;26743:18;26735:26;;26807:9;26801:4;26797:20;26793:1;26782:9;26778:17;26771:47;26835:131;26961:4;26835:131;:::i;:::-;26827:139;;26554:419;;;:::o;26979:442::-;27128:4;27166:2;27155:9;27151:18;27143:26;;27179:71;27247:1;27236:9;27232:17;27223:6;27179:71;:::i;:::-;27260:72;27328:2;27317:9;27313:18;27304:6;27260:72;:::i;:::-;27342;27410:2;27399:9;27395:18;27386:6;27342:72;:::i;:::-;26979:442;;;;;;:::o;27427:137::-;27481:5;27512:6;27506:13;27497:22;;27528:30;27552:5;27528:30;:::i;:::-;27427:137;;;;:::o;27570:345::-;27637:6;27686:2;27674:9;27665:7;27661:23;27657:32;27654:119;;;27692:79;;:::i;:::-;27654:119;27812:1;27837:61;27890:7;27881:6;27870:9;27866:22;27837:61;:::i;:::-;27827:71;;27783:125;27570:345;;;;:::o;27921:332::-;28042:4;28080:2;28069:9;28065:18;28057:26;;28093:71;28161:1;28150:9;28146:17;28137:6;28093:71;:::i;:::-;28174:72;28242:2;28231:9;28227:18;28218:6;28174:72;:::i;:::-;27921:332;;;;;:::o;28259:1029::-;28564:4;28602:3;28591:9;28587:19;28579:27;;28616:71;28684:1;28673:9;28669:17;28660:6;28616:71;:::i;:::-;28697:72;28765:2;28754:9;28750:18;28741:6;28697:72;:::i;:::-;28779;28847:2;28836:9;28832:18;28823:6;28779:72;:::i;:::-;28861;28929:2;28918:9;28914:18;28905:6;28861:72;:::i;:::-;28943:81;29019:3;29008:9;29004:19;28995:6;28943:81;:::i;:::-;29034;29110:3;29099:9;29095:19;29086:6;29034:81;:::i;:::-;29125:73;29193:3;29182:9;29178:19;29169:6;29125:73;:::i;:::-;29208;29276:3;29265:9;29261:19;29252:6;29208:73;:::i;:::-;28259:1029;;;;;;;;;;;:::o;29294:663::-;29382:6;29390;29398;29447:2;29435:9;29426:7;29422:23;29418:32;29415:119;;;29453:79;;:::i;:::-;29415:119;29573:1;29598:64;29654:7;29645:6;29634:9;29630:22;29598:64;:::i;:::-;29588:74;;29544:128;29711:2;29737:64;29793:7;29784:6;29773:9;29769:22;29737:64;:::i;:::-;29727:74;;29682:129;29850:2;29876:64;29932:7;29923:6;29912:9;29908:22;29876:64;:::i;:::-;29866:74;;29821:129;29294:663;;;;;:::o
Swarm Source
ipfs://9579a8b64184a36bde679e30ae50d31711f9cf9a4fe5297ee6d863f6943c2342
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.