Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 128 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17072065 | 620 days ago | IN | 0 ETH | 0.00174711 | ||||
Approve | 17015061 | 628 days ago | IN | 0 ETH | 0.00102848 | ||||
Approve | 17009894 | 629 days ago | IN | 0 ETH | 0.00101864 | ||||
Transfer | 17009863 | 629 days ago | IN | 0 ETH | 0.00123427 | ||||
Approve | 17008625 | 629 days ago | IN | 0 ETH | 0.00092207 | ||||
Approve | 17008608 | 629 days ago | IN | 0 ETH | 0.00091528 | ||||
Approve | 17006850 | 629 days ago | IN | 0 ETH | 0.00082972 | ||||
Transfer | 17004021 | 630 days ago | IN | 0 ETH | 0.00134992 | ||||
Approve | 17004014 | 630 days ago | IN | 0 ETH | 0.00100503 | ||||
Approve | 17003311 | 630 days ago | IN | 0 ETH | 0.00092419 | ||||
Approve | 16997700 | 631 days ago | IN | 0 ETH | 0.00134503 | ||||
Approve | 16996184 | 631 days ago | IN | 0 ETH | 0.00142747 | ||||
Approve | 16996171 | 631 days ago | IN | 0 ETH | 0.000861 | ||||
Approve | 16995420 | 631 days ago | IN | 0 ETH | 0.00063612 | ||||
Approve | 16995400 | 631 days ago | IN | 0 ETH | 0.00098875 | ||||
Transfer | 16994958 | 631 days ago | IN | 0 ETH | 0.00153306 | ||||
Transfer | 16994188 | 631 days ago | IN | 0 ETH | 0.00135343 | ||||
Approve | 16989542 | 632 days ago | IN | 0 ETH | 0.00117102 | ||||
Approve | 16989142 | 632 days ago | IN | 0 ETH | 0.0011146 | ||||
Approve | 16987412 | 632 days ago | IN | 0 ETH | 0.00125394 | ||||
Approve | 16982198 | 633 days ago | IN | 0 ETH | 0.00126723 | ||||
Approve | 16981684 | 633 days ago | IN | 0 ETH | 0.00139103 | ||||
Approve | 16981615 | 633 days ago | IN | 0 ETH | 0.00138235 | ||||
Approve | 16978768 | 633 days ago | IN | 0 ETH | 0.00132269 | ||||
Approve | 16976098 | 634 days ago | IN | 0 ETH | 0.00153148 |
Latest 12 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16999916 | 630 days ago | 0.00443313 ETH | ||||
16999916 | 630 days ago | 0.0132994 ETH | ||||
16999916 | 630 days ago | 0.01773254 ETH | ||||
16981619 | 633 days ago | 0.00947324 ETH | ||||
16981619 | 633 days ago | 0.02841972 ETH | ||||
16981619 | 633 days ago | 0.03789296 ETH | ||||
16963993 | 636 days ago | 0.02431369 ETH | ||||
16963993 | 636 days ago | 0.07294108 ETH | ||||
16963993 | 636 days ago | 0.09725477 ETH | ||||
16957102 | 637 days ago | 0.03393081 ETH | ||||
16957102 | 637 days ago | 0.10179245 ETH | ||||
16957102 | 637 days ago | 0.13572327 ETH |
Loading...
Loading
Contract Name:
EasterShib
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-01 */ /** * */ /*https://eastershib.com/ https://t.me/EasterShibPortal Our dream and vision are more than just a simple coin. It’s a community and ecosystem. A project bigger than anyone of us. They say it takes a village and a village we will create. A community like no other. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract EasterShib is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "EasterShib"; string private _symbol = "E-Shib"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0x9A31806C4899a3Dc6aAcfeb763Ce48BA63fDd512); address payable public DeveloperWallet = payable(0x4aee2542c1354a5D2D5a9F45cd9e9C66cE8aa54F); address public liquidityReciever; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 3; uint256 public _buyDeveloperFee = 1; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 3; uint256 public _sellDeveloperFee = 1; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100); //0.001% uint256 public _maxTxAmount = _totalSupply.mul(100).div(100); //100% uint256 public _walletMax = _totalSupply.mul(100).div(100); //100% IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); isMarketPair[address(uniswapPair)] = true; liquidityReciever = address(msg.sender); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setLiquidityWalletAddress(address newAddress) external onlyOwner() { liquidityReciever = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress)); } function setBlacklist(address _adr, bool _status) external onlyOwner { blacklist[_adr] = _status; } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee); uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2); uint256 tokenForSwap = tAmount.sub(tokenForLp); uint256 initialBalance = address(this).balance; swapTokensForEth(tokenForSwap); uint256 recievedBalance = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(liquidityShare.div(2)); uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee); uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) { payable(marketingWallet).transfer(amountETHMarketing); } if(amountETHDeveloper > 0) { payable(DeveloperWallet).transfer(amountETHDeveloper); } if(amountETHLiquidity > 0 && tokenForLp > 0) { addLiquidity(tokenForLp, amountETHLiquidity); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liquidityReciever, block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setLiquidityWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526040518060400160405280600a81526020017f4561737465725368696200000000000000000000000000000000000000000000815250600190805190602001906200005192919062001043565b506040518060400160405280600681526020017f452d536869620000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001043565b506012600360006101000a81548160ff021916908360ff160217905550739a31806c4899a3dc6aacfeb763ce48ba63fdd512600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734aee2542c1354a5d2d5a9f45cd9e9c66ce8aa54f600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506000600d556003600e556001600f55600060105560036011556001601255600360009054906101000a900460ff16600a620002119190620013a5565b620f4240620002219190620014e2565b6015556200025b606462000247600160155462000e7160201b620033441790919060201c565b62000ef560201b620033bf1790919060201c565b60165562000295606462000281606460155462000e7160201b620033441790919060201c565b62000ef560201b620033bf1790919060201c565b601755620002cf6064620002bb606460155462000e7160201b620033441790919060201c565b62000ef560201b620033bf1790919060201c565b6018556001601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff0219169083151502179055503480156200034b57600080fd5b5060006200035e62000f4760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045c57600080fd5b505afa15801562000471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049791906200110a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004fa57600080fd5b505afa1580156200050f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053591906200110a565b6040518363ffffffff1660e01b815260040162000554929190620011e7565b602060405180830381600087803b1580156200056f57600080fd5b505af115801562000584573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005aa91906200110a565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620006e662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200089962000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600062000ac662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c9c600f5462000c88600e54600d5462000f7860201b620034091790919060201c565b62000f7860201b620034091790919060201c565b60138190555062000cdb60125462000cc760115460105462000f7860201b620034091790919060201c565b62000f7860201b620034091790919060201c565b601481905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506015546006600062000db362000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e0162000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60155460405162000e6291906200127c565b60405180910390a35062001737565b60008083141562000e86576000905062000eef565b6000828462000e969190620014e2565b905082848262000ea7919062001312565b1462000eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ee1906200125a565b60405180910390fd5b809150505b92915050565b600062000f3f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fdb60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000f899190620012b5565b90508381101562000fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fc89062001238565b60405180910390fd5b8091505092915050565b6000808311829062001025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200101c919062001214565b60405180910390fd5b506000838562001036919062001312565b9050809150509392505050565b8280546200105190620015c4565b90600052602060002090601f016020900481019282620010755760008555620010c1565b82601f106200109057805160ff1916838001178555620010c1565b82800160010185558215620010c1579182015b82811115620010c0578251825591602001919060010190620010a3565b5b509050620010d09190620010d4565b5090565b5b80821115620010ef576000816000905550600101620010d5565b5090565b60008151905062001104816200171d565b92915050565b6000602082840312156200111d57600080fd5b60006200112d84828501620010f3565b91505092915050565b620011418162001543565b82525050565b6000620011548262001299565b620011608185620012a4565b9350620011728185602086016200158e565b6200117d8162001687565b840191505092915050565b600062001197601b83620012a4565b9150620011a482620016a5565b602082019050919050565b6000620011be602183620012a4565b9150620011cb82620016ce565b604082019050919050565b620011e18162001577565b82525050565b6000604082019050620011fe600083018562001136565b6200120d602083018462001136565b9392505050565b6000602082019050818103600083015262001230818462001147565b905092915050565b60006020820190508181036000830152620012538162001188565b9050919050565b600060208201905081810360008301526200127581620011af565b9050919050565b6000602082019050620012936000830184620011d6565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620012c28262001577565b9150620012cf8362001577565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013075762001306620015fa565b5b828201905092915050565b60006200131f8262001577565b91506200132c8362001577565b9250826200133f576200133e62001629565b5b828204905092915050565b6000808291508390505b60018511156200139c57808604811115620013745762001373620015fa565b5b6001851615620013845780820291505b8081029050620013948562001698565b945062001354565b94509492505050565b6000620013b28262001577565b9150620013bf8362001581565b9250620013ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013f6565b905092915050565b600082620014085760019050620014db565b81620014185760009050620014db565b81600181146200143157600281146200143c5762001472565b6001915050620014db565b60ff841115620014515762001450620015fa565b5b8360020a9150848211156200146b576200146a620015fa565b5b50620014db565b5060208310610133831016604e8410600b8410161715620014ac5782820a905083811115620014a657620014a5620015fa565b5b620014db565b620014bb84848460016200134a565b92509050818404811115620014d557620014d4620015fa565b5b81810290505b9392505050565b6000620014ef8262001577565b9150620014fc8362001577565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620015385762001537620015fa565b5b828202905092915050565b6000620015508262001557565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620015ae57808201518184015260208101905062001591565b83811115620015be576000848401525b50505050565b60006002820490506001821680620015dd57607f821691505b60208210811415620015f457620015f362001658565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620017288162001543565b81146200173457600080fd5b50565b60805160601c60a05160601c615b5c620017716000396000818161106b015261155b01526000818161152f01526115870152615b5c6000f3fe6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea919061516c565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614c89565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e919061504d565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614b5d565b61108d565b60405161047b9190615136565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190614b21565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf9190615151565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa919061532e565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614c89565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e9190614b21565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b604051610577919061532e565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190614ad2565b6113a1565b6040516105b49190615136565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614c0e565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b604051610608919061504d565b60405180910390f35b34801561061d57600080fd5b50610626611551565b604051610633919061532e565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906153d3565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614b5d565b6115e6565b60405161069b9190615136565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614c60565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614a44565b611738565b6040516107019190615136565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615136565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614a44565b61176b565b005b34801561076a57600080fd5b50610773611844565b604051610780919061532e565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614a44565b61184a565b6040516107bd9190615136565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614a44565b61186a565b6040516107fa919061504d565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614b99565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614a44565b61220d565b604051610860919061532e565b60405180910390f35b34801561087557600080fd5b5061087e612256565b005b34801561088c57600080fd5b506108956123ab565b6040516108a29190615068565b60405180910390f35b3480156108b757600080fd5b506108c06123d1565b6040516108cd919061532e565b60405180910390f35b3480156108e257600080fd5b506108eb6123d7565b6040516108f8919061532e565b60405180910390f35b34801561090d57600080fd5b506109166123dd565b604051610923919061532e565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e9190614b21565b6123e3565b005b34801561096157600080fd5b5061096a6124d3565b6040516109779190615136565b60405180910390f35b34801561098c57600080fd5b506109956124e6565b6040516109a2919061532e565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614a44565b6124ec565b6040516109df9190615136565b60405180910390f35b3480156109f457600080fd5b506109fd61250c565b604051610a0a919061504d565b60405180910390f35b348015610a1f57600080fd5b50610a28612535565b604051610a35919061516c565b60405180910390f35b348015610a4a57600080fd5b50610a536125c7565b604051610a60919061504d565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614b5d565b6125ed565b604051610a9d9190615136565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614c0e565b6126ba565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614b5d565b61276c565b604051610b039190615136565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614c0e565b61278b565b005b348015610b4157600080fd5b50610b4a612874565b604051610b57919061532e565b60405180910390f35b348015610b6c57600080fd5b50610b7561287a565b604051610b82919061504d565b60405180910390f35b348015610b9757600080fd5b50610ba06128a0565b604051610bad919061532e565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614a44565b6128a6565b604051610bea9190615136565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614a44565b6128c6565b005b348015610c2857600080fd5b50610c3161299f565b604051610c3e919061532e565b60405180910390f35b348015610c5357600080fd5b50610c5c6129a5565b604051610c699190615136565b60405180910390f35b348015610c7e57600080fd5b50610c876129b8565b604051610c94919061532e565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614a96565b6129be565b604051610cd1919061532e565b60405180910390f35b348015610ce657600080fd5b50610cef612a45565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614c60565b612b53565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614c0e565b612bf2565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d659190614b21565b612ca4565b005b348015610d7857600080fd5b50610d81612d94565b604051610d8e919061532e565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614c60565b612d9a565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614a44565b612e39565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614b5d565b612ffb565b005b348015610e1e57600080fd5b50610e396004803603810190610e349190614b21565b613122565b005b348015610e4757600080fd5b50610e50613212565b604051610e5d9190615136565b60405180910390f35b348015610e7257600080fd5b50610e7b613225565b604051610e889190615068565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614a44565b61324b565b604051610ec59190615136565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614a44565b61326b565b005b606060018054610f0690615633565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3290615633565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906152ce565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461340990919063ffffffff16565b61340990919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613467565b848461346f565b6001905092915050565b6110b3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906152ce565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906152ce565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461340990919063ffffffff16565b61340990919063ffffffff16565b601381905550505050565b6112b3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906152ce565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae84848461363a565b50611470846113bb613467565b61146b85604051806060016040528060288152602001615ada60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b61346f565b600190509392505050565b611483613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906152ce565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115ca61157f7f000000000000000000000000000000000000000000000000000000000000000061220d565b6115bc6115ab7f000000000000000000000000000000000000000000000000000000000000000061220d565b601554613db490919063ffffffff16565b613db490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613467565b8461168a8560076000611604613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b61346f565b6001905092915050565b6116a1613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906152ce565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906152ce565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906152ce565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614a6d565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614a6d565b6040518363ffffffff1660e01b8152600401611a3b929190615083565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614a6d565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614a6d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614a6d565b6040518363ffffffff1660e01b8152600401611bf7929190615083565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614a6d565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906152ce565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906152ae565b60405180910390fd5b600080600090505b84849050811015611ea357848482818110611e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582611e8e919061544e565b91508080611e9b90615665565b915050611e38565b5080611eae8361220d565b1015611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee6906151ae565b60405180910390fd5b611f4181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613db490919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561220457612070858583818110611fce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135600660008a8a86818110612012577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120279190614a44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008989858181106120ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120c29190614a44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550868682818110612139577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061214e9190614a44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106121d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040516121e9919061532e565b60405180910390a380806121fc90615665565b915050611f87565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61225e613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e2906152ce565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b6123eb613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f906152ce565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461254490615633565b80601f016020809104026020016040519081016040528092919081815260200182805461257090615633565b80156125bd5780601f10612592576101008083540402835291602001916125bd565b820191906000526020600020905b8154815290600101906020018083116125a057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006126b06125fa613467565b846126ab85604051806060016040528060258152602001615b026025913960076000612624613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b61346f565b6001905092915050565b6126c2613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461274f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612746906152ce565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b6000612780612779613467565b848461363a565b506001905092915050565b612793613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612817906152ce565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516128699190615136565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6128ce613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461295b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612952906152ce565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a4d613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad1906152ce565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612b0090615038565b60006040518083038185875af1925050503d8060008114612b3d576040519150601f19603f3d011682016040523d82523d6000602084013e612b42565b606091505b5050905080612b5057600080fd5b50565b612b5b613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdf906152ce565b60405180910390fd5b8060178190555050565b612bfa613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7e906152ce565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612cac613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d30906152ce565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612da2613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e26906152ce565b60405180910390fd5b8060188190555050565b612e41613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec5906152ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f35906151ce565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613003613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613087906152ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016130cb9291906150ac565b602060405180830381600087803b1580156130e557600080fd5b505af11580156130f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311d9190614c37565b505050565b61312a613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146131b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ae906152ce565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b613273613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f7906152ce565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561335757600090506133b9565b6000828461336591906154d5565b905082848261337491906154a4565b146133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab9061528e565b60405180910390fd5b809150505b92915050565b600061340183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dfe565b905092915050565b6000808284613418919061544e565b90508381101561345d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134549061520e565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134d69061530e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561354f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613546906151ee565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161362d919061532e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156136ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a2906152ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561371b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137129061518e565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137bf5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59061524e565b60405180910390fd5b601a60149054906101000a900460ff16156138255761381e848484613e61565b9050613d49565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138c95750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e15750601a60189054906101000a900460ff165b1561392c5760175482111561392b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139229061526e565b60405180910390fd5b5b60006139373061220d565b90506000601654821015905080801561395d5750601a60149054906101000a900460ff16155b80156139b35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139cb5750601a60159054906101000a900460ff165b156139f557601a60169054906101000a900460ff16156139eb5760165491505b6139f482614034565b5b613a7e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613b645750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613b7857613b738787876142ff565b613b7a565b845b9050601a60179054906101000a900460ff168015613be25750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c4757601854613c0582613bf78961220d565b61340990919063ffffffff16565b1115613c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3d9061522e565b60405180910390fd5b5b613c9981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d39919061532e565b60405180910390a3600193505050505b9392505050565b6000838311158290613d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d8f919061516c565b60405180910390fd5b5060008385613da7919061552f565b9050809150509392505050565b6000613df683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d50565b905092915050565b60008083118290613e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3c919061516c565b60405180910390fd5b5060008385613e5491906154a4565b9050809150509392505050565b6000613eec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f8182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614021919061532e565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff021916908315150217905550600061406860145460135461340990919063ffffffff16565b90506000614083601054600d5461340990919063ffffffff16565b9050600061409e601154600e5461340990919063ffffffff16565b905060006140da60026140cc866140be878a61334490919063ffffffff16565b6133bf90919063ffffffff16565b6133bf90919063ffffffff16565b905060006140f18287613db490919063ffffffff16565b9050600047905061410182614526565b60006141168247613db490919063ffffffff16565b905060006141406141316002896133bf90919063ffffffff16565b89613db490919063ffffffff16565b9050600061417c600261416e846141608c8861334490919063ffffffff16565b6133bf90919063ffffffff16565b6133bf90919063ffffffff16565b905060006141a5836141978a8761334490919063ffffffff16565b6133bf90919063ffffffff16565b905060006141ce826141c08588613db490919063ffffffff16565b613db490919063ffffffff16565b9050600082111561424357600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015614241573d6000803e3d6000fd5b505b60008111156142b657600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156142b4573d6000803e3d6000fd5b505b6000831180156142c65750600088115b156142d6576142d58884614823565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143875761438060646143726013548661334490919063ffffffff16565b6133bf90919063ffffffff16565b9050614405565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156144045761440160646143f36014548661334490919063ffffffff16565b6133bf90919063ffffffff16565b90505b5b60008111156145095761446081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614500919061532e565b60405180910390a35b61451c8184613db490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115614569577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156145975781602001602082028036833780820191505090505b50905030816000815181106145d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561467757600080fd5b505afa15801561468b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146af9190614a6d565b816001815181106146e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061475030601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461346f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016147b4959493929190615379565b600060405180830381600087803b1580156147ce57600080fd5b505af11580156147e2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614817929190615349565b60405180910390a15050565b61485030601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461346f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016148d9969594939291906150d5565b6060604051808303818588803b1580156148f257600080fd5b505af1158015614906573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061492b9190614cd8565b5050505050565b60008135905061494181615a94565b92915050565b60008151905061495681615a94565b92915050565b60008083601f84011261496e57600080fd5b8235905067ffffffffffffffff81111561498757600080fd5b60208301915083602082028301111561499f57600080fd5b9250929050565b60008083601f8401126149b857600080fd5b8235905067ffffffffffffffff8111156149d157600080fd5b6020830191508360208202830111156149e957600080fd5b9250929050565b6000813590506149ff81615aab565b92915050565b600081519050614a1481615aab565b92915050565b600081359050614a2981615ac2565b92915050565b600081519050614a3e81615ac2565b92915050565b600060208284031215614a5657600080fd5b6000614a6484828501614932565b91505092915050565b600060208284031215614a7f57600080fd5b6000614a8d84828501614947565b91505092915050565b60008060408385031215614aa957600080fd5b6000614ab785828601614932565b9250506020614ac885828601614932565b9150509250929050565b600080600060608486031215614ae757600080fd5b6000614af586828701614932565b9350506020614b0686828701614932565b9250506040614b1786828701614a1a565b9150509250925092565b60008060408385031215614b3457600080fd5b6000614b4285828601614932565b9250506020614b53858286016149f0565b9150509250929050565b60008060408385031215614b7057600080fd5b6000614b7e85828601614932565b9250506020614b8f85828601614a1a565b9150509250929050565b60008060008060408587031215614baf57600080fd5b600085013567ffffffffffffffff811115614bc957600080fd5b614bd58782880161495c565b9450945050602085013567ffffffffffffffff811115614bf457600080fd5b614c00878288016149a6565b925092505092959194509250565b600060208284031215614c2057600080fd5b6000614c2e848285016149f0565b91505092915050565b600060208284031215614c4957600080fd5b6000614c5784828501614a05565b91505092915050565b600060208284031215614c7257600080fd5b6000614c8084828501614a1a565b91505092915050565b600080600060608486031215614c9e57600080fd5b6000614cac86828701614a1a565b9350506020614cbd86828701614a1a565b9250506040614cce86828701614a1a565b9150509250925092565b600080600060608486031215614ced57600080fd5b6000614cfb86828701614a2f565b9350506020614d0c86828701614a2f565b9250506040614d1d86828701614a2f565b9150509250925092565b6000614d338383614d4e565b60208301905092915050565b614d4881615575565b82525050565b614d5781615563565b82525050565b614d6681615563565b82525050565b6000614d77826153fe565b614d818185615421565b9350614d8c836153ee565b8060005b83811015614dbd578151614da48882614d27565b9750614daf83615414565b925050600181019050614d90565b5085935050505092915050565b614dd381615587565b82525050565b614de2816155ca565b82525050565b614df1816155ee565b82525050565b6000614e0282615409565b614e0c818561543d565b9350614e1c818560208601615600565b614e258161573b565b840191505092915050565b6000614e3d60238361543d565b9150614e488261574c565b604082019050919050565b6000614e60601b8361543d565b9150614e6b8261579b565b602082019050919050565b6000614e8360268361543d565b9150614e8e826157c4565b604082019050919050565b6000614ea660228361543d565b9150614eb182615813565b604082019050919050565b6000614ec9601b8361543d565b9150614ed482615862565b602082019050919050565b6000614eec60258361543d565b9150614ef78261588b565b604082019050919050565b6000614f0f601d8361543d565b9150614f1a826158da565b602082019050919050565b6000614f3260288361543d565b9150614f3d82615903565b604082019050919050565b6000614f5560218361543d565b9150614f6082615952565b604082019050919050565b6000614f7860168361543d565b9150614f83826159a1565b602082019050919050565b6000614f9b60208361543d565b9150614fa6826159ca565b602082019050919050565b6000614fbe60258361543d565b9150614fc9826159f3565b604082019050919050565b6000614fe1600083615432565b9150614fec82615a42565b600082019050919050565b600061500460248361543d565b915061500f82615a45565b604082019050919050565b615023816155b3565b82525050565b615032816155bd565b82525050565b600061504382614fd4565b9150819050919050565b60006020820190506150626000830184614d5d565b92915050565b600060208201905061507d6000830184614d3f565b92915050565b60006040820190506150986000830185614d5d565b6150a56020830184614d5d565b9392505050565b60006040820190506150c16000830185614d5d565b6150ce602083018461501a565b9392505050565b600060c0820190506150ea6000830189614d5d565b6150f7602083018861501a565b6151046040830187614de8565b6151116060830186614de8565b61511e6080830185614d5d565b61512b60a083018461501a565b979650505050505050565b600060208201905061514b6000830184614dca565b92915050565b60006020820190506151666000830184614dd9565b92915050565b600060208201905081810360008301526151868184614df7565b905092915050565b600060208201905081810360008301526151a781614e30565b9050919050565b600060208201905081810360008301526151c781614e53565b9050919050565b600060208201905081810360008301526151e781614e76565b9050919050565b6000602082019050818103600083015261520781614e99565b9050919050565b6000602082019050818103600083015261522781614ebc565b9050919050565b6000602082019050818103600083015261524781614edf565b9050919050565b6000602082019050818103600083015261526781614f02565b9050919050565b6000602082019050818103600083015261528781614f25565b9050919050565b600060208201905081810360008301526152a781614f48565b9050919050565b600060208201905081810360008301526152c781614f6b565b9050919050565b600060208201905081810360008301526152e781614f8e565b9050919050565b6000602082019050818103600083015261530781614fb1565b9050919050565b6000602082019050818103600083015261532781614ff7565b9050919050565b6000602082019050615343600083018461501a565b92915050565b600060408201905061535e600083018561501a565b81810360208301526153708184614d6c565b90509392505050565b600060a08201905061538e600083018861501a565b61539b6020830187614de8565b81810360408301526153ad8186614d6c565b90506153bc6060830185614d5d565b6153c9608083018461501a565b9695505050505050565b60006020820190506153e86000830184615029565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615459826155b3565b9150615464836155b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615499576154986156ae565b5b828201905092915050565b60006154af826155b3565b91506154ba836155b3565b9250826154ca576154c96156dd565b5b828204905092915050565b60006154e0826155b3565b91506154eb836155b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615524576155236156ae565b5b828202905092915050565b600061553a826155b3565b9150615545836155b3565b925082821015615558576155576156ae565b5b828203905092915050565b600061556e82615593565b9050919050565b600061558082615593565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155d5826155dc565b9050919050565b60006155e782615593565b9050919050565b60006155f9826155b3565b9050919050565b60005b8381101561561e578082015181840152602081019050615603565b8381111561562d576000848401525b50505050565b6000600282049050600182168061564b57607f821691505b6020821081141561565f5761565e61570c565b5b50919050565b6000615670826155b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156156a3576156a26156ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a9d81615563565b8114615aa857600080fd5b50565b615ab481615587565b8114615abf57600080fd5b50565b615acb816155b3565b8114615ad657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208807410ce39d124f8dabf12b903e8de892d47f41f4f89b66bd9bd60b8371e68064736f6c63430008040033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea919061516c565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614c89565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e919061504d565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614b5d565b61108d565b60405161047b9190615136565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190614b21565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf9190615151565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa919061532e565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614c89565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e9190614b21565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b604051610577919061532e565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190614ad2565b6113a1565b6040516105b49190615136565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614c0e565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b604051610608919061504d565b60405180910390f35b34801561061d57600080fd5b50610626611551565b604051610633919061532e565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906153d3565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614b5d565b6115e6565b60405161069b9190615136565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614c60565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614a44565b611738565b6040516107019190615136565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615136565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614a44565b61176b565b005b34801561076a57600080fd5b50610773611844565b604051610780919061532e565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614a44565b61184a565b6040516107bd9190615136565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614a44565b61186a565b6040516107fa919061504d565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614b99565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614a44565b61220d565b604051610860919061532e565b60405180910390f35b34801561087557600080fd5b5061087e612256565b005b34801561088c57600080fd5b506108956123ab565b6040516108a29190615068565b60405180910390f35b3480156108b757600080fd5b506108c06123d1565b6040516108cd919061532e565b60405180910390f35b3480156108e257600080fd5b506108eb6123d7565b6040516108f8919061532e565b60405180910390f35b34801561090d57600080fd5b506109166123dd565b604051610923919061532e565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e9190614b21565b6123e3565b005b34801561096157600080fd5b5061096a6124d3565b6040516109779190615136565b60405180910390f35b34801561098c57600080fd5b506109956124e6565b6040516109a2919061532e565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614a44565b6124ec565b6040516109df9190615136565b60405180910390f35b3480156109f457600080fd5b506109fd61250c565b604051610a0a919061504d565b60405180910390f35b348015610a1f57600080fd5b50610a28612535565b604051610a35919061516c565b60405180910390f35b348015610a4a57600080fd5b50610a536125c7565b604051610a60919061504d565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614b5d565b6125ed565b604051610a9d9190615136565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614c0e565b6126ba565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614b5d565b61276c565b604051610b039190615136565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614c0e565b61278b565b005b348015610b4157600080fd5b50610b4a612874565b604051610b57919061532e565b60405180910390f35b348015610b6c57600080fd5b50610b7561287a565b604051610b82919061504d565b60405180910390f35b348015610b9757600080fd5b50610ba06128a0565b604051610bad919061532e565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614a44565b6128a6565b604051610bea9190615136565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614a44565b6128c6565b005b348015610c2857600080fd5b50610c3161299f565b604051610c3e919061532e565b60405180910390f35b348015610c5357600080fd5b50610c5c6129a5565b604051610c699190615136565b60405180910390f35b348015610c7e57600080fd5b50610c876129b8565b604051610c94919061532e565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614a96565b6129be565b604051610cd1919061532e565b60405180910390f35b348015610ce657600080fd5b50610cef612a45565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614c60565b612b53565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614c0e565b612bf2565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d659190614b21565b612ca4565b005b348015610d7857600080fd5b50610d81612d94565b604051610d8e919061532e565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614c60565b612d9a565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614a44565b612e39565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614b5d565b612ffb565b005b348015610e1e57600080fd5b50610e396004803603810190610e349190614b21565b613122565b005b348015610e4757600080fd5b50610e50613212565b604051610e5d9190615136565b60405180910390f35b348015610e7257600080fd5b50610e7b613225565b604051610e889190615068565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614a44565b61324b565b604051610ec59190615136565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614a44565b61326b565b005b606060018054610f0690615633565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3290615633565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906152ce565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461340990919063ffffffff16565b61340990919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613467565b848461346f565b6001905092915050565b6110b3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906152ce565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906152ce565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461340990919063ffffffff16565b61340990919063ffffffff16565b601381905550505050565b6112b3613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906152ce565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae84848461363a565b50611470846113bb613467565b61146b85604051806060016040528060288152602001615ada60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b61346f565b600190509392505050565b611483613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906152ce565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006115ca61157f7f000000000000000000000000000000000000000000000000000000000000000061220d565b6115bc6115ab7f000000000000000000000000000000000000000000000000000000000000dead61220d565b601554613db490919063ffffffff16565b613db490919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613467565b8461168a8560076000611604613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b61346f565b6001905092915050565b6116a1613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906152ce565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906152ce565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906152ce565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614a6d565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614a6d565b6040518363ffffffff1660e01b8152600401611a3b929190615083565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614a6d565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614a6d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614a6d565b6040518363ffffffff1660e01b8152600401611bf7929190615083565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614a6d565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906152ce565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906152ae565b60405180910390fd5b600080600090505b84849050811015611ea357848482818110611e7c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013582611e8e919061544e565b91508080611e9b90615665565b915050611e38565b5080611eae8361220d565b1015611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee6906151ae565b60405180910390fd5b611f4181600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613db490919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561220457612070858583818110611fce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135600660008a8a86818110612012577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120279190614a44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008989858181106120ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906120c29190614a44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550868682818110612139577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061214e9190614a44565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106121d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040516121e9919061532e565b60405180910390a380806121fc90615665565b915050611f87565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61225e613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e2906152ce565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b6123eb613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246f906152ce565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461254490615633565b80601f016020809104026020016040519081016040528092919081815260200182805461257090615633565b80156125bd5780601f10612592576101008083540402835291602001916125bd565b820191906000526020600020905b8154815290600101906020018083116125a057829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006126b06125fa613467565b846126ab85604051806060016040528060258152602001615b026025913960076000612624613467565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b61346f565b6001905092915050565b6126c2613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461274f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612746906152ce565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b6000612780612779613467565b848461363a565b506001905092915050565b612793613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612817906152ce565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516128699190615136565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6128ce613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461295b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612952906152ce565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a4d613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad1906152ce565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612b0090615038565b60006040518083038185875af1925050503d8060008114612b3d576040519150601f19603f3d011682016040523d82523d6000602084013e612b42565b606091505b5050905080612b5057600080fd5b50565b612b5b613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612be8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdf906152ce565b60405180910390fd5b8060178190555050565b612bfa613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7e906152ce565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612cac613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d30906152ce565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612da2613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e26906152ce565b60405180910390fd5b8060188190555050565b612e41613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec5906152ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f35906151ce565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613003613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613087906152ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016130cb9291906150ac565b602060405180830381600087803b1580156130e557600080fd5b505af11580156130f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311d9190614c37565b505050565b61312a613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146131b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ae906152ce565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b613273613467565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f7906152ce565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561335757600090506133b9565b6000828461336591906154d5565b905082848261337491906154a4565b146133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab9061528e565b60405180910390fd5b809150505b92915050565b600061340183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613dfe565b905092915050565b6000808284613418919061544e565b90508381101561345d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134549061520e565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134d69061530e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561354f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613546906151ee565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161362d919061532e565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156136ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a2906152ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561371b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137129061518e565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137bf5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6137fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137f59061524e565b60405180910390fd5b601a60149054906101000a900460ff16156138255761381e848484613e61565b9050613d49565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156138c95750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e15750601a60189054906101000a900460ff165b1561392c5760175482111561392b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139229061526e565b60405180910390fd5b5b60006139373061220d565b90506000601654821015905080801561395d5750601a60149054906101000a900460ff16155b80156139b35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139cb5750601a60159054906101000a900460ff165b156139f557601a60169054906101000a900460ff16156139eb5760165491505b6139f482614034565b5b613a7e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613b645750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613b7857613b738787876142ff565b613b7a565b845b9050601a60179054906101000a900460ff168015613be25750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c4757601854613c0582613bf78961220d565b61340990919063ffffffff16565b1115613c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3d9061522e565b60405180910390fd5b5b613c9981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613d39919061532e565b60405180910390a3600193505050505b9392505050565b6000838311158290613d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d8f919061516c565b60405180910390fd5b5060008385613da7919061552f565b9050809150509392505050565b6000613df683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d50565b905092915050565b60008083118290613e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3c919061516c565b60405180910390fd5b5060008385613e5491906154a4565b9050809150509392505050565b6000613eec826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d509092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f8182600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614021919061532e565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff021916908315150217905550600061406860145460135461340990919063ffffffff16565b90506000614083601054600d5461340990919063ffffffff16565b9050600061409e601154600e5461340990919063ffffffff16565b905060006140da60026140cc866140be878a61334490919063ffffffff16565b6133bf90919063ffffffff16565b6133bf90919063ffffffff16565b905060006140f18287613db490919063ffffffff16565b9050600047905061410182614526565b60006141168247613db490919063ffffffff16565b905060006141406141316002896133bf90919063ffffffff16565b89613db490919063ffffffff16565b9050600061417c600261416e846141608c8861334490919063ffffffff16565b6133bf90919063ffffffff16565b6133bf90919063ffffffff16565b905060006141a5836141978a8761334490919063ffffffff16565b6133bf90919063ffffffff16565b905060006141ce826141c08588613db490919063ffffffff16565b613db490919063ffffffff16565b9050600082111561424357600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015614241573d6000803e3d6000fd5b505b60008111156142b657600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156142b4573d6000803e3d6000fd5b505b6000831180156142c65750600088115b156142d6576142d58884614823565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143875761438060646143726013548661334490919063ffffffff16565b6133bf90919063ffffffff16565b9050614405565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156144045761440160646143f36014548661334490919063ffffffff16565b6133bf90919063ffffffff16565b90505b5b60008111156145095761446081600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051614500919061532e565b60405180910390a35b61451c8184613db490919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115614569577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156145975781602001602082028036833780820191505090505b50905030816000815181106145d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561467757600080fd5b505afa15801561468b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146af9190614a6d565b816001815181106146e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061475030601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461346f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016147b4959493929190615379565b600060405180830381600087803b1580156147ce57600080fd5b505af11580156147e2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051614817929190615349565b60405180910390a15050565b61485030601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461346f565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016148d9969594939291906150d5565b6060604051808303818588803b1580156148f257600080fd5b505af1158015614906573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061492b9190614cd8565b5050505050565b60008135905061494181615a94565b92915050565b60008151905061495681615a94565b92915050565b60008083601f84011261496e57600080fd5b8235905067ffffffffffffffff81111561498757600080fd5b60208301915083602082028301111561499f57600080fd5b9250929050565b60008083601f8401126149b857600080fd5b8235905067ffffffffffffffff8111156149d157600080fd5b6020830191508360208202830111156149e957600080fd5b9250929050565b6000813590506149ff81615aab565b92915050565b600081519050614a1481615aab565b92915050565b600081359050614a2981615ac2565b92915050565b600081519050614a3e81615ac2565b92915050565b600060208284031215614a5657600080fd5b6000614a6484828501614932565b91505092915050565b600060208284031215614a7f57600080fd5b6000614a8d84828501614947565b91505092915050565b60008060408385031215614aa957600080fd5b6000614ab785828601614932565b9250506020614ac885828601614932565b9150509250929050565b600080600060608486031215614ae757600080fd5b6000614af586828701614932565b9350506020614b0686828701614932565b9250506040614b1786828701614a1a565b9150509250925092565b60008060408385031215614b3457600080fd5b6000614b4285828601614932565b9250506020614b53858286016149f0565b9150509250929050565b60008060408385031215614b7057600080fd5b6000614b7e85828601614932565b9250506020614b8f85828601614a1a565b9150509250929050565b60008060008060408587031215614baf57600080fd5b600085013567ffffffffffffffff811115614bc957600080fd5b614bd58782880161495c565b9450945050602085013567ffffffffffffffff811115614bf457600080fd5b614c00878288016149a6565b925092505092959194509250565b600060208284031215614c2057600080fd5b6000614c2e848285016149f0565b91505092915050565b600060208284031215614c4957600080fd5b6000614c5784828501614a05565b91505092915050565b600060208284031215614c7257600080fd5b6000614c8084828501614a1a565b91505092915050565b600080600060608486031215614c9e57600080fd5b6000614cac86828701614a1a565b9350506020614cbd86828701614a1a565b9250506040614cce86828701614a1a565b9150509250925092565b600080600060608486031215614ced57600080fd5b6000614cfb86828701614a2f565b9350506020614d0c86828701614a2f565b9250506040614d1d86828701614a2f565b9150509250925092565b6000614d338383614d4e565b60208301905092915050565b614d4881615575565b82525050565b614d5781615563565b82525050565b614d6681615563565b82525050565b6000614d77826153fe565b614d818185615421565b9350614d8c836153ee565b8060005b83811015614dbd578151614da48882614d27565b9750614daf83615414565b925050600181019050614d90565b5085935050505092915050565b614dd381615587565b82525050565b614de2816155ca565b82525050565b614df1816155ee565b82525050565b6000614e0282615409565b614e0c818561543d565b9350614e1c818560208601615600565b614e258161573b565b840191505092915050565b6000614e3d60238361543d565b9150614e488261574c565b604082019050919050565b6000614e60601b8361543d565b9150614e6b8261579b565b602082019050919050565b6000614e8360268361543d565b9150614e8e826157c4565b604082019050919050565b6000614ea660228361543d565b9150614eb182615813565b604082019050919050565b6000614ec9601b8361543d565b9150614ed482615862565b602082019050919050565b6000614eec60258361543d565b9150614ef78261588b565b604082019050919050565b6000614f0f601d8361543d565b9150614f1a826158da565b602082019050919050565b6000614f3260288361543d565b9150614f3d82615903565b604082019050919050565b6000614f5560218361543d565b9150614f6082615952565b604082019050919050565b6000614f7860168361543d565b9150614f83826159a1565b602082019050919050565b6000614f9b60208361543d565b9150614fa6826159ca565b602082019050919050565b6000614fbe60258361543d565b9150614fc9826159f3565b604082019050919050565b6000614fe1600083615432565b9150614fec82615a42565b600082019050919050565b600061500460248361543d565b915061500f82615a45565b604082019050919050565b615023816155b3565b82525050565b615032816155bd565b82525050565b600061504382614fd4565b9150819050919050565b60006020820190506150626000830184614d5d565b92915050565b600060208201905061507d6000830184614d3f565b92915050565b60006040820190506150986000830185614d5d565b6150a56020830184614d5d565b9392505050565b60006040820190506150c16000830185614d5d565b6150ce602083018461501a565b9392505050565b600060c0820190506150ea6000830189614d5d565b6150f7602083018861501a565b6151046040830187614de8565b6151116060830186614de8565b61511e6080830185614d5d565b61512b60a083018461501a565b979650505050505050565b600060208201905061514b6000830184614dca565b92915050565b60006020820190506151666000830184614dd9565b92915050565b600060208201905081810360008301526151868184614df7565b905092915050565b600060208201905081810360008301526151a781614e30565b9050919050565b600060208201905081810360008301526151c781614e53565b9050919050565b600060208201905081810360008301526151e781614e76565b9050919050565b6000602082019050818103600083015261520781614e99565b9050919050565b6000602082019050818103600083015261522781614ebc565b9050919050565b6000602082019050818103600083015261524781614edf565b9050919050565b6000602082019050818103600083015261526781614f02565b9050919050565b6000602082019050818103600083015261528781614f25565b9050919050565b600060208201905081810360008301526152a781614f48565b9050919050565b600060208201905081810360008301526152c781614f6b565b9050919050565b600060208201905081810360008301526152e781614f8e565b9050919050565b6000602082019050818103600083015261530781614fb1565b9050919050565b6000602082019050818103600083015261532781614ff7565b9050919050565b6000602082019050615343600083018461501a565b92915050565b600060408201905061535e600083018561501a565b81810360208301526153708184614d6c565b90509392505050565b600060a08201905061538e600083018861501a565b61539b6020830187614de8565b81810360408301526153ad8186614d6c565b90506153bc6060830185614d5d565b6153c9608083018461501a565b9695505050505050565b60006020820190506153e86000830184615029565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615459826155b3565b9150615464836155b3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615499576154986156ae565b5b828201905092915050565b60006154af826155b3565b91506154ba836155b3565b9250826154ca576154c96156dd565b5b828204905092915050565b60006154e0826155b3565b91506154eb836155b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615524576155236156ae565b5b828202905092915050565b600061553a826155b3565b9150615545836155b3565b925082821015615558576155576156ae565b5b828203905092915050565b600061556e82615593565b9050919050565b600061558082615593565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155d5826155dc565b9050919050565b60006155e782615593565b9050919050565b60006155f9826155b3565b9050919050565b60005b8381101561561e578082015181840152602081019050615603565b8381111561562d576000848401525b50505050565b6000600282049050600182168061564b57607f821691505b6020821081141561565f5761565e61570c565b5b50919050565b6000615670826155b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156156a3576156a26156ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a9d81615563565b8114615aa857600080fd5b50565b615ab481615587565b8114615abf57600080fd5b50565b615acb816155b3565b8114615ad657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208807410ce39d124f8dabf12b903e8de892d47f41f4f89b66bd9bd60b8371e68064736f6c63430008040033
Deployed Bytecode Sourcemap
11733:16581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15752:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20825:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12283:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16918:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19493:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13424:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16029:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20508:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17851:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12858:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21419:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18228:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12195:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19329:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15938:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16415:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18459:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12557:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13539:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18591:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12992:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12500:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19752:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27606:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16137:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3410:230;;;;;;;;;;;;;:::i;:::-;;11952:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13270:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13346:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13076:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17432:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13682:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12906:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12717:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3185:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15843:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12150:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16641:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19192:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21244:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19013:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12816:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13472:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12949:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12658:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18731:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13181:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13586:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12774:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16264:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23781:154;;;;;;;;;;;;;:::i;:::-;;18109:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17994:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17569:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13037:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18349:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3648:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23634:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17712:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13640:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12609:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18873:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15752:83;15789:13;15822:5;15815:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15752:83;:::o;20825:317::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20947:10:::1;20927:17;:30;;;;20988:10;20968:17;:30;;;;21029:10;21009:17;:30;;;;21071:63;21116:17;;21071:40;21093:17;;21071;;:21;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;21050:18;:84;;;;20825:317:::0;;;:::o;12283:81::-;;;:::o;16918:161::-;16993:4;17010:39;17019:12;:10;:12::i;:::-;17033:7;17042:6;17010:8;:39::i;:::-;17067:4;17060:11;;16918:161;;;;:::o;19493:113::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19591:7:::1;19573:9;:15;19583:4;19573:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;19493:113:::0;;:::o;13424:41::-;;;;;;;;;;;;;:::o;16029:100::-;16082:7;16109:12;;16102:19;;16029:100;:::o;20508:309::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20628:10:::1;20609:16;:29;;;;20668:10;20649:16;:29;;;;20708:10;20689:16;:29;;;;20749:60;20792:16;;20749:38;20770:16;;20749;;:20;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;20729:17;:80;;;;20508:309:::0;;;:::o;17851:135::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17972:6:::1;17942:19;:27;17962:6;17942:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17851:135:::0;;:::o;12858:35::-;;;;:::o;21419:313::-;21517:4;21534:36;21544:6;21552:9;21563:6;21534:9;:36::i;:::-;;21581:121;21590:6;21598:12;:10;:12::i;:::-;21612:89;21650:6;21612:89;;;;;;;;;;;;;;;;;:11;:19;21624:6;21612:19;;;;;;;;;;;;;;;:33;21632:12;:10;:12::i;:::-;21612:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21581:8;:121::i;:::-;21720:4;21713:11;;21419:313;;;;;:::o;18228:113::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18325:8:::1;18306:16;;:27;;;;;;;;;;;;;;;;;;18228:113:::0;:::o;12195:81::-;;;:::o;19329:156::-;19382:7;19409:68;19454:22;19464:11;19454:9;:22::i;:::-;19409:40;19426:22;19436:11;19426:9;:22::i;:::-;19409:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;19402:75;;19329:156;:::o;15938:83::-;15979:5;16004:9;;;;;;;;;;;15997:16;;15938:83;:::o;16415:218::-;16503:4;16520:83;16529:12;:10;:12::i;:::-;16543:7;16552:50;16591:10;16552:11;:25;16564:12;:10;:12::i;:::-;16552:25;;;;;;;;;;;;;;;:34;16578:7;16552:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16520:8;:83::i;:::-;16621:4;16614:11;;16415:218;;;;:::o;18459:124::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18567:8:::1;18541:23;:34;;;;18459:124:::0;:::o;12557:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13539:40::-;;;;;;;;;;;;;:::o;18591:132::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18704:10:::1;18678:15;;:37;;;;;;;;;;;;;;;;;;18591:132:::0;:::o;12992:36::-;;;;:::o;12500:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19752:748::-;19832:22;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19869:35:::1;19926:16;19869:74;;19992:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19974:53;;;20036:4;20043:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19974:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19957:110;;20109:1;20083:28;;:14;:28;;;20080:225;;;20197:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20179:74;;;20262:4;20269:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20179:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20162:131;;20080:225;20331:14;20317:11;;:28;;;;;;;;;;;;;;;;;;20397:16;20379:15;;:34;;;;;;;;;;;;;;;;;;20488:4;20451:12;:34;20472:11;;;;;;;;;;;20451:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;3389:1;19752:748:::0;;;:::o;27606:697::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27706:15:::1;27724:10;27706:28;;27772:7;;:14;;27753:8;;:15;;:33;27745:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27823:15;27853:6:::0;27862:1:::1;27853:10;;27849:92;27869:7;;:14;;27865:1;:18;27849:92;;;27919:7;;27927:1;27919:10;;;;;;;;;;;;;;;;;;;;;27905:24;;;;;:::i;:::-;;;27885:3;;;;;:::i;:::-;;;;27849:92;;;;27981:10;27959:18;27969:7;27959:9;:18::i;:::-;:32;;27951:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;28054:34;28077:10;28054:9;:18;28064:7;28054:18;;;;;;;;;;;;;;;;:22;;:34;;;;:::i;:::-;28033:9;:18;28043:7;28033:18;;;;;;;;;;;;;;;:55;;;;28104:6;28100:194;28120:8;;:15;;28116:1;:19;28100:194;;;28182:38;28209:7;;28217:1;28209:10;;;;;;;;;;;;;;;;;;;;;28182:9;:22;28192:8;;28201:1;28192:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28182:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;28157:9;:22;28167:8;;28176:1;28167:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28157:22;;;;;;;;;;;;;;;:63;;;;28258:8;;28267:1;28258:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28240:42;;28249:7;28240:42;;;28271:7;;28279:1;28271:10;;;;;;;;;;;;;;;;;;;;;28240:42;;;;;;:::i;:::-;;;;;;;;28137:3;;;;;:::i;:::-;;;;28100:194;;;;3389:1;;27606:697:::0;;;;:::o;16137:119::-;16203:7;16230:9;:18;16240:7;16230:18;;;;;;;;;;;;;;;;16223:25;;16137:119;;;:::o;3410:230::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3517:42:::1;3480:81;;3501:6;::::0;::::1;;;;;;;;3480:81;;;;;;;;;;;;3589:42;3572:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3410:230::o:0;11952:92::-;;;;;;;;;;;;;:::o;13270:61::-;;;;:::o;13346:60::-;;;;:::o;13076:33::-;;;;:::o;17432:129::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17545:8:::1;17521:12;:21;17534:7;17521:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17432:129:::0;;:::o;13682:41::-;;;;;;;;;;;;;:::o;12906:36::-;;;;:::o;12717:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3185:79::-;3223:7;3250:6;;;;;;;;;;;3243:13;;3185:79;:::o;15843:87::-;15882:13;15915:7;15908:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15843:87;:::o;12150:32::-;;;;;;;;;;;;;:::o;16641:269::-;16734:4;16751:129;16760:12;:10;:12::i;:::-;16774:7;16783:96;16822:15;16783:96;;;;;;;;;;;;;;;;;:11;:25;16795:12;:10;:12::i;:::-;16783:25;;;;;;;;;;;;;;;:34;16809:7;16783:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16751:8;:129::i;:::-;16898:4;16891:11;;16641:269;;;;:::o;19192:125::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19301:8:::1;19273:25;;:36;;;;;;;;;;;;;;;;;;19192:125:::0;:::o;21244:167::-;21322:4;21339:42;21349:12;:10;:12::i;:::-;21363:9;21374:6;21339:9;:42::i;:::-;;21399:4;21392:11;;21244:167;;;;:::o;19013:171::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19114:8:::1;19090:21;;:32;;;;;;;;;;;;;;;;;;19138:38;19167:8;19138:38;;;;;;:::i;:::-;;;;;;;;19013:171:::0;:::o;12816:35::-;;;;:::o;13472:26::-;;;;;;;;;;;;;:::o;12949:36::-;;;;:::o;12658:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18731:134::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18846:10:::1;18818:17;;:39;;;;;;;;;;;;;;;;;;18731:134:::0;:::o;13181:69::-;;;;:::o;13586:45::-;;;;;;;;;;;;;:::o;12774:35::-;;;;:::o;16264:143::-;16345:7;16372:11;:18;16384:5;16372:18;;;;;;;;;;;;;;;:27;16391:7;16372:27;;;;;;;;;;;;;;;;16365:34;;16264:143;;;;:::o;23781:154::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23835:7:::1;23855:10;23847:24;;23879:21;23847:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23834:71;;;23924:2;23916:11;;;::::0;::::1;;3389:1;23781:154::o:0;18109:111::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18201:11:::1;18186:12;:26;;;;18109:111:::0;:::o;17994:107::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18086:7:::1;18061:22;;:32;;;;;;;;;;;;;;;;;;17994:107:::0;:::o;17569:135::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17688:8:::1;17659:17;:26;17677:7;17659:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17569:135:::0;;:::o;13037:32::-;;;;:::o;18349:102::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18435:8:::1;18421:10;:22;;;;18349:102:::0;:::o;3648:244::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3757:1:::1;3737:22;;:8;:22;;;;3729:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3847:8;3818:38;;3839:6;::::0;::::1;;;;;;;;3818:38;;;;;;;;;;;;3876:8;3867:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3648:244:::0;:::o;23634:139::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23729:6:::1;23722:23;;;23746:10;23757:7;23722:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23634:139:::0;;:::o;17712:127::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17825:6:::1;17799:15;:23;17815:6;17799:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17712:127:::0;;:::o;13640:35::-;;;;;;;;;;;;;:::o;12051:92::-;;;;;;;;;;;;;:::o;12609:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;18873:132::-;3329:12;:10;:12::i;:::-;3319:22;;:6;;;;;;;;;;:22;;;3311:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18986:10:::1;18960:15;;:37;;;;;;;;;;;;;;;;;;18873:132:::0;:::o;1870:250::-;1928:7;1957:1;1952;:6;1948:47;;;1982:1;1975:8;;;;1948:47;2007:9;2023:1;2019;:5;;;;:::i;:::-;2007:17;;2052:1;2047;2043;:5;;;;:::i;:::-;:10;2035:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2111:1;2104:8;;;1870:250;;;;;:::o;2128:132::-;2186:7;2213:39;2217:1;2220;2213:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2206:46;;2128:132;;;;:::o;1337:181::-;1395:7;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1456:1;1451;:6;;1443:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1509:1;1502:8;;;1337:181;;;;:::o;395:115::-;448:15;491:10;476:26;;395:115;:::o;17087:337::-;17197:1;17180:19;;:5;:19;;;;17172:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17278:1;17259:21;;:7;:21;;;;17251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17362:6;17332:11;:18;17344:5;17332:18;;;;;;;;;;;;;;;:27;17351:7;17332:27;;;;;;;;;;;;;;;:36;;;;17400:7;17384:32;;17393:5;17384:32;;;17409:6;17384:32;;;;;;:::i;:::-;;;;;;;;17087:337;;;:::o;21740:1886::-;21827:4;21872:1;21854:20;;:6;:20;;;;21846:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21956:1;21935:23;;:9;:23;;;;21927:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22018:9;:17;22028:6;22018:17;;;;;;;;;;;;;;;;;;;;;;;;;22017:18;:43;;;;;22040:9;:20;22050:9;22040:20;;;;;;;;;;;;;;;;;;;;;;;;;22039:21;22017:43;22009:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;22110:16;;;;;;;;;;;22107:1502;;;22160:41;22175:6;22183:9;22194:6;22160:14;:41::i;:::-;22153:48;;;;22107:1502;22259:15;:23;22275:6;22259:23;;;;;;;;;;;;;;;;;;;;;;;;;22258:24;:55;;;;;22287:15;:26;22303:9;22287:26;;;;;;;;;;;;;;;;;;;;;;;;;22286:27;22258:55;:81;;;;;22317:22;;;;;;;;;;;22258:81;22255:196;;;22378:12;;22368:6;:22;;22360:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22255:196;22467:28;22498:24;22516:4;22498:9;:24::i;:::-;22467:55;;22537:28;22592:23;;22568:20;:47;;22537:78;;22648:23;:44;;;;;22676:16;;;;;;;;;;;22675:17;22648:44;:69;;;;;22697:12;:20;22710:6;22697:20;;;;;;;;;;;;;;;;;;;;;;;;;22696:21;22648:69;:94;;;;;22721:21;;;;;;;;;;;22648:94;22644:305;;;22780:25;;;;;;;;;;;22777:97;;;22851:23;;22828:46;;22777:97;22893:36;22908:20;22893:14;:36::i;:::-;22644:305;22985:53;23007:6;22985:53;;;;;;;;;;;;;;;;;:9;:17;22995:6;22985:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22965:9;:17;22975:6;22965:17;;;;;;;;;;;;;;;:73;;;;23055:19;23078:17;:25;23096:6;23078:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23107:17;:28;23125:9;23107:28;;;;;;;;;;;;;;;;;;;;;;;;;23078:57;23077:148;;23191:34;23199:6;23207:9;23218:6;23191:7;:34::i;:::-;23077:148;;;23182:6;23077:148;23055:170;;23245:16;;;;;;;;;;;:51;;;;;23266:19;:30;23286:9;23266:30;;;;;;;;;;;;;;;;;;;;;;;;;23265:31;23245:51;23242:191;;;23366:10;;23325:37;23350:11;23325:20;23335:9;23325;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;23317:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;23242:191;23472:37;23497:11;23472:9;:20;23482:9;23472:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23449:9;:20;23459:9;23449:20;;;;;;;;;;;;;;;:60;;;;23548:9;23531:40;;23540:6;23531:40;;;23559:11;23531:40;;;;;;:::i;:::-;;;;;;;;23593:4;23586:11;;;;;21740:1886;;;;;;:::o;1670:192::-;1756:7;1789:1;1784;:6;;1792:12;1776:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1816:9;1832:1;1828;:5;;;;:::i;:::-;1816:17;;1853:1;1846:8;;;1670:192;;;;;:::o;1526:136::-;1584:7;1611:43;1615:1;1618;1611:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1604:50;;1526:136;;;;:::o;2268:278::-;2354:7;2386:1;2382;:5;2389:12;2374:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2413:9;2429:1;2425;:5;;;;:::i;:::-;2413:17;;2537:1;2530:8;;;2268:278;;;;;:::o;23943:330::-;24036:4;24073:53;24095:6;24073:53;;;;;;;;;;;;;;;;;:9;:17;24083:6;24073:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24053:9;:17;24063:6;24053:17;;;;;;;;;;;;;;;:73;;;;24160:32;24185:6;24160:9;:20;24170:9;24160:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24137:9;:20;24147:9;24137:20;;;;;;;;;;;;;;;:55;;;;24225:9;24208:35;;24217:6;24208:35;;;24236:6;24208:35;;;;;;:::i;:::-;;;;;;;;24261:4;24254:11;;23943:330;;;;;:::o;24281:1449::-;14167:4;14148:16;;:23;;;;;;;;;;;;;;;;;;24355:19:::1;24377:41;24399:18;;24377:17;;:21;;:41;;;;:::i;:::-;24355:63;;24431:22;24456:39;24477:17;;24456:16;;:20;;:39;;;;:::i;:::-;24431:64;;24506:22;24531:39;24552:17;;24531:16;;:20;;:39;;;;:::i;:::-;24506:64;;24669:18;24690:51;24739:1;24690:44;24722:11;24690:27;24702:14;24690:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;24669:72;;24752:20;24775:23;24787:10;24775:7;:11;;:23;;;;:::i;:::-;24752:46;;24811:22;24837:21;24811:47;;24869:30;24886:12;24869:16;:30::i;:::-;24910:23;24937:41;24963:14;24937:21;:25;;:41;;;;:::i;:::-;24910:68;;24991:19;25013:38;25029:21;25048:1;25029:14;:18;;:21;;;;:::i;:::-;25013:11;:15;;:38;;;;:::i;:::-;24991:60;;25064:26;25093:59;25150:1;25093:52;25133:11;25093:35;25113:14;25093:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;25064:88;;25163:26;25192:52;25232:11;25192:35;25212:14;25192:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;25163:81;;25255:26;25284:63;25328:18;25284:39;25304:18;25284:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;25255:92;;25384:1;25363:18;:22;25360:107;;;25410:15;;;;;;;;;;;25402:33;;:53;25436:18;25402:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25360:107;25503:1;25482:18;:22;25479:107;;;25529:15;;;;;;;;;;;25521:33;;:53;25555:18;25521:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25479:107;25631:1;25610:18;:22;:40;;;;;25649:1;25636:10;:14;25610:40;25607:116;;;25667:44;25680:10;25692:18;25667:12;:44::i;:::-;25607:116;14182:1;;;;;;;;;;;14213:5:::0;14194:16;;:24;;;;;;;;;;;;;;;;;;24281:1449;:::o;26947:622::-;27033:7;27063:17;27083:1;27063:21;;27108:12;:20;27121:6;27108:20;;;;;;;;;;;;;;;;;;;;;;;;;27105:223;;;27157:38;27191:3;27157:29;27168:17;;27157:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;27145:50;;27105:223;;;27225:12;:23;27238:9;27225:23;;;;;;;;;;;;;;;;;;;;;;;;;27222:106;;;27277:39;27312:3;27277:30;27288:18;;27277:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27265:51;;27222:106;27105:223;27363:1;27351:9;:13;27348:173;;;27408:39;27437:9;27408;:24;27426:4;27408:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27381:9;:24;27399:4;27381:24;;;;;;;;;;;;;;;:66;;;;27492:4;27467:42;;27476:6;27467:42;;;27499:9;27467:42;;;;;;:::i;:::-;;;;;;;;27348:173;27540:21;27551:9;27540:6;:10;;:21;;;;:::i;:::-;27533:28;;;26947:622;;;;;:::o;25742:666::-;25868:21;25906:1;25892:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25868:40;;25937:4;25919;25924:1;25919:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;25963:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25953:4;25958:1;25953:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;25998:62;26015:4;26030:15;;;;;;;;;;;26048:11;25998:8;:62::i;:::-;26099:15;;;;;;;;;;;:66;;;26180:11;26206:1;26250:4;26277;26313:15;26099:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26365:35;26382:11;26395:4;26365:35;;;;;;;:::i;:::-;;;;;;;;25742:666;;:::o;26416:523::-;26564:62;26581:4;26596:15;;;;;;;;;;;26614:11;26564:8;:62::i;:::-;26669:15;;;;;;;;;;;:31;;;26708:9;26741:4;26761:11;26787:1;26830;26873:17;;;;;;;;;;;26905:15;26669:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26416:523;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;708:367::-;781:8;791:6;841:3;834:4;826:6;822:17;818:27;808:2;;859:1;856;849:12;808:2;895:6;882:20;872:30;;925:18;917:6;914:30;911:2;;;957:1;954;947:12;911:2;994:4;986:6;982:17;970:29;;1048:3;1040:4;1032:6;1028:17;1018:8;1014:32;1011:41;1008:2;;;1065:1;1062;1055:12;1008:2;798:277;;;;;:::o;1081:133::-;1124:5;1162:6;1149:20;1140:29;;1178:30;1202:5;1178:30;:::i;:::-;1130:84;;;;:::o;1220:137::-;1274:5;1305:6;1299:13;1290:22;;1321:30;1345:5;1321:30;:::i;:::-;1280:77;;;;:::o;1363:139::-;1409:5;1447:6;1434:20;1425:29;;1463:33;1490:5;1463:33;:::i;:::-;1415:87;;;;:::o;1508:143::-;1565:5;1596:6;1590:13;1581:22;;1612:33;1639:5;1612:33;:::i;:::-;1571:80;;;;:::o;1657:262::-;1716:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:2;;;1781:1;1778;1771:12;1733:2;1824:1;1849:53;1894:7;1885:6;1874:9;1870:22;1849:53;:::i;:::-;1839:63;;1795:117;1723:196;;;;:::o;1925:284::-;1995:6;2044:2;2032:9;2023:7;2019:23;2015:32;2012:2;;;2060:1;2057;2050:12;2012:2;2103:1;2128:64;2184:7;2175:6;2164:9;2160:22;2128:64;:::i;:::-;2118:74;;2074:128;2002:207;;;;:::o;2215:407::-;2283:6;2291;2340:2;2328:9;2319:7;2315:23;2311:32;2308:2;;;2356:1;2353;2346:12;2308:2;2399:1;2424:53;2469:7;2460:6;2449:9;2445:22;2424:53;:::i;:::-;2414:63;;2370:117;2526:2;2552:53;2597:7;2588:6;2577:9;2573:22;2552:53;:::i;:::-;2542:63;;2497:118;2298:324;;;;;:::o;2628:552::-;2705:6;2713;2721;2770:2;2758:9;2749:7;2745:23;2741:32;2738:2;;;2786:1;2783;2776:12;2738:2;2829:1;2854:53;2899:7;2890:6;2879:9;2875:22;2854:53;:::i;:::-;2844:63;;2800:117;2956:2;2982:53;3027:7;3018:6;3007:9;3003:22;2982:53;:::i;:::-;2972:63;;2927:118;3084:2;3110:53;3155:7;3146:6;3135:9;3131:22;3110:53;:::i;:::-;3100:63;;3055:118;2728:452;;;;;:::o;3186:401::-;3251:6;3259;3308:2;3296:9;3287:7;3283:23;3279:32;3276:2;;;3324:1;3321;3314:12;3276:2;3367:1;3392:53;3437:7;3428:6;3417:9;3413:22;3392:53;:::i;:::-;3382:63;;3338:117;3494:2;3520:50;3562:7;3553:6;3542:9;3538:22;3520:50;:::i;:::-;3510:60;;3465:115;3266:321;;;;;:::o;3593:407::-;3661:6;3669;3718:2;3706:9;3697:7;3693:23;3689:32;3686:2;;;3734:1;3731;3724:12;3686:2;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3676:324;;;;;:::o;4006:733::-;4128:6;4136;4144;4152;4201:2;4189:9;4180:7;4176:23;4172:32;4169:2;;;4217:1;4214;4207:12;4169:2;4288:1;4277:9;4273:17;4260:31;4318:18;4310:6;4307:30;4304:2;;;4350:1;4347;4340:12;4304:2;4386:80;4458:7;4449:6;4438:9;4434:22;4386:80;:::i;:::-;4368:98;;;;4231:245;4543:2;4532:9;4528:18;4515:32;4574:18;4566:6;4563:30;4560:2;;;4606:1;4603;4596:12;4560:2;4642:80;4714:7;4705:6;4694:9;4690:22;4642:80;:::i;:::-;4624:98;;;;4486:246;4159:580;;;;;;;:::o;4745:256::-;4801:6;4850:2;4838:9;4829:7;4825:23;4821:32;4818:2;;;4866:1;4863;4856:12;4818:2;4909:1;4934:50;4976:7;4967:6;4956:9;4952:22;4934:50;:::i;:::-;4924:60;;4880:114;4808:193;;;;:::o;5007:278::-;5074:6;5123:2;5111:9;5102:7;5098:23;5094:32;5091:2;;;5139:1;5136;5129:12;5091:2;5182:1;5207:61;5260:7;5251:6;5240:9;5236:22;5207:61;:::i;:::-;5197:71;;5153:125;5081:204;;;;:::o;5291:262::-;5350:6;5399:2;5387:9;5378:7;5374:23;5370:32;5367:2;;;5415:1;5412;5405:12;5367:2;5458:1;5483:53;5528:7;5519:6;5508:9;5504:22;5483:53;:::i;:::-;5473:63;;5429:117;5357:196;;;;:::o;5559:552::-;5636:6;5644;5652;5701:2;5689:9;5680:7;5676:23;5672:32;5669:2;;;5717:1;5714;5707:12;5669:2;5760:1;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5731:117;5887:2;5913:53;5958:7;5949:6;5938:9;5934:22;5913:53;:::i;:::-;5903:63;;5858:118;6015:2;6041:53;6086:7;6077:6;6066:9;6062:22;6041:53;:::i;:::-;6031:63;;5986:118;5659:452;;;;;:::o;6117:596::-;6205:6;6213;6221;6270:2;6258:9;6249:7;6245:23;6241:32;6238:2;;;6286:1;6283;6276:12;6238:2;6329:1;6354:64;6410:7;6401:6;6390:9;6386:22;6354:64;:::i;:::-;6344:74;;6300:128;6467:2;6493:64;6549:7;6540:6;6529:9;6525:22;6493:64;:::i;:::-;6483:74;;6438:129;6606:2;6632:64;6688:7;6679:6;6668:9;6664:22;6632:64;:::i;:::-;6622:74;;6577:129;6228:485;;;;;:::o;6719:179::-;6788:10;6809:46;6851:3;6843:6;6809:46;:::i;:::-;6887:4;6882:3;6878:14;6864:28;;6799:99;;;;:::o;6904:142::-;7007:32;7033:5;7007:32;:::i;:::-;7002:3;6995:45;6985:61;;:::o;7052:108::-;7129:24;7147:5;7129:24;:::i;:::-;7124:3;7117:37;7107:53;;:::o;7166:118::-;7253:24;7271:5;7253:24;:::i;:::-;7248:3;7241:37;7231:53;;:::o;7320:732::-;7439:3;7468:54;7516:5;7468:54;:::i;:::-;7538:86;7617:6;7612:3;7538:86;:::i;:::-;7531:93;;7648:56;7698:5;7648:56;:::i;:::-;7727:7;7758:1;7743:284;7768:6;7765:1;7762:13;7743:284;;;7844:6;7838:13;7871:63;7930:3;7915:13;7871:63;:::i;:::-;7864:70;;7957:60;8010:6;7957:60;:::i;:::-;7947:70;;7803:224;7790:1;7787;7783:9;7778:14;;7743:284;;;7747:14;8043:3;8036:10;;7444:608;;;;;;;:::o;8058:109::-;8139:21;8154:5;8139:21;:::i;:::-;8134:3;8127:34;8117:50;;:::o;8173:185::-;8287:64;8345:5;8287:64;:::i;:::-;8282:3;8275:77;8265:93;;:::o;8364:147::-;8459:45;8498:5;8459:45;:::i;:::-;8454:3;8447:58;8437:74;;:::o;8517:364::-;8605:3;8633:39;8666:5;8633:39;:::i;:::-;8688:71;8752:6;8747:3;8688:71;:::i;:::-;8681:78;;8768:52;8813:6;8808:3;8801:4;8794:5;8790:16;8768:52;:::i;:::-;8845:29;8867:6;8845:29;:::i;:::-;8840:3;8836:39;8829:46;;8609:272;;;;;:::o;8887:366::-;9029:3;9050:67;9114:2;9109:3;9050:67;:::i;:::-;9043:74;;9126:93;9215:3;9126:93;:::i;:::-;9244:2;9239:3;9235:12;9228:19;;9033:220;;;:::o;9259:366::-;9401:3;9422:67;9486:2;9481:3;9422:67;:::i;:::-;9415:74;;9498:93;9587:3;9498:93;:::i;:::-;9616:2;9611:3;9607:12;9600:19;;9405:220;;;:::o;9631:366::-;9773:3;9794:67;9858:2;9853:3;9794:67;:::i;:::-;9787:74;;9870:93;9959:3;9870:93;:::i;:::-;9988:2;9983:3;9979:12;9972:19;;9777:220;;;:::o;10003:366::-;10145:3;10166:67;10230:2;10225:3;10166:67;:::i;:::-;10159:74;;10242:93;10331:3;10242:93;:::i;:::-;10360:2;10355:3;10351:12;10344:19;;10149:220;;;:::o;10375:366::-;10517:3;10538:67;10602:2;10597:3;10538:67;:::i;:::-;10531:74;;10614:93;10703:3;10614:93;:::i;:::-;10732:2;10727:3;10723:12;10716:19;;10521:220;;;:::o;10747:366::-;10889:3;10910:67;10974:2;10969:3;10910:67;:::i;:::-;10903:74;;10986:93;11075:3;10986:93;:::i;:::-;11104:2;11099:3;11095:12;11088:19;;10893:220;;;:::o;11119:366::-;11261:3;11282:67;11346:2;11341:3;11282:67;:::i;:::-;11275:74;;11358:93;11447:3;11358:93;:::i;:::-;11476:2;11471:3;11467:12;11460:19;;11265:220;;;:::o;11491:366::-;11633:3;11654:67;11718:2;11713:3;11654:67;:::i;:::-;11647:74;;11730:93;11819:3;11730:93;:::i;:::-;11848:2;11843:3;11839:12;11832:19;;11637:220;;;:::o;11863:366::-;12005:3;12026:67;12090:2;12085:3;12026:67;:::i;:::-;12019:74;;12102:93;12191:3;12102:93;:::i;:::-;12220:2;12215:3;12211:12;12204:19;;12009:220;;;:::o;12235:366::-;12377:3;12398:67;12462:2;12457:3;12398:67;:::i;:::-;12391:74;;12474:93;12563:3;12474:93;:::i;:::-;12592:2;12587:3;12583:12;12576:19;;12381:220;;;:::o;12607:366::-;12749:3;12770:67;12834:2;12829:3;12770:67;:::i;:::-;12763:74;;12846:93;12935:3;12846:93;:::i;:::-;12964:2;12959:3;12955:12;12948:19;;12753:220;;;:::o;12979:366::-;13121:3;13142:67;13206:2;13201:3;13142:67;:::i;:::-;13135:74;;13218:93;13307:3;13218:93;:::i;:::-;13336:2;13331:3;13327:12;13320:19;;13125:220;;;:::o;13351:398::-;13510:3;13531:83;13612:1;13607:3;13531:83;:::i;:::-;13524:90;;13623:93;13712:3;13623:93;:::i;:::-;13741:1;13736:3;13732:11;13725:18;;13514:235;;;:::o;13755:366::-;13897:3;13918:67;13982:2;13977:3;13918:67;:::i;:::-;13911:74;;13994:93;14083:3;13994:93;:::i;:::-;14112:2;14107:3;14103:12;14096:19;;13901:220;;;:::o;14127:118::-;14214:24;14232:5;14214:24;:::i;:::-;14209:3;14202:37;14192:53;;:::o;14251:112::-;14334:22;14350:5;14334:22;:::i;:::-;14329:3;14322:35;14312:51;;:::o;14369:379::-;14553:3;14575:147;14718:3;14575:147;:::i;:::-;14568:154;;14739:3;14732:10;;14557:191;;;:::o;14754:222::-;14847:4;14885:2;14874:9;14870:18;14862:26;;14898:71;14966:1;14955:9;14951:17;14942:6;14898:71;:::i;:::-;14852:124;;;;:::o;14982:254::-;15091:4;15129:2;15118:9;15114:18;15106:26;;15142:87;15226:1;15215:9;15211:17;15202:6;15142:87;:::i;:::-;15096:140;;;;:::o;15242:332::-;15363:4;15401:2;15390:9;15386:18;15378:26;;15414:71;15482:1;15471:9;15467:17;15458:6;15414:71;:::i;:::-;15495:72;15563:2;15552:9;15548:18;15539:6;15495:72;:::i;:::-;15368:206;;;;;:::o;15580:332::-;15701:4;15739:2;15728:9;15724:18;15716:26;;15752:71;15820:1;15809:9;15805:17;15796:6;15752:71;:::i;:::-;15833:72;15901:2;15890:9;15886:18;15877:6;15833:72;:::i;:::-;15706:206;;;;;:::o;15918:807::-;16167:4;16205:3;16194:9;16190:19;16182:27;;16219:71;16287:1;16276:9;16272:17;16263:6;16219:71;:::i;:::-;16300:72;16368:2;16357:9;16353:18;16344:6;16300:72;:::i;:::-;16382:80;16458:2;16447:9;16443:18;16434:6;16382:80;:::i;:::-;16472;16548:2;16537:9;16533:18;16524:6;16472:80;:::i;:::-;16562:73;16630:3;16619:9;16615:19;16606:6;16562:73;:::i;:::-;16645;16713:3;16702:9;16698:19;16689:6;16645:73;:::i;:::-;16172:553;;;;;;;;;:::o;16731:210::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16869:65;16931:1;16920:9;16916:17;16907:6;16869:65;:::i;:::-;16823:118;;;;:::o;16947:276::-;17067:4;17105:2;17094:9;17090:18;17082:26;;17118:98;17213:1;17202:9;17198:17;17189:6;17118:98;:::i;:::-;17072:151;;;;:::o;17229:313::-;17342:4;17380:2;17369:9;17365:18;17357:26;;17429:9;17423:4;17419:20;17415:1;17404:9;17400:17;17393:47;17457:78;17530:4;17521:6;17457:78;:::i;:::-;17449:86;;17347:195;;;;:::o;17548:419::-;17714:4;17752:2;17741:9;17737:18;17729:26;;17801:9;17795:4;17791:20;17787:1;17776:9;17772:17;17765:47;17829:131;17955:4;17829:131;:::i;:::-;17821:139;;17719:248;;;:::o;17973:419::-;18139:4;18177:2;18166:9;18162:18;18154:26;;18226:9;18220:4;18216:20;18212:1;18201:9;18197:17;18190:47;18254:131;18380:4;18254:131;:::i;:::-;18246:139;;18144:248;;;:::o;18398:419::-;18564:4;18602:2;18591:9;18587:18;18579:26;;18651:9;18645:4;18641:20;18637:1;18626:9;18622:17;18615:47;18679:131;18805:4;18679:131;:::i;:::-;18671:139;;18569:248;;;:::o;18823:419::-;18989:4;19027:2;19016:9;19012:18;19004:26;;19076:9;19070:4;19066:20;19062:1;19051:9;19047:17;19040:47;19104:131;19230:4;19104:131;:::i;:::-;19096:139;;18994:248;;;:::o;19248:419::-;19414:4;19452:2;19441:9;19437:18;19429:26;;19501:9;19495:4;19491:20;19487:1;19476:9;19472:17;19465:47;19529:131;19655:4;19529:131;:::i;:::-;19521:139;;19419:248;;;:::o;19673:419::-;19839:4;19877:2;19866:9;19862:18;19854:26;;19926:9;19920:4;19916:20;19912:1;19901:9;19897:17;19890:47;19954:131;20080:4;19954:131;:::i;:::-;19946:139;;19844:248;;;:::o;20098:419::-;20264:4;20302:2;20291:9;20287:18;20279:26;;20351:9;20345:4;20341:20;20337:1;20326:9;20322:17;20315:47;20379:131;20505:4;20379:131;:::i;:::-;20371:139;;20269:248;;;:::o;20523:419::-;20689:4;20727:2;20716:9;20712:18;20704:26;;20776:9;20770:4;20766:20;20762:1;20751:9;20747:17;20740:47;20804:131;20930:4;20804:131;:::i;:::-;20796:139;;20694:248;;;:::o;20948:419::-;21114:4;21152:2;21141:9;21137:18;21129:26;;21201:9;21195:4;21191:20;21187:1;21176:9;21172:17;21165:47;21229:131;21355:4;21229:131;:::i;:::-;21221:139;;21119:248;;;:::o;21373:419::-;21539:4;21577:2;21566:9;21562:18;21554:26;;21626:9;21620:4;21616:20;21612:1;21601:9;21597:17;21590:47;21654:131;21780:4;21654:131;:::i;:::-;21646:139;;21544:248;;;:::o;21798:419::-;21964:4;22002:2;21991:9;21987:18;21979:26;;22051:9;22045:4;22041:20;22037:1;22026:9;22022:17;22015:47;22079:131;22205:4;22079:131;:::i;:::-;22071:139;;21969:248;;;:::o;22223:419::-;22389:4;22427:2;22416:9;22412:18;22404:26;;22476:9;22470:4;22466:20;22462:1;22451:9;22447:17;22440:47;22504:131;22630:4;22504:131;:::i;:::-;22496:139;;22394:248;;;:::o;22648:419::-;22814:4;22852:2;22841:9;22837:18;22829:26;;22901:9;22895:4;22891:20;22887:1;22876:9;22872:17;22865:47;22929:131;23055:4;22929:131;:::i;:::-;22921:139;;22819:248;;;:::o;23073:222::-;23166:4;23204:2;23193:9;23189:18;23181:26;;23217:71;23285:1;23274:9;23270:17;23261:6;23217:71;:::i;:::-;23171:124;;;;:::o;23301:483::-;23472:4;23510:2;23499:9;23495:18;23487:26;;23523:71;23591:1;23580:9;23576:17;23567:6;23523:71;:::i;:::-;23641:9;23635:4;23631:20;23626:2;23615:9;23611:18;23604:48;23669:108;23772:4;23763:6;23669:108;:::i;:::-;23661:116;;23477:307;;;;;:::o;23790:831::-;24053:4;24091:3;24080:9;24076:19;24068:27;;24105:71;24173:1;24162:9;24158:17;24149:6;24105:71;:::i;:::-;24186:80;24262:2;24251:9;24247:18;24238:6;24186:80;:::i;:::-;24313:9;24307:4;24303:20;24298:2;24287:9;24283:18;24276:48;24341:108;24444:4;24435:6;24341:108;:::i;:::-;24333:116;;24459:72;24527:2;24516:9;24512:18;24503:6;24459:72;:::i;:::-;24541:73;24609:3;24598:9;24594:19;24585:6;24541:73;:::i;:::-;24058:563;;;;;;;;:::o;24627:214::-;24716:4;24754:2;24743:9;24739:18;24731:26;;24767:67;24831:1;24820:9;24816:17;24807:6;24767:67;:::i;:::-;24721:120;;;;:::o;24847:132::-;24914:4;24937:3;24929:11;;24967:4;24962:3;24958:14;24950:22;;24919:60;;;:::o;24985:114::-;25052:6;25086:5;25080:12;25070:22;;25059:40;;;:::o;25105:99::-;25157:6;25191:5;25185:12;25175:22;;25164:40;;;:::o;25210:113::-;25280:4;25312;25307:3;25303:14;25295:22;;25285:38;;;:::o;25329:184::-;25428:11;25462:6;25457:3;25450:19;25502:4;25497:3;25493:14;25478:29;;25440:73;;;;:::o;25519:147::-;25620:11;25657:3;25642:18;;25632:34;;;;:::o;25672:169::-;25756:11;25790:6;25785:3;25778:19;25830:4;25825:3;25821:14;25806:29;;25768:73;;;;:::o;25847:305::-;25887:3;25906:20;25924:1;25906:20;:::i;:::-;25901:25;;25940:20;25958:1;25940:20;:::i;:::-;25935:25;;26094:1;26026:66;26022:74;26019:1;26016:81;26013:2;;;26100:18;;:::i;:::-;26013:2;26144:1;26141;26137:9;26130:16;;25891:261;;;;:::o;26158:185::-;26198:1;26215:20;26233:1;26215:20;:::i;:::-;26210:25;;26249:20;26267:1;26249:20;:::i;:::-;26244:25;;26288:1;26278:2;;26293:18;;:::i;:::-;26278:2;26335:1;26332;26328:9;26323:14;;26200:143;;;;:::o;26349:348::-;26389:7;26412:20;26430:1;26412:20;:::i;:::-;26407:25;;26446:20;26464:1;26446:20;:::i;:::-;26441:25;;26634:1;26566:66;26562:74;26559:1;26556:81;26551:1;26544:9;26537:17;26533:105;26530:2;;;26641:18;;:::i;:::-;26530:2;26689:1;26686;26682:9;26671:20;;26397:300;;;;:::o;26703:191::-;26743:4;26763:20;26781:1;26763:20;:::i;:::-;26758:25;;26797:20;26815:1;26797:20;:::i;:::-;26792:25;;26836:1;26833;26830:8;26827:2;;;26841:18;;:::i;:::-;26827:2;26886:1;26883;26879:9;26871:17;;26748:146;;;;:::o;26900:96::-;26937:7;26966:24;26984:5;26966:24;:::i;:::-;26955:35;;26945:51;;;:::o;27002:104::-;27047:7;27076:24;27094:5;27076:24;:::i;:::-;27065:35;;27055:51;;;:::o;27112:90::-;27146:7;27189:5;27182:13;27175:21;27164:32;;27154:48;;;:::o;27208:126::-;27245:7;27285:42;27278:5;27274:54;27263:65;;27253:81;;;:::o;27340:77::-;27377:7;27406:5;27395:16;;27385:32;;;:::o;27423:86::-;27458:7;27498:4;27491:5;27487:16;27476:27;;27466:43;;;:::o;27515:180::-;27592:9;27625:64;27683:5;27625:64;:::i;:::-;27612:77;;27602:93;;;:::o;27701:140::-;27778:9;27811:24;27829:5;27811:24;:::i;:::-;27798:37;;27788:53;;;:::o;27847:121::-;27905:9;27938:24;27956:5;27938:24;:::i;:::-;27925:37;;27915:53;;;:::o;27974:307::-;28042:1;28052:113;28066:6;28063:1;28060:13;28052:113;;;28151:1;28146:3;28142:11;28136:18;28132:1;28127:3;28123:11;28116:39;28088:2;28085:1;28081:10;28076:15;;28052:113;;;28183:6;28180:1;28177:13;28174:2;;;28263:1;28254:6;28249:3;28245:16;28238:27;28174:2;28023:258;;;;:::o;28287:320::-;28331:6;28368:1;28362:4;28358:12;28348:22;;28415:1;28409:4;28405:12;28436:18;28426:2;;28492:4;28484:6;28480:17;28470:27;;28426:2;28554;28546:6;28543:14;28523:18;28520:38;28517:2;;;28573:18;;:::i;:::-;28517:2;28338:269;;;;:::o;28613:233::-;28652:3;28675:24;28693:5;28675:24;:::i;:::-;28666:33;;28721:66;28714:5;28711:77;28708:2;;;28791:18;;:::i;:::-;28708:2;28838:1;28831:5;28827:13;28820:20;;28656:190;;;:::o;28852:180::-;28900:77;28897:1;28890:88;28997:4;28994:1;28987:15;29021:4;29018:1;29011:15;29038:180;29086:77;29083:1;29076:88;29183:4;29180:1;29173:15;29207:4;29204:1;29197:15;29224:180;29272:77;29269:1;29262:88;29369:4;29366:1;29359:15;29393:4;29390:1;29383:15;29410:102;29451:6;29502:2;29498:7;29493:2;29486:5;29482:14;29478:28;29468:38;;29458:54;;;:::o;29518:222::-;29658:34;29654:1;29646:6;29642:14;29635:58;29727:5;29722:2;29714:6;29710:15;29703:30;29624:116;:::o;29746:177::-;29886:29;29882:1;29874:6;29870:14;29863:53;29852:71;:::o;29929:225::-;30069:34;30065:1;30057:6;30053:14;30046:58;30138:8;30133:2;30125:6;30121:15;30114:33;30035:119;:::o;30160:221::-;30300:34;30296:1;30288:6;30284:14;30277:58;30369:4;30364:2;30356:6;30352:15;30345:29;30266:115;:::o;30387:177::-;30527:29;30523:1;30515:6;30511:14;30504:53;30493:71;:::o;30570:224::-;30710:34;30706:1;30698:6;30694:14;30687:58;30779:7;30774:2;30766:6;30762:15;30755:32;30676:118;:::o;30800:179::-;30940:31;30936:1;30928:6;30924:14;30917:55;30906:73;:::o;30985:227::-;31125:34;31121:1;31113:6;31109:14;31102:58;31194:10;31189:2;31181:6;31177:15;31170:35;31091:121;:::o;31218:220::-;31358:34;31354:1;31346:6;31342:14;31335:58;31427:3;31422:2;31414:6;31410:15;31403:28;31324:114;:::o;31444:172::-;31584:24;31580:1;31572:6;31568:14;31561:48;31550:66;:::o;31622:182::-;31762:34;31758:1;31750:6;31746:14;31739:58;31728:76;:::o;31810:224::-;31950:34;31946:1;31938:6;31934:14;31927:58;32019:7;32014:2;32006:6;32002:15;31995:32;31916:118;:::o;32040:114::-;32146:8;:::o;32160:223::-;32300:34;32296:1;32288:6;32284:14;32277:58;32369:6;32364:2;32356:6;32352:15;32345:31;32266:117;:::o;32389:122::-;32462:24;32480:5;32462:24;:::i;:::-;32455:5;32452:35;32442:2;;32501:1;32498;32491:12;32442:2;32432:79;:::o;32517:116::-;32587:21;32602:5;32587:21;:::i;:::-;32580:5;32577:32;32567:2;;32623:1;32620;32613:12;32567:2;32557:76;:::o;32639:122::-;32712:24;32730:5;32712:24;:::i;:::-;32705:5;32702:35;32692:2;;32751:1;32748;32741:12;32692:2;32682:79;:::o
Swarm Source
ipfs://8807410ce39d124f8dabf12b903e8de892d47f41f4f89b66bd9bd60b8371e680
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.