Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
VALHALLAMASTER
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-07-04
*/
// tg: @valhallamaster , Twitter : @valhallamasters
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
uint256 private _lockTime;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function getUnlockTime() public view returns (uint256) {
return _lockTime;
}
function getTime() public view returns (uint256) {
return block.timestamp;
}
function lock(uint256 time) public virtual onlyOwner {
_previousOwner = _owner;
_owner = address(0);
_lockTime = block.timestamp + time;
emit OwnershipTransferred(_owner, address(0));
}
function unlock() public virtual {
require(_previousOwner == msg.sender, "You don't have permission to unlock");
require(block.timestamp > _lockTime , "Contract is locked until 7 days");
emit OwnershipTransferred(_owner, _previousOwner);
_owner = _previousOwner;
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract VALHALLAMASTER is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
string private _name = "VALHALLA MASTER";
string private _symbol = "VALHALLA";
uint8 private _decimals = 9;
uint256 private _totalSupply = 100 * 10**10 * 10**9;
uint256 public _autoliquidity = 0;
uint256 public _marketing = 5;
uint256 public _maxbuy = 4 * 10**10 * 10**9;
uint256 public _maxwallet = 4 * 10**10 * 10**9;
uint256 private minimumTokensBeforeSwap = 1000 * 10**9;
uint256 public _totaltax = 0;
uint256 public _cooldown = 0;
uint256 public _developer = 0;
uint256 public _antidump = 0;
address payable public marketingWallet = payable(0xD5e7A17943113A6873DD8424E732A69F59B2fFB2);
address payable public rewardsWallet = payable(0xD5e7A17943113A6873DD8424E732A69F59B2fFB2);
address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isExcludedFromFee;
mapping (address => bool) public isWalletLimitExempt;
mapping (address => bool) public isBlacklisted;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
bool public checkWalletLimit = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(
uint256 amountIn,
address[] path
);
event SwapTokensForETH(
uint256 amountIn,
address[] path
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
_totaltax = _autoliquidity.add(_marketing).add(_developer);
_cooldown = _totaltax.add(_antidump);
isWalletLimitExempt[owner()] = true;
isWalletLimitExempt[address(uniswapV2Pair)] = true;
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function minimumTokensBeforeSwapAmount() public view returns (uint256) {
return minimumTokensBeforeSwap;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function blacklistAddress(address account, bool newValue) public onlyOwner {
isBlacklisted[account] = newValue;
}
function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
isExcludedFromFee[account] = newValue;
}
function setTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newRewardsTax, uint256 newExtraFeeOnSell) external onlyOwner() {
_autoliquidity = newLiquidityTax;
_marketing = newMarketingTax;
_developer = newRewardsTax;
_antidump = newExtraFeeOnSell;
_totaltax = _autoliquidity.add(_marketing).add(_developer);
_cooldown = _totaltax.add(_antidump);
}
function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
_maxbuy = maxTxAmount;
}
function enableDisableWalletLimit(bool newValue) external onlyOwner {
checkWalletLimit = newValue;
}
function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
isWalletLimitExempt[holder] = exempt;
}
function setWalletLimit(uint256 newLimit) external onlyOwner {
_maxwallet = newLimit;
}
function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
minimumTokensBeforeSwap = newLimit;
}
function setMarketingWallet(address newAddress) external onlyOwner() {
marketingWallet = payable(newAddress);
}
function setRewardsWallet(address newAddress) external onlyOwner() {
rewardsWallet = payable(newAddress);
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
swapAndLiquifyByLimitOnly = newValue;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
function transferToAddressETH(address payable recipient, uint256 amount) private {
recipient.transfer(amount);
}
function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
if(newPairAddress == address(0)) //Create If Doesnt exist
{
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
}
uniswapV2Pair = newPairAddress; //Set new pair address
uniswapV2Router = _uniswapV2Router; //Set new router address
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(!isBlacklisted[sender] && !isBlacklisted[recipient], "To/from address is blacklisted!");
require(amount > 0, "Transfer amount must be greater than zero");
if(inSwapAndLiquify)
{
return _basicTransfer(sender, recipient, amount);
}
else
{
if(sender != owner() && recipient != owner()) {
require(amount <= _maxbuy, "Transfer amount exceeds the maxTxAmount.");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
if (overMinimumTokenBalance && !inSwapAndLiquify && sender != uniswapV2Pair && swapAndLiquifyEnabled)
{
if(swapAndLiquifyByLimitOnly)
contractTokenBalance = minimumTokensBeforeSwap;
swapAndLiquify(contractTokenBalance);
}
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
amount : takeFee(sender, recipient, amount);
if(checkWalletLimit && !isWalletLimitExempt[recipient])
require(balanceOf(recipient).add(finalAmount) <= _maxwallet);
_balances[recipient] = _balances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
uint256 tokensForLP = tAmount.div(_totaltax).mul(_autoliquidity).div(2);
uint256 tokensForSwap = tAmount.sub(tokensForLP);
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance;
uint256 totalBNBFee = _totaltax.sub(_autoliquidity.div(2));
uint256 amountBNBLiquidity = amountReceived.mul(_autoliquidity).div(totalBNBFee).div(2);
uint256 amountBNBRewards = amountReceived.mul(_developer).div(totalBNBFee);
uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBRewards);
transferToAddressETH(marketingWallet, amountBNBMarketing);
transferToAddressETH(rewardsWallet, amountBNBRewards);
addLiquidity(tokensForLP, amountBNBLiquidity);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
owner(),
block.timestamp
);
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeAmount = recipient == uniswapV2Pair ? amount.mul(_cooldown).div(100)
: amount.mul(_totaltax).div(100);
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
return amount.sub(feeAmount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_antidump","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoliquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxbuy","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":"_totaltax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setRewardsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newRewardsTax","type":"uint256"},{"internalType":"uint256","name":"newExtraFeeOnSell","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040526040518060400160405280600f81526020017f56414c48414c4c41204d41535445520000000000000000000000000000000000815250600390816200004a919062000b74565b506040518060400160405280600881526020017f56414c48414c4c410000000000000000000000000000000000000000000000008152506004908162000091919062000b74565b506009600560006101000a81548160ff021916908360ff160217905550683635c9adc5dea000006006556000600755600560085568022b1c8c1227a0000060095568022b1c8c1227a00000600a5564e8d4a51000600b556000600c556000600d556000600e556000600f5573d5e7a17943113a6873dd8424e732a69f59b2ffb2601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d5e7a17943113a6873dd8424e732a69f59b2ffb2601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506001601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055506001601860176101000a81548160ff0219169083151502179055503480156200023957600080fd5b5060006200024c6200086660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000375919062000cc5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000cc5565b6040518363ffffffff1660e01b81526004016200042292919062000d08565b6020604051808303816000875af115801562000442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000468919062000cc5565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160146000620005a46200086e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000686600e54620006726008546007546200089760201b620027761790919060201c565b6200089760201b620027761790919060201c565b600c81905550620006aa600f54600c546200089760201b620027761790919060201c565b600d81905550600160156000620006c66200086e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060065460126000620007a86200086660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007f66200086660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000857919062000d46565b60405180910390a35062000e72565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808284620008a8919062000d92565b905083811015620008f0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e79062000e50565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200097c57607f821691505b60208210810362000992576200099162000934565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009bd565b62000a088683620009bd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a5562000a4f62000a498462000a20565b62000a2a565b62000a20565b9050919050565b6000819050919050565b62000a718362000a34565b62000a8962000a808262000a5c565b848454620009ca565b825550505050565b600090565b62000aa062000a91565b62000aad81848462000a66565b505050565b5b8181101562000ad55762000ac960008262000a96565b60018101905062000ab3565b5050565b601f82111562000b245762000aee8162000998565b62000af984620009ad565b8101602085101562000b09578190505b62000b2162000b1885620009ad565b83018262000ab2565b50505b505050565b600082821c905092915050565b600062000b496000198460080262000b29565b1980831691505092915050565b600062000b64838362000b36565b9150826002028217905092915050565b62000b7f82620008fa565b67ffffffffffffffff81111562000b9b5762000b9a62000905565b5b62000ba7825462000963565b62000bb482828562000ad9565b600060209050601f83116001811462000bec576000841562000bd7578287015190505b62000be3858262000b56565b86555062000c53565b601f19841662000bfc8662000998565b60005b8281101562000c265784890151825560018201915060208501945060208101905062000bff565b8683101562000c46578489015162000c42601f89168262000b36565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c8d8262000c60565b9050919050565b62000c9f8162000c80565b811462000cab57600080fd5b50565b60008151905062000cbf8162000c94565b92915050565b60006020828403121562000cde5762000cdd62000c5b565b5b600062000cee8482850162000cae565b91505092915050565b62000d028162000c80565b82525050565b600060408201905062000d1f600083018562000cf7565b62000d2e602083018462000cf7565b9392505050565b62000d408162000a20565b82525050565b600060208201905062000d5d600083018462000d35565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d9f8262000a20565b915062000dac8362000a20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000de45762000de362000d63565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000e38601b8362000def565b915062000e458262000e00565b602082019050919050565b6000602082019050818103600083015262000e6b8162000e29565b9050919050565b608051614c9b62000e9560003960008181610fb70152610fe30152614c9b6000f3fe6080604052600436106103035760003560e01c8063715018a611610190578063aa660bea116100dc578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610b93578063f2fde38b14610bbc578063f872858a14610be5578063fe575a8714610c105761030a565b8063dd62ed3e14610b04578063ec28438a14610b41578063ef422a1814610b6a5761030a565b8063aa660bea146109f4578063bfbeba0d14610a1f578063c49b9a8014610a4a578063c867d60b14610a73578063da00097d14610ab0578063dd46706414610adb5761030a565b8063a073d37f11610149578063a457c2d711610123578063a457c2d71461093a578063a5d69d1f14610977578063a69df4b5146109a0578063a9059cbb146109b75761030a565b8063a073d37f146108bd578063a12a7d61146108e8578063a1980430146109115761030a565b8063715018a6146107cf57806375f0a874146107e65780637a9d0758146108115780638da5cb5b1461083c57806392a40c341461086757806395d89b41146108925761030a565b806339b09d4a1161024f578063557ed1ba116102085780635d098b38116101e25780635d098b3814610713578063602bc62b1461073c57806362940cc41461076757806370a08231146107925761030a565b8063557ed1ba146106805780635881f3ef146106ab5780635b35f9c9146106e85761030a565b806339b09d4a146105705780633b97084a1461059b578063455a4396146105c457806349bd5a5e146105ed5780634a74bb02146106185780635342acb4146106435761030a565b80632198cf6c116102bc57806327c8f8351161029657806327c8f835146104b25780632b112e49146104dd578063313ce5671461050857806339509351146105335761030a565b80632198cf6c1461042357806323b872dd1461044c5780632563ae83146104895761030a565b806306fdde031461030f578063095ea7b31461033a57806309e72cf614610377578063158ece13146103a25780631694505e146103cd57806318160ddd146103f85761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b6040516103319190613bff565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613cba565b610cdf565b60405161036e9190613d15565b60405180910390f35b34801561038357600080fd5b5061038c610cfd565b6040516103999190613d3f565b60405180910390f35b3480156103ae57600080fd5b506103b7610d03565b6040516103c49190613d3f565b60405180910390f35b3480156103d957600080fd5b506103e2610d09565b6040516103ef9190613db9565b60405180910390f35b34801561040457600080fd5b5061040d610d2f565b60405161041a9190613d3f565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613e00565b610d39565b005b34801561045857600080fd5b50610473600480360381019061046e9190613e40565b610e29565b6040516104809190613d15565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190613e93565b610f03565b005b3480156104be57600080fd5b506104c7610fb5565b6040516104d49190613ecf565b60405180910390f35b3480156104e957600080fd5b506104f2610fd9565b6040516104ff9190613d3f565b60405180910390f35b34801561051457600080fd5b5061051d61101d565b60405161052a9190613f06565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613cba565b611034565b6040516105679190613d15565b60405180910390f35b34801561057c57600080fd5b506105856110e7565b6040516105929190613d3f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613f21565b6110ed565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613e00565b61118c565b005b3480156105f957600080fd5b5061060261127c565b60405161060f9190613ecf565b60405180910390f35b34801561062457600080fd5b5061062d6112a2565b60405161063a9190613d15565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613f4e565b6112b5565b6040516106779190613d15565b60405180910390f35b34801561068c57600080fd5b506106956112d5565b6040516106a29190613d3f565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190613f4e565b6112dd565b6040516106df9190613ecf565b60405180910390f35b3480156106f457600080fd5b506106fd6116ec565b60405161070a9190613f9c565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613f4e565b611712565b005b34801561074857600080fd5b506107516117eb565b60405161075e9190613d3f565b60405180910390f35b34801561077357600080fd5b5061077c6117f5565b6040516107899190613d3f565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b49190613f4e565b6117fb565b6040516107c69190613d3f565b60405180910390f35b3480156107db57600080fd5b506107e4611844565b005b3480156107f257600080fd5b506107fb611997565b6040516108089190613f9c565b60405180910390f35b34801561081d57600080fd5b506108266119bd565b6040516108339190613d3f565b60405180910390f35b34801561084857600080fd5b506108516119c3565b60405161085e9190613ecf565b60405180910390f35b34801561087357600080fd5b5061087c6119ec565b6040516108899190613d3f565b60405180910390f35b34801561089e57600080fd5b506108a76119f2565b6040516108b49190613bff565b60405180910390f35b3480156108c957600080fd5b506108d2611a84565b6040516108df9190613d3f565b60405180910390f35b3480156108f457600080fd5b5061090f600480360381019061090a9190613fb7565b611a8e565b005b34801561091d57600080fd5b5061093860048036038101906109339190613f4e565b611b93565b005b34801561094657600080fd5b50610961600480360381019061095c9190613cba565b611c6c565b60405161096e9190613d15565b60405180910390f35b34801561098357600080fd5b5061099e60048036038101906109999190613e93565b611d39565b005b3480156109ac57600080fd5b506109b5611deb565b005b3480156109c357600080fd5b506109de60048036038101906109d99190613cba565b611fbf565b6040516109eb9190613d15565b60405180910390f35b348015610a0057600080fd5b50610a09611fde565b604051610a169190613d3f565b60405180910390f35b348015610a2b57600080fd5b50610a34611fe4565b604051610a419190613d3f565b60405180910390f35b348015610a5657600080fd5b50610a716004803603810190610a6c9190613e93565b611fea565b005b348015610a7f57600080fd5b50610a9a6004803603810190610a959190613f4e565b6120d3565b604051610aa79190613d15565b60405180910390f35b348015610abc57600080fd5b50610ac56120f3565b604051610ad29190613d15565b60405180910390f35b348015610ae757600080fd5b50610b026004803603810190610afd9190613f21565b612106565b005b348015610b1057600080fd5b50610b2b6004803603810190610b26919061401e565b6122cd565b604051610b389190613d3f565b60405180910390f35b348015610b4d57600080fd5b50610b686004803603810190610b639190613f21565b612354565b005b348015610b7657600080fd5b50610b916004803603810190610b8c9190613e00565b6123f3565b005b348015610b9f57600080fd5b50610bba6004803603810190610bb59190613f21565b6124e3565b005b348015610bc857600080fd5b50610be36004803603810190610bde9190613f4e565b612582565b005b348015610bf157600080fd5b50610bfa612743565b604051610c079190613d15565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613f4e565b612756565b604051610c449190613d15565b60405180910390f35b606060038054610c5c9061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c889061408d565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec6127d4565b84846127dc565b6001905092915050565b600a5481565b600f5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b610d416127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc59061410a565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610e368484846129a5565b50610ef884610e436127d4565b610ef385604051806060016040528060288152602001614c1960289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea96127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b6127dc565b600190509392505050565b610f0b6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f9061410a565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110186110077f00000000000000000000000000000000000000000000000000000000000000006117fb565b6006546130e890919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b60006110dd6110416127d4565b846110d885601360006110526127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b6127dc565b6001905092915050565b600d5481565b6110f56127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611182576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111799061410a565b60405180910390fd5b80600b8190555050565b6111946127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061410a565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b60146020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60006112e76127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b9061410a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e8919061413f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611473919061413f565b6040518363ffffffff1660e01b815260040161149092919061416c565b602060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061413f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611664578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611552573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611576919061413f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611601919061413f565b6040518363ffffffff1660e01b815260040161161e92919061416c565b6020604051808303816000875af115801561163d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611661919061413f565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61171a6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e9061410a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60085481565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61184c6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061410a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b606060048054611a019061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2d9061408d565b8015611a7a5780601f10611a4f57610100808354040283529160200191611a7a565b820191906000526020600020905b815481529060010190602001808311611a5d57829003601f168201915b5050505050905090565b6000600b54905090565b611a966127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061410a565b60405180910390fd5b836007819055508260088190555081600e8190555080600f81905550611b6a600e54611b5c60085460075461277690919063ffffffff16565b61277690919063ffffffff16565b600c81905550611b87600f54600c5461277690919063ffffffff16565b600d8190555050505050565b611b9b6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f9061410a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611d2f611c796127d4565b84611d2a85604051806060016040528060258152602001614c416025913960136000611ca36127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b6127dc565b6001905092915050565b611d416127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc59061410a565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290614207565b60405180910390fd5b6002544211611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690614273565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611fd3611fcc6127d4565b84846129a5565b506001905092915050565b600c5481565b60075481565b611ff26127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769061410a565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516120c89190613d15565b60405180910390a150565b60156020528060005260406000206000915054906101000a900460ff1681565b601860169054906101000a900460ff1681565b61210e6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121929061410a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261224991906142c2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61235c6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e09061410a565b60405180910390fd5b8060098190555050565b6123fb6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f9061410a565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6124eb6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f9061410a565b60405180910390fd5b80600a8190555050565b61258a6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260e9061410a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061438a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b600080828461278591906142c2565b9050838110156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c1906143f6565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284290614488565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b19061451a565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129989190613d3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0c906145ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7b9061463e565b60405180910390fd5b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b285750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5e906146aa565b60405180910390fd5b60008211612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba19061473c565b60405180910390fd5b601860149054906101000a900460ff1615612bd157612bca848484613132565b905061307d565b612bd96119c3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c475750612c176119c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c9257600954821115612c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c88906147ce565b60405180910390fd5b5b6000612c9d306117fb565b90506000600b548210159050808015612cc35750601860149054906101000a900460ff16155b8015612d1d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d355750601860159054906101000a900460ff165b15612d5f57601860169054906101000a900460ff1615612d5557600b5491505b612d5e82613305565b5b612de8846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ece5750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ee257612edd8787876134cc565b612ee4565b845b9050601860179054906101000a900460ff168015612f4c5750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f7b57600a54612f6f82612f61896117fb565b61277690919063ffffffff16565b1115612f7a57600080fd5b5b612fcd81601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161306d9190613d3f565b60405180910390a3600193505050505b9392505050565b60008383111582906130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c39190613bff565b60405180910390fd5b50600083856130db91906147ee565b9050809150509392505050565b600061312a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613084565b905092915050565b60006131bd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061325282601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f29190613d3f565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff021916908315150217905550600061335e6002613350600754613342600c548761369390919063ffffffff16565b6136dd90919063ffffffff16565b61369390919063ffffffff16565b9050600061337582846130e890919063ffffffff16565b905061338081613757565b600047905060006133b16133a0600260075461369390919063ffffffff16565b600c546130e890919063ffffffff16565b905060006133ef60026133e1846133d3600754886136dd90919063ffffffff16565b61369390919063ffffffff16565b61369390919063ffffffff16565b9050600061341a8361340c600e54876136dd90919063ffffffff16565b61369390919063ffffffff16565b905060006134438261343585886130e890919063ffffffff16565b6130e890919063ffffffff16565b9050613471601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826139d3565b61349d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836139d3565b6134a78784613a1e565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135515761354c606461353e600c54866136dd90919063ffffffff16565b61369390919063ffffffff16565b61357a565b613579606461356b600d54866136dd90919063ffffffff16565b61369390919063ffffffff16565b5b90506135ce81601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161366e9190613d3f565b60405180910390a361368981846130e890919063ffffffff16565b9150509392505050565b60006136d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b03565b905092915050565b60008083036136ef5760009050613751565b600082846136fd9190614822565b905082848261370c91906148ab565b1461374c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137439061494e565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137745761377361496e565b5b6040519080825280602002602001820160405280156137a25781602001602082028036833780820191505090505b50905030816000815181106137ba576137b961499d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613885919061413f565b816001815181106138995761389861499d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061390030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127dc565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613964959493929190614ac5565b600060405180830381600087803b15801561397e57600080fd5b505af1158015613992573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516139c7929190614b1f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613a19573d6000803e3d6000fd5b505050565b613a4b30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127dc565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613a976119c3565b426040518863ffffffff1660e01b8152600401613ab996959493929190614b4f565b60606040518083038185885af1158015613ad7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613afc9190614bc5565b5050505050565b60008083118290613b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b419190613bff565b60405180910390fd5b5060008385613b5991906148ab565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ba0578082015181840152602081019050613b85565b83811115613baf576000848401525b50505050565b6000601f19601f8301169050919050565b6000613bd182613b66565b613bdb8185613b71565b9350613beb818560208601613b82565b613bf481613bb5565b840191505092915050565b60006020820190508181036000830152613c198184613bc6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c5182613c26565b9050919050565b613c6181613c46565b8114613c6c57600080fd5b50565b600081359050613c7e81613c58565b92915050565b6000819050919050565b613c9781613c84565b8114613ca257600080fd5b50565b600081359050613cb481613c8e565b92915050565b60008060408385031215613cd157613cd0613c21565b5b6000613cdf85828601613c6f565b9250506020613cf085828601613ca5565b9150509250929050565b60008115159050919050565b613d0f81613cfa565b82525050565b6000602082019050613d2a6000830184613d06565b92915050565b613d3981613c84565b82525050565b6000602082019050613d546000830184613d30565b92915050565b6000819050919050565b6000613d7f613d7a613d7584613c26565b613d5a565b613c26565b9050919050565b6000613d9182613d64565b9050919050565b6000613da382613d86565b9050919050565b613db381613d98565b82525050565b6000602082019050613dce6000830184613daa565b92915050565b613ddd81613cfa565b8114613de857600080fd5b50565b600081359050613dfa81613dd4565b92915050565b60008060408385031215613e1757613e16613c21565b5b6000613e2585828601613c6f565b9250506020613e3685828601613deb565b9150509250929050565b600080600060608486031215613e5957613e58613c21565b5b6000613e6786828701613c6f565b9350506020613e7886828701613c6f565b9250506040613e8986828701613ca5565b9150509250925092565b600060208284031215613ea957613ea8613c21565b5b6000613eb784828501613deb565b91505092915050565b613ec981613c46565b82525050565b6000602082019050613ee46000830184613ec0565b92915050565b600060ff82169050919050565b613f0081613eea565b82525050565b6000602082019050613f1b6000830184613ef7565b92915050565b600060208284031215613f3757613f36613c21565b5b6000613f4584828501613ca5565b91505092915050565b600060208284031215613f6457613f63613c21565b5b6000613f7284828501613c6f565b91505092915050565b6000613f8682613c26565b9050919050565b613f9681613f7b565b82525050565b6000602082019050613fb16000830184613f8d565b92915050565b60008060008060808587031215613fd157613fd0613c21565b5b6000613fdf87828801613ca5565b9450506020613ff087828801613ca5565b935050604061400187828801613ca5565b925050606061401287828801613ca5565b91505092959194509250565b6000806040838503121561403557614034613c21565b5b600061404385828601613c6f565b925050602061405485828601613c6f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140a557607f821691505b6020821081036140b8576140b761405e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f4602083613b71565b91506140ff826140be565b602082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b60008151905061413981613c58565b92915050565b60006020828403121561415557614154613c21565b5b60006141638482850161412a565b91505092915050565b60006040820190506141816000830185613ec0565b61418e6020830184613ec0565b9392505050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602383613b71565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b600061425d601f83613b71565b915061426882614227565b602082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142cd82613c84565b91506142d883613c84565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561430d5761430c614293565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614374602683613b71565b915061437f82614318565b604082019050919050565b600060208201905081810360008301526143a381614367565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143e0601b83613b71565b91506143eb826143aa565b602082019050919050565b6000602082019050818103600083015261440f816143d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614472602483613b71565b915061447d82614416565b604082019050919050565b600060208201905081810360008301526144a181614465565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614504602283613b71565b915061450f826144a8565b604082019050919050565b60006020820190508181036000830152614533816144f7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614596602583613b71565b91506145a18261453a565b604082019050919050565b600060208201905081810360008301526145c581614589565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614628602383613b71565b9150614633826145cc565b604082019050919050565b600060208201905081810360008301526146578161461b565b9050919050565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b6000614694601f83613b71565b915061469f8261465e565b602082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614726602983613b71565b9150614731826146ca565b604082019050919050565b6000602082019050818103600083015261475581614719565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006147b8602883613b71565b91506147c38261475c565b604082019050919050565b600060208201905081810360008301526147e7816147ab565b9050919050565b60006147f982613c84565b915061480483613c84565b92508282101561481757614816614293565b5b828203905092915050565b600061482d82613c84565b915061483883613c84565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561487157614870614293565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006148b682613c84565b91506148c183613c84565b9250826148d1576148d061487c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614938602183613b71565b9150614943826148dc565b604082019050919050565b600060208201905081810360008301526149678161492b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006149f16149ec6149e7846149cc565b613d5a565b613c84565b9050919050565b614a01816149d6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a3c81613c46565b82525050565b6000614a4e8383614a33565b60208301905092915050565b6000602082019050919050565b6000614a7282614a07565b614a7c8185614a12565b9350614a8783614a23565b8060005b83811015614ab8578151614a9f8882614a42565b9750614aaa83614a5a565b925050600181019050614a8b565b5085935050505092915050565b600060a082019050614ada6000830188613d30565b614ae760208301876149f8565b8181036040830152614af98186614a67565b9050614b086060830185613ec0565b614b156080830184613d30565b9695505050505050565b6000604082019050614b346000830185613d30565b8181036020830152614b468184614a67565b90509392505050565b600060c082019050614b646000830189613ec0565b614b716020830188613d30565b614b7e60408301876149f8565b614b8b60608301866149f8565b614b986080830185613ec0565b614ba560a0830184613d30565b979650505050505050565b600081519050614bbf81613c8e565b92915050565b600080600060608486031215614bde57614bdd613c21565b5b6000614bec86828701614bb0565b9350506020614bfd86828701614bb0565b9250506040614c0e86828701614bb0565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220be1477f64fd1c6b9cb9052a5270d6ca6a8a4b6e9e89b16b1e76430224b6175d264736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063715018a611610190578063aa660bea116100dc578063dd62ed3e11610095578063f1d5f5171161006f578063f1d5f51714610b93578063f2fde38b14610bbc578063f872858a14610be5578063fe575a8714610c105761030a565b8063dd62ed3e14610b04578063ec28438a14610b41578063ef422a1814610b6a5761030a565b8063aa660bea146109f4578063bfbeba0d14610a1f578063c49b9a8014610a4a578063c867d60b14610a73578063da00097d14610ab0578063dd46706414610adb5761030a565b8063a073d37f11610149578063a457c2d711610123578063a457c2d71461093a578063a5d69d1f14610977578063a69df4b5146109a0578063a9059cbb146109b75761030a565b8063a073d37f146108bd578063a12a7d61146108e8578063a1980430146109115761030a565b8063715018a6146107cf57806375f0a874146107e65780637a9d0758146108115780638da5cb5b1461083c57806392a40c341461086757806395d89b41146108925761030a565b806339b09d4a1161024f578063557ed1ba116102085780635d098b38116101e25780635d098b3814610713578063602bc62b1461073c57806362940cc41461076757806370a08231146107925761030a565b8063557ed1ba146106805780635881f3ef146106ab5780635b35f9c9146106e85761030a565b806339b09d4a146105705780633b97084a1461059b578063455a4396146105c457806349bd5a5e146105ed5780634a74bb02146106185780635342acb4146106435761030a565b80632198cf6c116102bc57806327c8f8351161029657806327c8f835146104b25780632b112e49146104dd578063313ce5671461050857806339509351146105335761030a565b80632198cf6c1461042357806323b872dd1461044c5780632563ae83146104895761030a565b806306fdde031461030f578063095ea7b31461033a57806309e72cf614610377578063158ece13146103a25780631694505e146103cd57806318160ddd146103f85761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b6040516103319190613bff565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613cba565b610cdf565b60405161036e9190613d15565b60405180910390f35b34801561038357600080fd5b5061038c610cfd565b6040516103999190613d3f565b60405180910390f35b3480156103ae57600080fd5b506103b7610d03565b6040516103c49190613d3f565b60405180910390f35b3480156103d957600080fd5b506103e2610d09565b6040516103ef9190613db9565b60405180910390f35b34801561040457600080fd5b5061040d610d2f565b60405161041a9190613d3f565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613e00565b610d39565b005b34801561045857600080fd5b50610473600480360381019061046e9190613e40565b610e29565b6040516104809190613d15565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190613e93565b610f03565b005b3480156104be57600080fd5b506104c7610fb5565b6040516104d49190613ecf565b60405180910390f35b3480156104e957600080fd5b506104f2610fd9565b6040516104ff9190613d3f565b60405180910390f35b34801561051457600080fd5b5061051d61101d565b60405161052a9190613f06565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190613cba565b611034565b6040516105679190613d15565b60405180910390f35b34801561057c57600080fd5b506105856110e7565b6040516105929190613d3f565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190613f21565b6110ed565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190613e00565b61118c565b005b3480156105f957600080fd5b5061060261127c565b60405161060f9190613ecf565b60405180910390f35b34801561062457600080fd5b5061062d6112a2565b60405161063a9190613d15565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613f4e565b6112b5565b6040516106779190613d15565b60405180910390f35b34801561068c57600080fd5b506106956112d5565b6040516106a29190613d3f565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190613f4e565b6112dd565b6040516106df9190613ecf565b60405180910390f35b3480156106f457600080fd5b506106fd6116ec565b60405161070a9190613f9c565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190613f4e565b611712565b005b34801561074857600080fd5b506107516117eb565b60405161075e9190613d3f565b60405180910390f35b34801561077357600080fd5b5061077c6117f5565b6040516107899190613d3f565b60405180910390f35b34801561079e57600080fd5b506107b960048036038101906107b49190613f4e565b6117fb565b6040516107c69190613d3f565b60405180910390f35b3480156107db57600080fd5b506107e4611844565b005b3480156107f257600080fd5b506107fb611997565b6040516108089190613f9c565b60405180910390f35b34801561081d57600080fd5b506108266119bd565b6040516108339190613d3f565b60405180910390f35b34801561084857600080fd5b506108516119c3565b60405161085e9190613ecf565b60405180910390f35b34801561087357600080fd5b5061087c6119ec565b6040516108899190613d3f565b60405180910390f35b34801561089e57600080fd5b506108a76119f2565b6040516108b49190613bff565b60405180910390f35b3480156108c957600080fd5b506108d2611a84565b6040516108df9190613d3f565b60405180910390f35b3480156108f457600080fd5b5061090f600480360381019061090a9190613fb7565b611a8e565b005b34801561091d57600080fd5b5061093860048036038101906109339190613f4e565b611b93565b005b34801561094657600080fd5b50610961600480360381019061095c9190613cba565b611c6c565b60405161096e9190613d15565b60405180910390f35b34801561098357600080fd5b5061099e60048036038101906109999190613e93565b611d39565b005b3480156109ac57600080fd5b506109b5611deb565b005b3480156109c357600080fd5b506109de60048036038101906109d99190613cba565b611fbf565b6040516109eb9190613d15565b60405180910390f35b348015610a0057600080fd5b50610a09611fde565b604051610a169190613d3f565b60405180910390f35b348015610a2b57600080fd5b50610a34611fe4565b604051610a419190613d3f565b60405180910390f35b348015610a5657600080fd5b50610a716004803603810190610a6c9190613e93565b611fea565b005b348015610a7f57600080fd5b50610a9a6004803603810190610a959190613f4e565b6120d3565b604051610aa79190613d15565b60405180910390f35b348015610abc57600080fd5b50610ac56120f3565b604051610ad29190613d15565b60405180910390f35b348015610ae757600080fd5b50610b026004803603810190610afd9190613f21565b612106565b005b348015610b1057600080fd5b50610b2b6004803603810190610b26919061401e565b6122cd565b604051610b389190613d3f565b60405180910390f35b348015610b4d57600080fd5b50610b686004803603810190610b639190613f21565b612354565b005b348015610b7657600080fd5b50610b916004803603810190610b8c9190613e00565b6123f3565b005b348015610b9f57600080fd5b50610bba6004803603810190610bb59190613f21565b6124e3565b005b348015610bc857600080fd5b50610be36004803603810190610bde9190613f4e565b612582565b005b348015610bf157600080fd5b50610bfa612743565b604051610c079190613d15565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613f4e565b612756565b604051610c449190613d15565b60405180910390f35b606060038054610c5c9061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c889061408d565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec6127d4565b84846127dc565b6001905092915050565b600a5481565b600f5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b610d416127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc59061410a565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610e368484846129a5565b50610ef884610e436127d4565b610ef385604051806060016040528060288152602001614c1960289139601360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea96127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b6127dc565b600190509392505050565b610f0b6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f9061410a565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006110186110077f000000000000000000000000000000000000000000000000000000000000dead6117fb565b6006546130e890919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b60006110dd6110416127d4565b846110d885601360006110526127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b6127dc565b6001905092915050565b600d5481565b6110f56127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611182576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111799061410a565b60405180910390fd5b80600b8190555050565b6111946127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112189061410a565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b60146020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60006112e76127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b9061410a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e8919061413f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611473919061413f565b6040518363ffffffff1660e01b815260040161149092919061416c565b602060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061413f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611664578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611552573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611576919061413f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611601919061413f565b6040518363ffffffff1660e01b815260040161161e92919061416c565b6020604051808303816000875af115801561163d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611661919061413f565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61171a6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e9061410a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b60085481565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61184c6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d09061410a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b606060048054611a019061408d565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2d9061408d565b8015611a7a5780601f10611a4f57610100808354040283529160200191611a7a565b820191906000526020600020905b815481529060010190602001808311611a5d57829003601f168201915b5050505050905090565b6000600b54905090565b611a966127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061410a565b60405180910390fd5b836007819055508260088190555081600e8190555080600f81905550611b6a600e54611b5c60085460075461277690919063ffffffff16565b61277690919063ffffffff16565b600c81905550611b87600f54600c5461277690919063ffffffff16565b600d8190555050505050565b611b9b6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f9061410a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611d2f611c796127d4565b84611d2a85604051806060016040528060258152602001614c416025913960136000611ca36127d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b6127dc565b6001905092915050565b611d416127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc59061410a565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290614207565b60405180910390fd5b6002544211611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690614273565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611fd3611fcc6127d4565b84846129a5565b506001905092915050565b600c5481565b60075481565b611ff26127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769061410a565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516120c89190613d15565b60405180910390a150565b60156020528060005260406000206000915054906101000a900460ff1681565b601860169054906101000a900460ff1681565b61210e6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121929061410a565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261224991906142c2565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61235c6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e09061410a565b60405180910390fd5b8060098190555050565b6123fb6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f9061410a565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6124eb6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f9061410a565b60405180910390fd5b80600a8190555050565b61258a6127d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260e9061410a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061438a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b600080828461278591906142c2565b9050838110156127ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c1906143f6565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284290614488565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b19061451a565b60405180910390fd5b80601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129989190613d3f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0c906145ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7b9061463e565b60405180910390fd5b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b285750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5e906146aa565b60405180910390fd5b60008211612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba19061473c565b60405180910390fd5b601860149054906101000a900460ff1615612bd157612bca848484613132565b905061307d565b612bd96119c3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612c475750612c176119c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612c9257600954821115612c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c88906147ce565b60405180910390fd5b5b6000612c9d306117fb565b90506000600b548210159050808015612cc35750601860149054906101000a900460ff16155b8015612d1d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d355750601860159054906101000a900460ff165b15612d5f57601860169054906101000a900460ff1615612d5557600b5491505b612d5e82613305565b5b612de8846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ece5750601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ee257612edd8787876134cc565b612ee4565b845b9050601860179054906101000a900460ff168015612f4c5750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f7b57600a54612f6f82612f61896117fb565b61277690919063ffffffff16565b1115612f7a57600080fd5b5b612fcd81601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161306d9190613d3f565b60405180910390a3600193505050505b9392505050565b60008383111582906130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c39190613bff565b60405180910390fd5b50600083856130db91906147ee565b9050809150509392505050565b600061312a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613084565b905092915050565b60006131bd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130849092919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061325282601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f29190613d3f565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff021916908315150217905550600061335e6002613350600754613342600c548761369390919063ffffffff16565b6136dd90919063ffffffff16565b61369390919063ffffffff16565b9050600061337582846130e890919063ffffffff16565b905061338081613757565b600047905060006133b16133a0600260075461369390919063ffffffff16565b600c546130e890919063ffffffff16565b905060006133ef60026133e1846133d3600754886136dd90919063ffffffff16565b61369390919063ffffffff16565b61369390919063ffffffff16565b9050600061341a8361340c600e54876136dd90919063ffffffff16565b61369390919063ffffffff16565b905060006134438261343585886130e890919063ffffffff16565b6130e890919063ffffffff16565b9050613471601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826139d3565b61349d601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836139d3565b6134a78784613a1e565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135515761354c606461353e600c54866136dd90919063ffffffff16565b61369390919063ffffffff16565b61357a565b613579606461356b600d54866136dd90919063ffffffff16565b61369390919063ffffffff16565b5b90506135ce81601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277690919063ffffffff16565b601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161366e9190613d3f565b60405180910390a361368981846130e890919063ffffffff16565b9150509392505050565b60006136d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b03565b905092915050565b60008083036136ef5760009050613751565b600082846136fd9190614822565b905082848261370c91906148ab565b1461374c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137439061494e565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137745761377361496e565b5b6040519080825280602002602001820160405280156137a25781602001602082028036833780820191505090505b50905030816000815181106137ba576137b961499d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613885919061413f565b816001815181106138995761389861499d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061390030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127dc565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613964959493929190614ac5565b600060405180830381600087803b15801561397e57600080fd5b505af1158015613992573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516139c7929190614b1f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613a19573d6000803e3d6000fd5b505050565b613a4b30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846127dc565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613a976119c3565b426040518863ffffffff1660e01b8152600401613ab996959493929190614b4f565b60606040518083038185885af1158015613ad7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613afc9190614bc5565b5050505050565b60008083118290613b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b419190613bff565b60405180910390fd5b5060008385613b5991906148ab565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ba0578082015181840152602081019050613b85565b83811115613baf576000848401525b50505050565b6000601f19601f8301169050919050565b6000613bd182613b66565b613bdb8185613b71565b9350613beb818560208601613b82565b613bf481613bb5565b840191505092915050565b60006020820190508181036000830152613c198184613bc6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c5182613c26565b9050919050565b613c6181613c46565b8114613c6c57600080fd5b50565b600081359050613c7e81613c58565b92915050565b6000819050919050565b613c9781613c84565b8114613ca257600080fd5b50565b600081359050613cb481613c8e565b92915050565b60008060408385031215613cd157613cd0613c21565b5b6000613cdf85828601613c6f565b9250506020613cf085828601613ca5565b9150509250929050565b60008115159050919050565b613d0f81613cfa565b82525050565b6000602082019050613d2a6000830184613d06565b92915050565b613d3981613c84565b82525050565b6000602082019050613d546000830184613d30565b92915050565b6000819050919050565b6000613d7f613d7a613d7584613c26565b613d5a565b613c26565b9050919050565b6000613d9182613d64565b9050919050565b6000613da382613d86565b9050919050565b613db381613d98565b82525050565b6000602082019050613dce6000830184613daa565b92915050565b613ddd81613cfa565b8114613de857600080fd5b50565b600081359050613dfa81613dd4565b92915050565b60008060408385031215613e1757613e16613c21565b5b6000613e2585828601613c6f565b9250506020613e3685828601613deb565b9150509250929050565b600080600060608486031215613e5957613e58613c21565b5b6000613e6786828701613c6f565b9350506020613e7886828701613c6f565b9250506040613e8986828701613ca5565b9150509250925092565b600060208284031215613ea957613ea8613c21565b5b6000613eb784828501613deb565b91505092915050565b613ec981613c46565b82525050565b6000602082019050613ee46000830184613ec0565b92915050565b600060ff82169050919050565b613f0081613eea565b82525050565b6000602082019050613f1b6000830184613ef7565b92915050565b600060208284031215613f3757613f36613c21565b5b6000613f4584828501613ca5565b91505092915050565b600060208284031215613f6457613f63613c21565b5b6000613f7284828501613c6f565b91505092915050565b6000613f8682613c26565b9050919050565b613f9681613f7b565b82525050565b6000602082019050613fb16000830184613f8d565b92915050565b60008060008060808587031215613fd157613fd0613c21565b5b6000613fdf87828801613ca5565b9450506020613ff087828801613ca5565b935050604061400187828801613ca5565b925050606061401287828801613ca5565b91505092959194509250565b6000806040838503121561403557614034613c21565b5b600061404385828601613c6f565b925050602061405485828601613c6f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140a557607f821691505b6020821081036140b8576140b761405e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140f4602083613b71565b91506140ff826140be565b602082019050919050565b60006020820190508181036000830152614123816140e7565b9050919050565b60008151905061413981613c58565b92915050565b60006020828403121561415557614154613c21565b5b60006141638482850161412a565b91505092915050565b60006040820190506141816000830185613ec0565b61418e6020830184613ec0565b9392505050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b60006141f1602383613b71565b91506141fc82614195565b604082019050919050565b60006020820190508181036000830152614220816141e4565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b600061425d601f83613b71565b915061426882614227565b602082019050919050565b6000602082019050818103600083015261428c81614250565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142cd82613c84565b91506142d883613c84565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561430d5761430c614293565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614374602683613b71565b915061437f82614318565b604082019050919050565b600060208201905081810360008301526143a381614367565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143e0601b83613b71565b91506143eb826143aa565b602082019050919050565b6000602082019050818103600083015261440f816143d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614472602483613b71565b915061447d82614416565b604082019050919050565b600060208201905081810360008301526144a181614465565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614504602283613b71565b915061450f826144a8565b604082019050919050565b60006020820190508181036000830152614533816144f7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614596602583613b71565b91506145a18261453a565b604082019050919050565b600060208201905081810360008301526145c581614589565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614628602383613b71565b9150614633826145cc565b604082019050919050565b600060208201905081810360008301526146578161461b565b9050919050565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b6000614694601f83613b71565b915061469f8261465e565b602082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614726602983613b71565b9150614731826146ca565b604082019050919050565b6000602082019050818103600083015261475581614719565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006147b8602883613b71565b91506147c38261475c565b604082019050919050565b600060208201905081810360008301526147e7816147ab565b9050919050565b60006147f982613c84565b915061480483613c84565b92508282101561481757614816614293565b5b828203905092915050565b600061482d82613c84565b915061483883613c84565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561487157614870614293565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006148b682613c84565b91506148c183613c84565b9250826148d1576148d061487c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614938602183613b71565b9150614943826148dc565b604082019050919050565b600060208201905081810360008301526149678161492b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006149f16149ec6149e7846149cc565b613d5a565b613c84565b9050919050565b614a01816149d6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a3c81613c46565b82525050565b6000614a4e8383614a33565b60208301905092915050565b6000602082019050919050565b6000614a7282614a07565b614a7c8185614a12565b9350614a8783614a23565b8060005b83811015614ab8578151614a9f8882614a42565b9750614aaa83614a5a565b925050600181019050614a8b565b5085935050505092915050565b600060a082019050614ada6000830188613d30565b614ae760208301876149f8565b8181036040830152614af98186614a67565b9050614b086060830185613ec0565b614b156080830184613d30565b9695505050505050565b6000604082019050614b346000830185613d30565b8181036020830152614b468184614a67565b90509392505050565b600060c082019050614b646000830189613ec0565b614b716020830188613d30565b614b7e60408301876149f8565b614b8b60608301866149f8565b614b986080830185613ec0565b614ba560a0830184613d30565b979650505050505050565b600081519050614bbf81613c8e565b92915050565b600080600060608486031215614bde57614bdd613c21565b5b6000614bec86828701614bb0565b9350506020614bfd86828701614bb0565b9250506040614c0e86828701614bb0565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220be1477f64fd1c6b9cb9052a5270d6ca6a8a4b6e9e89b16b1e76430224b6175d264736f6c634300080f0033
Deployed Bytecode Sourcemap
15086:12982:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18015:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19315:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15531:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15763:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16388:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18292:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20774:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22984:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20653:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16006:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21737:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18201:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18684:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15685:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21027:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19829:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16436:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16505:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16217:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22011:696;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15906:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21159:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6490:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15442:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18400:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6082:148;;;;;;;;;;;;;:::i;:::-;;15806:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15722:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5857:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15480:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18106:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19187:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20107:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21292:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18910:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21600:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6928:305;;;;;;;;;;;;;:::i;:::-;;22809:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15650:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15402:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21421:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16274:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16552:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6690:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18533:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20539:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19964:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20917:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6238:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16604:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16333:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18015:83;18052:13;18085:5;18078:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18015:83;:::o;19315:161::-;19390:4;19407:39;19416:12;:10;:12::i;:::-;19430:7;19439:6;19407:8;:39::i;:::-;19464:4;19457:11;;19315:161;;;;:::o;15531:46::-;;;;:::o;15763:28::-;;;;:::o;16388:41::-;;;;;;;;;;;;;:::o;18292:100::-;18345:7;18372:12;;18365:19;;18292:100;:::o;20774:135::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20895:6:::1;20865:19;:27;20885:6;20865:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20774:135:::0;;:::o;22984:313::-;23082:4;23099:36;23109:6;23117:9;23128:6;23099:9;:36::i;:::-;;23146:121;23155:6;23163:12;:10;:12::i;:::-;23177:89;23215:6;23177:89;;;;;;;;;;;;;;;;;:11;:19;23189:6;23177:19;;;;;;;;;;;;;;;:33;23197:12;:10;:12::i;:::-;23177:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;23146:8;:121::i;:::-;23285:4;23278:11;;22984:313;;;;;:::o;20653:113::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20750:8:::1;20731:16;;:27;;;;;;;;;;;;;;;;;;20653:113:::0;:::o;16006:81::-;;;:::o;21737:128::-;21790:7;21817:40;21834:22;21844:11;21834:9;:22::i;:::-;21817:12;;:16;;:40;;;;:::i;:::-;21810:47;;21737:128;:::o;18201:83::-;18242:5;18267:9;;;;;;;;;;;18260:16;;18201:83;:::o;18684:218::-;18772:4;18789:83;18798:12;:10;:12::i;:::-;18812:7;18821:50;18860:10;18821:11;:25;18833:12;:10;:12::i;:::-;18821:25;;;;;;;;;;;;;;;:34;18847:7;18821:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18789:8;:83::i;:::-;18890:4;18883:11;;18684:218;;;;:::o;15685:28::-;;;;:::o;21027:124::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21135:8:::1;21109:23;:34;;;;21027:124:::0;:::o;19829:127::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19940:8:::1;19915:13;:22;19929:7;19915:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19829:127:::0;;:::o;16436:28::-;;;;;;;;;;;;;:::o;16505:40::-;;;;;;;;;;;;;:::o;16217:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6592:90::-;6632:7;6659:15;6652:22;;6592:90;:::o;22011:696::-;22091:22;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22128:35:::1;22185:16;22128:74;;22251:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22233:53;;;22295:4;22302:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22233:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22216:110;;22368:1;22342:28;;:14;:28;;::::0;22339:225:::1;;22456:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22438:74;;;22521:4;22528:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22438:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22421:131;;22339:225;22592:14;22576:13;;:30;;;;;;;;;;;;;;;;;;22658:16;22640:15;;:34;;;;;;;;;;;;;;;;;;22115:592;22011:696:::0;;;:::o;15906:90::-;;;;;;;;;;;;;:::o;21159:125::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21265:10:::1;21239:15;;:37;;;;;;;;;;;;;;;;;;21159:125:::0;:::o;6490:90::-;6536:7;6563:9;;6556:16;;6490:90;:::o;15442:29::-;;;;:::o;18400:119::-;18466:7;18493:9;:18;18503:7;18493:18;;;;;;;;;;;;;;;;18486:25;;18400:119;;;:::o;6082:148::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6189:1:::1;6152:40;;6173:6;::::0;::::1;;;;;;;;6152:40;;;;;;;;;;;;6220:1;6203:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6082:148::o:0;15806:92::-;;;;;;;;;;;;;:::o;15722:29::-;;;;:::o;5857:79::-;5895:7;5922:6;;;;;;;;;;;5915:13;;5857:79;:::o;15480:43::-;;;;:::o;18106:87::-;18145:13;18178:7;18171:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18106:87;:::o;19187:120::-;19249:7;19276:23;;19269:30;;19187:120;:::o;20107:424::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20274:15:::1;20257:14;:32;;;;20313:15;20300:10;:28;;;;20352:13;20339:10;:26;;;;20388:17;20376:9;:29;;;;20430:46;20465:10;;20430:30;20449:10;;20430:14;;:18;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;20418:9;:58;;;;20499:24;20513:9;;20499;;:13;;:24;;;;:::i;:::-;20487:9;:36;;;;20107:424:::0;;;;:::o;21292:121::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21394:10:::1;21370:13;;:35;;;;;;;;;;;;;;;;;;21292:121:::0;:::o;18910:269::-;19003:4;19020:129;19029:12;:10;:12::i;:::-;19043:7;19052:96;19091:15;19052:96;;;;;;;;;;;;;;;;;:11;:25;19064:12;:10;:12::i;:::-;19052:25;;;;;;;;;;;;;;;:34;19078:7;19052:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19020:8;:129::i;:::-;19167:4;19160:11;;18910:269;;;;:::o;21600:125::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21709:8:::1;21681:25;;:36;;;;;;;;;;;;;;;;;;21600:125:::0;:::o;6928:305::-;6998:10;6980:28;;:14;;;;;;;;;;;:28;;;6972:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7085:9;;7067:15;:27;7059:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7176:14;;;;;;;;;;;7147:44;;7168:6;;;;;;;;;;7147:44;;;;;;;;;;;;7211:14;;;;;;;;;;;7202:6;;:23;;;;;;;;;;;;;;;;;;6928:305::o;22809:167::-;22887:4;22904:42;22914:12;:10;:12::i;:::-;22928:9;22939:6;22904:9;:42::i;:::-;;22964:4;22957:11;;22809:167;;;;:::o;15650:28::-;;;;:::o;15402:33::-;;;;:::o;21421:171::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21522:8:::1;21498:21;;:32;;;;;;;;;;;;;;;;;;21546:38;21575:8;21546:38;;;;;;:::i;:::-;;;;;;;;21421:171:::0;:::o;16274:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16552:45::-;;;;;;;;;;;;;:::o;6690:226::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6771:6:::1;::::0;::::1;;;;;;;;6754:14;;:23;;;;;;;;;;;;;;;;;;6805:1;6788:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6848:4;6830:15;:22;;;;:::i;:::-;6818:9;:34;;;;6905:1;6868:40;;6889:6;::::0;::::1;;;;;;;;6868:40;;;;;;;;;;;;6690:226:::0;:::o;18533:143::-;18614:7;18641:11;:18;18653:5;18641:18;;;;;;;;;;;;;;;:27;18660:7;18641:27;;;;;;;;;;;;;;;;18634:34;;18533:143;;;;:::o;20539:106::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20626:11:::1;20616:7;:21;;;;20539:106:::0;:::o;19964:135::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20083:8:::1;20054:17;:26;20072:7;20054:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19964:135:::0;;:::o;20917:102::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21003:8:::1;20989:10;:22;;;;20917:102:::0;:::o;6238:244::-;6001:12;:10;:12::i;:::-;5991:22;;:6;;;;;;;;;;:22;;;5983:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6347:1:::1;6327:22;;:8;:22;;::::0;6319:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6437:8;6408:38;;6429:6;::::0;::::1;;;;;;;;6408:38;;;;;;;;;;;;6466:8;6457:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6238:244:::0;:::o;16604:35::-;;;;;;;;;;;;;:::o;16333:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;1227:181::-;1285:7;1305:9;1321:1;1317;:5;;;;:::i;:::-;1305:17;;1346:1;1341;:6;;1333:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1399:1;1392:8;;;1227:181;;;;:::o;159:115::-;212:15;255:10;240:26;;159:115;:::o;19484:337::-;19594:1;19577:19;;:5;:19;;;19569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19675:1;19656:21;;:7;:21;;;19648:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19759:6;19729:11;:18;19741:5;19729:18;;;;;;;;;;;;;;;:27;19748:7;19729:27;;;;;;;;;;;;;;;:36;;;;19797:7;19781:32;;19790:5;19781:32;;;19806:6;19781:32;;;;;;:::i;:::-;;;;;;;;19484:337;;;:::o;23305:1879::-;23392:4;23437:1;23419:20;;:6;:20;;;23411:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23521:1;23500:23;;:9;:23;;;23492:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23583:13;:21;23597:6;23583:21;;;;;;;;;;;;;;;;;;;;;;;;;23582:22;:51;;;;;23609:13;:24;23623:9;23609:24;;;;;;;;;;;;;;;;;;;;;;;;;23608:25;23582:51;23574:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;23697:1;23688:6;:10;23680:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23768:16;;;;;;;;;;;23765:1412;;;23818:41;23833:6;23841:9;23852:6;23818:14;:41::i;:::-;23811:48;;;;23765:1412;23924:7;:5;:7::i;:::-;23914:17;;:6;:17;;;;:41;;;;;23948:7;:5;:7::i;:::-;23935:20;;:9;:20;;;;23914:41;23911:151;;;23994:7;;23984:6;:17;;23976:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23911:151;24090:28;24121:24;24139:4;24121:9;:24::i;:::-;24090:55;;24160:28;24215:23;;24191:20;:47;;24160:78;;24271:23;:44;;;;;24299:16;;;;;;;;;;;24298:17;24271:44;:71;;;;;24329:13;;;;;;;;;;;24319:23;;:6;:23;;;;24271:71;:96;;;;;24346:21;;;;;;;;;;;24271:96;24267:307;;;24405:25;;;;;;;;;;;24402:97;;;24476:23;;24453:46;;24402:97;24518:36;24533:20;24518:14;:36::i;:::-;24267:307;24610:53;24632:6;24610:53;;;;;;;;;;;;;;;;;:9;:17;24620:6;24610:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24590:9;:17;24600:6;24590:17;;;;;;;;;;;;;;;:73;;;;24680:19;24703:17;:25;24721:6;24703:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;24732:17;:28;24750:9;24732:28;;;;;;;;;;;;;;;;;;;;;;;;;24703:57;24702:148;;24816:34;24824:6;24832:9;24843:6;24816:7;:34::i;:::-;24702:148;;;24807:6;24702:148;24680:170;;24870:16;;;;;;;;;;;:51;;;;;24891:19;:30;24911:9;24891:30;;;;;;;;;;;;;;;;;;;;;;;;;24890:31;24870:51;24867:133;;;24989:10;;24948:37;24973:11;24948:20;24958:9;24948;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;24940:60;;;;;;24867:133;25040:37;25065:11;25040:9;:20;25050:9;25040:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25017:9;:20;25027:9;25017:20;;;;;;;;;;;;;;;:60;;;;25116:9;25099:40;;25108:6;25099:40;;;25127:11;25099:40;;;;;;:::i;:::-;;;;;;;;25161:4;25154:11;;;;;23305:1879;;;;;;:::o;1560:192::-;1646:7;1679:1;1674;:6;;1682:12;1666:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1706:9;1722:1;1718;:5;;;;:::i;:::-;1706:17;;1743:1;1736:8;;;1560:192;;;;;:::o;1416:136::-;1474:7;1501:43;1505:1;1508;1501:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1494:50;;1416:136;;;;:::o;25192:330::-;25285:4;25322:53;25344:6;25322:53;;;;;;;;;;;;;;;;;:9;:17;25332:6;25322:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25302:9;:17;25312:6;25302:17;;;;;;;;;;;;;;;:73;;;;25409:32;25434:6;25409:9;:20;25419:9;25409:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25386:9;:20;25396:9;25386:20;;;;;;;;;;;;;;;:55;;;;25474:9;25457:35;;25466:6;25457:35;;;25485:6;25457:35;;;;;;:::i;:::-;;;;;;;;25510:4;25503:11;;25192:330;;;;;:::o;25530:874::-;17081:4;17062:16;;:23;;;;;;;;;;;;;;;;;;25611:19:::1;25633:49;25680:1;25633:42;25660:14;;25633:22;25645:9;;25633:7;:11;;:22;;;;:::i;:::-;:26;;:42;;;;:::i;:::-;:46;;:49;;;;:::i;:::-;25611:71;;25693:21;25717:24;25729:11;25717:7;:11;;:24;;;;:::i;:::-;25693:48;;25754:31;25771:13;25754:16;:31::i;:::-;25796:22;25821:21;25796:46;;25855:19;25877:36;25891:21;25910:1;25891:14;;:18;;:21;;;;:::i;:::-;25877:9;;:13;;:36;;;;:::i;:::-;25855:58;;25934:26;25963:58;26019:1;25963:51;26002:11;25963:34;25982:14;;25963;:18;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;25934:87;;26032:24;26059:47;26094:11;26059:30;26078:10;;26059:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;26032:74;;26117:26;26146:60;26189:16;26146:38;26165:18;26146:14;:18;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;26117:89;;26219:57;26240:15;;;;;;;;;;;26257:18;26219:20;:57::i;:::-;26287:53;26308:13;;;;;;;;;;;26323:16;26287:20;:53::i;:::-;26351:45;26364:11;26377:18;26351:12;:45::i;:::-;25591:813;;;;;;;17127:5:::0;17108:16;;:24;;;;;;;;;;;;;;;;;;25530:874;:::o;27611:448::-;27697:7;27727:17;27760:13;;;;;;;;;;;27747:26;;:9;:26;;;:126;;27843:30;27869:3;27843:21;27854:9;;27843:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;27747:126;;;27776:30;27802:3;27776:21;27787:9;;27776:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;27747:126;27727:146;;27913:39;27942:9;27913;:24;27931:4;27913:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27886:9;:24;27904:4;27886:24;;;;;;;;;;;;;;;:66;;;;27993:4;27968:42;;27977:6;27968:42;;;28000:9;27968:42;;;;;;:::i;:::-;;;;;;;;28030:21;28041:9;28030:6;:10;;:21;;;;:::i;:::-;28023:28;;;27611:448;;;;;:::o;2018:132::-;2076:7;2103:39;2107:1;2110;2103:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2096:46;;2018:132;;;;:::o;1760:250::-;1818:7;1847:1;1842;:6;1838:47;;1872:1;1865:8;;;;1838:47;1897:9;1913:1;1909;:5;;;;:::i;:::-;1897:17;;1942:1;1937;1933;:5;;;;:::i;:::-;:10;1925:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2001:1;1994:8;;;1760:250;;;;;:::o;26416:666::-;26542:21;26580:1;26566:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26542:40;;26611:4;26593;26598:1;26593:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;26637:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26627:4;26632:1;26627:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;26672:62;26689:4;26704:15;;;;;;;;;;;26722:11;26672:8;:62::i;:::-;26773:15;;;;;;;;;;;:66;;;26854:11;26880:1;26924:4;26951;26987:15;26773:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27039:35;27056:11;27069:4;27039:35;;;;;;;:::i;:::-;;;;;;;;26471:611;26416:666;:::o;21873:126::-;21965:9;:18;;:26;21984:6;21965:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21873:126;;:::o;27090:513::-;27238:62;27255:4;27270:15;;;;;;;;;;;27288:11;27238:8;:62::i;:::-;27343:15;;;;;;;;;;;:31;;;27382:9;27415:4;27435:11;27461:1;27504;27547:7;:5;:7::i;:::-;27569:15;27343:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27090:513;;:::o;2158:278::-;2244:7;2276:1;2272;:5;2279:12;2264:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2303:9;2319:1;2315;:5;;;;:::i;:::-;2303:17;;2427:1;2420:8;;;2158:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:60::-;3874:3;3895:5;3888:12;;3846:60;;;:::o;3912:142::-;3962:9;3995:53;4013:34;4022:24;4040:5;4022:24;:::i;:::-;4013:34;:::i;:::-;3995:53;:::i;:::-;3982:66;;3912:142;;;:::o;4060:126::-;4110:9;4143:37;4174:5;4143:37;:::i;:::-;4130:50;;4060:126;;;:::o;4192:153::-;4269:9;4302:37;4333:5;4302:37;:::i;:::-;4289:50;;4192:153;;;:::o;4351:185::-;4465:64;4523:5;4465:64;:::i;:::-;4460:3;4453:77;4351:185;;:::o;4542:276::-;4662:4;4700:2;4689:9;4685:18;4677:26;;4713:98;4808:1;4797:9;4793:17;4784:6;4713:98;:::i;:::-;4542:276;;;;:::o;4824:116::-;4894:21;4909:5;4894:21;:::i;:::-;4887:5;4884:32;4874:60;;4930:1;4927;4920:12;4874:60;4824:116;:::o;4946:133::-;4989:5;5027:6;5014:20;5005:29;;5043:30;5067:5;5043:30;:::i;:::-;4946:133;;;;:::o;5085:468::-;5150:6;5158;5207:2;5195:9;5186:7;5182:23;5178:32;5175:119;;;5213:79;;:::i;:::-;5175:119;5333:1;5358:53;5403:7;5394:6;5383:9;5379:22;5358:53;:::i;:::-;5348:63;;5304:117;5460:2;5486:50;5528:7;5519:6;5508:9;5504:22;5486:50;:::i;:::-;5476:60;;5431:115;5085:468;;;;;:::o;5559:619::-;5636:6;5644;5652;5701:2;5689:9;5680:7;5676:23;5672:32;5669:119;;;5707:79;;:::i;:::-;5669:119;5827:1;5852:53;5897:7;5888:6;5877:9;5873:22;5852:53;:::i;:::-;5842:63;;5798:117;5954:2;5980:53;6025:7;6016:6;6005:9;6001:22;5980:53;:::i;:::-;5970:63;;5925:118;6082:2;6108:53;6153:7;6144:6;6133:9;6129:22;6108:53;:::i;:::-;6098:63;;6053:118;5559:619;;;;;:::o;6184:323::-;6240:6;6289:2;6277:9;6268:7;6264:23;6260:32;6257:119;;;6295:79;;:::i;:::-;6257:119;6415:1;6440:50;6482:7;6473:6;6462:9;6458:22;6440:50;:::i;:::-;6430:60;;6386:114;6184:323;;;;:::o;6513:118::-;6600:24;6618:5;6600:24;:::i;:::-;6595:3;6588:37;6513:118;;:::o;6637:222::-;6730:4;6768:2;6757:9;6753:18;6745:26;;6781:71;6849:1;6838:9;6834:17;6825:6;6781:71;:::i;:::-;6637:222;;;;:::o;6865:86::-;6900:7;6940:4;6933:5;6929:16;6918:27;;6865:86;;;:::o;6957:112::-;7040:22;7056:5;7040:22;:::i;:::-;7035:3;7028:35;6957:112;;:::o;7075:214::-;7164:4;7202:2;7191:9;7187:18;7179:26;;7215:67;7279:1;7268:9;7264:17;7255:6;7215:67;:::i;:::-;7075:214;;;;:::o;7295:329::-;7354:6;7403:2;7391:9;7382:7;7378:23;7374:32;7371:119;;;7409:79;;:::i;:::-;7371:119;7529:1;7554:53;7599:7;7590:6;7579:9;7575:22;7554:53;:::i;:::-;7544:63;;7500:117;7295:329;;;;:::o;7630:::-;7689:6;7738:2;7726:9;7717:7;7713:23;7709:32;7706:119;;;7744:79;;:::i;:::-;7706:119;7864:1;7889:53;7934:7;7925:6;7914:9;7910:22;7889:53;:::i;:::-;7879:63;;7835:117;7630:329;;;;:::o;7965:104::-;8010:7;8039:24;8057:5;8039:24;:::i;:::-;8028:35;;7965:104;;;:::o;8075:142::-;8178:32;8204:5;8178:32;:::i;:::-;8173:3;8166:45;8075:142;;:::o;8223:254::-;8332:4;8370:2;8359:9;8355:18;8347:26;;8383:87;8467:1;8456:9;8452:17;8443:6;8383:87;:::i;:::-;8223:254;;;;:::o;8483:765::-;8569:6;8577;8585;8593;8642:3;8630:9;8621:7;8617:23;8613:33;8610:120;;;8649:79;;:::i;:::-;8610:120;8769:1;8794:53;8839:7;8830:6;8819:9;8815:22;8794:53;:::i;:::-;8784:63;;8740:117;8896:2;8922:53;8967:7;8958:6;8947:9;8943:22;8922:53;:::i;:::-;8912:63;;8867:118;9024:2;9050:53;9095:7;9086:6;9075:9;9071:22;9050:53;:::i;:::-;9040:63;;8995:118;9152:2;9178:53;9223:7;9214:6;9203:9;9199:22;9178:53;:::i;:::-;9168:63;;9123:118;8483:765;;;;;;;:::o;9254:474::-;9322:6;9330;9379:2;9367:9;9358:7;9354:23;9350:32;9347:119;;;9385:79;;:::i;:::-;9347:119;9505:1;9530:53;9575:7;9566:6;9555:9;9551:22;9530:53;:::i;:::-;9520:63;;9476:117;9632:2;9658:53;9703:7;9694:6;9683:9;9679:22;9658:53;:::i;:::-;9648:63;;9603:118;9254:474;;;;;:::o;9734:180::-;9782:77;9779:1;9772:88;9879:4;9876:1;9869:15;9903:4;9900:1;9893:15;9920:320;9964:6;10001:1;9995:4;9991:12;9981:22;;10048:1;10042:4;10038:12;10069:18;10059:81;;10125:4;10117:6;10113:17;10103:27;;10059:81;10187:2;10179:6;10176:14;10156:18;10153:38;10150:84;;10206:18;;:::i;:::-;10150:84;9971:269;9920:320;;;:::o;10246:182::-;10386:34;10382:1;10374:6;10370:14;10363:58;10246:182;:::o;10434:366::-;10576:3;10597:67;10661:2;10656:3;10597:67;:::i;:::-;10590:74;;10673:93;10762:3;10673:93;:::i;:::-;10791:2;10786:3;10782:12;10775:19;;10434:366;;;:::o;10806:419::-;10972:4;11010:2;10999:9;10995:18;10987:26;;11059:9;11053:4;11049:20;11045:1;11034:9;11030:17;11023:47;11087:131;11213:4;11087:131;:::i;:::-;11079:139;;10806:419;;;:::o;11231:143::-;11288:5;11319:6;11313:13;11304:22;;11335:33;11362:5;11335:33;:::i;:::-;11231:143;;;;:::o;11380:351::-;11450:6;11499:2;11487:9;11478:7;11474:23;11470:32;11467:119;;;11505:79;;:::i;:::-;11467:119;11625:1;11650:64;11706:7;11697:6;11686:9;11682:22;11650:64;:::i;:::-;11640:74;;11596:128;11380:351;;;;:::o;11737:332::-;11858:4;11896:2;11885:9;11881:18;11873:26;;11909:71;11977:1;11966:9;11962:17;11953:6;11909:71;:::i;:::-;11990:72;12058:2;12047:9;12043:18;12034:6;11990:72;:::i;:::-;11737:332;;;;;:::o;12075:222::-;12215:34;12211:1;12203:6;12199:14;12192:58;12284:5;12279:2;12271:6;12267:15;12260:30;12075:222;:::o;12303:366::-;12445:3;12466:67;12530:2;12525:3;12466:67;:::i;:::-;12459:74;;12542:93;12631:3;12542:93;:::i;:::-;12660:2;12655:3;12651:12;12644:19;;12303:366;;;:::o;12675:419::-;12841:4;12879:2;12868:9;12864:18;12856:26;;12928:9;12922:4;12918:20;12914:1;12903:9;12899:17;12892:47;12956:131;13082:4;12956:131;:::i;:::-;12948:139;;12675:419;;;:::o;13100:181::-;13240:33;13236:1;13228:6;13224:14;13217:57;13100:181;:::o;13287:366::-;13429:3;13450:67;13514:2;13509:3;13450:67;:::i;:::-;13443:74;;13526:93;13615:3;13526:93;:::i;:::-;13644:2;13639:3;13635:12;13628:19;;13287:366;;;:::o;13659:419::-;13825:4;13863:2;13852:9;13848:18;13840:26;;13912:9;13906:4;13902:20;13898:1;13887:9;13883:17;13876:47;13940:131;14066:4;13940:131;:::i;:::-;13932:139;;13659:419;;;:::o;14084:180::-;14132:77;14129:1;14122:88;14229:4;14226:1;14219:15;14253:4;14250:1;14243:15;14270:305;14310:3;14329:20;14347:1;14329:20;:::i;:::-;14324:25;;14363:20;14381:1;14363:20;:::i;:::-;14358:25;;14517:1;14449:66;14445:74;14442:1;14439:81;14436:107;;;14523:18;;:::i;:::-;14436:107;14567:1;14564;14560:9;14553:16;;14270:305;;;;:::o;14581:225::-;14721:34;14717:1;14709:6;14705:14;14698:58;14790:8;14785:2;14777:6;14773:15;14766:33;14581:225;:::o;14812:366::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:419::-;15350:4;15388:2;15377:9;15373:18;15365:26;;15437:9;15431:4;15427:20;15423:1;15412:9;15408:17;15401:47;15465:131;15591:4;15465:131;:::i;:::-;15457:139;;15184:419;;;:::o;15609:177::-;15749:29;15745:1;15737:6;15733:14;15726:53;15609:177;:::o;15792:366::-;15934:3;15955:67;16019:2;16014:3;15955:67;:::i;:::-;15948:74;;16031:93;16120:3;16031:93;:::i;:::-;16149:2;16144:3;16140:12;16133:19;;15792:366;;;:::o;16164:419::-;16330:4;16368:2;16357:9;16353:18;16345:26;;16417:9;16411:4;16407:20;16403:1;16392:9;16388:17;16381:47;16445:131;16571:4;16445:131;:::i;:::-;16437:139;;16164:419;;;:::o;16589:223::-;16729:34;16725:1;16717:6;16713:14;16706:58;16798:6;16793:2;16785:6;16781:15;16774:31;16589:223;:::o;16818:366::-;16960:3;16981:67;17045:2;17040:3;16981:67;:::i;:::-;16974:74;;17057:93;17146:3;17057:93;:::i;:::-;17175:2;17170:3;17166:12;17159:19;;16818:366;;;:::o;17190:419::-;17356:4;17394:2;17383:9;17379:18;17371:26;;17443:9;17437:4;17433:20;17429:1;17418:9;17414:17;17407:47;17471:131;17597:4;17471:131;:::i;:::-;17463:139;;17190:419;;;:::o;17615:221::-;17755:34;17751:1;17743:6;17739:14;17732:58;17824:4;17819:2;17811:6;17807:15;17800:29;17615:221;:::o;17842:366::-;17984:3;18005:67;18069:2;18064:3;18005:67;:::i;:::-;17998:74;;18081:93;18170:3;18081:93;:::i;:::-;18199:2;18194:3;18190:12;18183:19;;17842:366;;;:::o;18214:419::-;18380:4;18418:2;18407:9;18403:18;18395:26;;18467:9;18461:4;18457:20;18453:1;18442:9;18438:17;18431:47;18495:131;18621:4;18495:131;:::i;:::-;18487:139;;18214:419;;;:::o;18639:224::-;18779:34;18775:1;18767:6;18763:14;18756:58;18848:7;18843:2;18835:6;18831:15;18824:32;18639:224;:::o;18869:366::-;19011:3;19032:67;19096:2;19091:3;19032:67;:::i;:::-;19025:74;;19108:93;19197:3;19108:93;:::i;:::-;19226:2;19221:3;19217:12;19210:19;;18869:366;;;:::o;19241:419::-;19407:4;19445:2;19434:9;19430:18;19422:26;;19494:9;19488:4;19484:20;19480:1;19469:9;19465:17;19458:47;19522:131;19648:4;19522:131;:::i;:::-;19514:139;;19241:419;;;:::o;19666:222::-;19806:34;19802:1;19794:6;19790:14;19783:58;19875:5;19870:2;19862:6;19858:15;19851:30;19666:222;:::o;19894:366::-;20036:3;20057:67;20121:2;20116:3;20057:67;:::i;:::-;20050:74;;20133:93;20222:3;20133:93;:::i;:::-;20251:2;20246:3;20242:12;20235:19;;19894:366;;;:::o;20266:419::-;20432:4;20470:2;20459:9;20455:18;20447:26;;20519:9;20513:4;20509:20;20505:1;20494:9;20490:17;20483:47;20547:131;20673:4;20547:131;:::i;:::-;20539:139;;20266:419;;;:::o;20691:181::-;20831:33;20827:1;20819:6;20815:14;20808:57;20691:181;:::o;20878:366::-;21020:3;21041:67;21105:2;21100:3;21041:67;:::i;:::-;21034:74;;21117:93;21206:3;21117:93;:::i;:::-;21235:2;21230:3;21226:12;21219:19;;20878:366;;;:::o;21250:419::-;21416:4;21454:2;21443:9;21439:18;21431:26;;21503:9;21497:4;21493:20;21489:1;21478:9;21474:17;21467:47;21531:131;21657:4;21531:131;:::i;:::-;21523:139;;21250:419;;;:::o;21675:228::-;21815:34;21811:1;21803:6;21799:14;21792:58;21884:11;21879:2;21871:6;21867:15;21860:36;21675:228;:::o;21909:366::-;22051:3;22072:67;22136:2;22131:3;22072:67;:::i;:::-;22065:74;;22148:93;22237:3;22148:93;:::i;:::-;22266:2;22261:3;22257:12;22250:19;;21909:366;;;:::o;22281:419::-;22447:4;22485:2;22474:9;22470:18;22462:26;;22534:9;22528:4;22524:20;22520:1;22509:9;22505:17;22498:47;22562:131;22688:4;22562:131;:::i;:::-;22554:139;;22281:419;;;:::o;22706:227::-;22846:34;22842:1;22834:6;22830:14;22823:58;22915:10;22910:2;22902:6;22898:15;22891:35;22706:227;:::o;22939:366::-;23081:3;23102:67;23166:2;23161:3;23102:67;:::i;:::-;23095:74;;23178:93;23267:3;23178:93;:::i;:::-;23296:2;23291:3;23287:12;23280:19;;22939:366;;;:::o;23311:419::-;23477:4;23515:2;23504:9;23500:18;23492:26;;23564:9;23558:4;23554:20;23550:1;23539:9;23535:17;23528:47;23592:131;23718:4;23592:131;:::i;:::-;23584:139;;23311:419;;;:::o;23736:191::-;23776:4;23796:20;23814:1;23796:20;:::i;:::-;23791:25;;23830:20;23848:1;23830:20;:::i;:::-;23825:25;;23869:1;23866;23863:8;23860:34;;;23874:18;;:::i;:::-;23860:34;23919:1;23916;23912:9;23904:17;;23736:191;;;;:::o;23933:348::-;23973:7;23996:20;24014:1;23996:20;:::i;:::-;23991:25;;24030:20;24048:1;24030:20;:::i;:::-;24025:25;;24218:1;24150:66;24146:74;24143:1;24140:81;24135:1;24128:9;24121:17;24117:105;24114:131;;;24225:18;;:::i;:::-;24114:131;24273:1;24270;24266:9;24255:20;;23933:348;;;;:::o;24287:180::-;24335:77;24332:1;24325:88;24432:4;24429:1;24422:15;24456:4;24453:1;24446:15;24473:185;24513:1;24530:20;24548:1;24530:20;:::i;:::-;24525:25;;24564:20;24582:1;24564:20;:::i;:::-;24559:25;;24603:1;24593:35;;24608:18;;:::i;:::-;24593:35;24650:1;24647;24643:9;24638:14;;24473:185;;;;:::o;24664:220::-;24804:34;24800:1;24792:6;24788:14;24781:58;24873:3;24868:2;24860:6;24856:15;24849:28;24664:220;:::o;24890:366::-;25032:3;25053:67;25117:2;25112:3;25053:67;:::i;:::-;25046:74;;25129:93;25218:3;25129:93;:::i;:::-;25247:2;25242:3;25238:12;25231:19;;24890:366;;;:::o;25262:419::-;25428:4;25466:2;25455:9;25451:18;25443:26;;25515:9;25509:4;25505:20;25501:1;25490:9;25486:17;25479:47;25543:131;25669:4;25543:131;:::i;:::-;25535:139;;25262:419;;;:::o;25687:180::-;25735:77;25732:1;25725:88;25832:4;25829:1;25822:15;25856:4;25853:1;25846:15;25873:180;25921:77;25918:1;25911:88;26018:4;26015:1;26008:15;26042:4;26039:1;26032:15;26059:85;26104:7;26133:5;26122:16;;26059:85;;;:::o;26150:158::-;26208:9;26241:61;26259:42;26268:32;26294:5;26268:32;:::i;:::-;26259:42;:::i;:::-;26241:61;:::i;:::-;26228:74;;26150:158;;;:::o;26314:147::-;26409:45;26448:5;26409:45;:::i;:::-;26404:3;26397:58;26314:147;;:::o;26467:114::-;26534:6;26568:5;26562:12;26552:22;;26467:114;;;:::o;26587:184::-;26686:11;26720:6;26715:3;26708:19;26760:4;26755:3;26751:14;26736:29;;26587:184;;;;:::o;26777:132::-;26844:4;26867:3;26859:11;;26897:4;26892:3;26888:14;26880:22;;26777:132;;;:::o;26915:108::-;26992:24;27010:5;26992:24;:::i;:::-;26987:3;26980:37;26915:108;;:::o;27029:179::-;27098:10;27119:46;27161:3;27153:6;27119:46;:::i;:::-;27197:4;27192:3;27188:14;27174:28;;27029:179;;;;:::o;27214:113::-;27284:4;27316;27311:3;27307:14;27299:22;;27214:113;;;:::o;27363:732::-;27482:3;27511:54;27559:5;27511:54;:::i;:::-;27581:86;27660:6;27655:3;27581:86;:::i;:::-;27574:93;;27691:56;27741:5;27691:56;:::i;:::-;27770:7;27801:1;27786:284;27811:6;27808:1;27805:13;27786:284;;;27887:6;27881:13;27914:63;27973:3;27958:13;27914:63;:::i;:::-;27907:70;;28000:60;28053:6;28000:60;:::i;:::-;27990:70;;27846:224;27833:1;27830;27826:9;27821:14;;27786:284;;;27790:14;28086:3;28079:10;;27487:608;;;27363:732;;;;:::o;28101:831::-;28364:4;28402:3;28391:9;28387:19;28379:27;;28416:71;28484:1;28473:9;28469:17;28460:6;28416:71;:::i;:::-;28497:80;28573:2;28562:9;28558:18;28549:6;28497:80;:::i;:::-;28624:9;28618:4;28614:20;28609:2;28598:9;28594:18;28587:48;28652:108;28755:4;28746:6;28652:108;:::i;:::-;28644:116;;28770:72;28838:2;28827:9;28823:18;28814:6;28770:72;:::i;:::-;28852:73;28920:3;28909:9;28905:19;28896:6;28852:73;:::i;:::-;28101:831;;;;;;;;:::o;28938:483::-;29109:4;29147:2;29136:9;29132:18;29124:26;;29160:71;29228:1;29217:9;29213:17;29204:6;29160:71;:::i;:::-;29278:9;29272:4;29268:20;29263:2;29252:9;29248:18;29241:48;29306:108;29409:4;29400:6;29306:108;:::i;:::-;29298:116;;28938:483;;;;;:::o;29427:807::-;29676:4;29714:3;29703:9;29699:19;29691:27;;29728:71;29796:1;29785:9;29781:17;29772:6;29728:71;:::i;:::-;29809:72;29877:2;29866:9;29862:18;29853:6;29809:72;:::i;:::-;29891:80;29967:2;29956:9;29952:18;29943:6;29891:80;:::i;:::-;29981;30057:2;30046:9;30042:18;30033:6;29981:80;:::i;:::-;30071:73;30139:3;30128:9;30124:19;30115:6;30071:73;:::i;:::-;30154;30222:3;30211:9;30207:19;30198:6;30154:73;:::i;:::-;29427:807;;;;;;;;;:::o;30240:143::-;30297:5;30328:6;30322:13;30313:22;;30344:33;30371:5;30344:33;:::i;:::-;30240:143;;;;:::o;30389:663::-;30477:6;30485;30493;30542:2;30530:9;30521:7;30517:23;30513:32;30510:119;;;30548:79;;:::i;:::-;30510:119;30668:1;30693:64;30749:7;30740:6;30729:9;30725:22;30693:64;:::i;:::-;30683:74;;30639:128;30806:2;30832:64;30888:7;30879:6;30868:9;30864:22;30832:64;:::i;:::-;30822:74;;30777:129;30945:2;30971:64;31027:7;31018:6;31007:9;31003:22;30971:64;:::i;:::-;30961:74;;30916:129;30389:663;;;;;:::o
Swarm Source
ipfs://be1477f64fd1c6b9cb9052a5270d6ca6a8a4b6e9e89b16b1e76430224b6175d2
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.