ERC-20
Overview
Max Total Supply
1,000,000 Twird
Holders
49
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
27,305.521980112502849359 TwirdValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Twird
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-02 */ /* ,, ,, MMP""MM""YMM db `7MM P' MM `7 MM MM `7M' ,A `MF'`7MM `7Mb,od8 ,M""bMM MM VA ,VAA ,V MM MM' "',AP MM MM VA ,V VA ,V MM MM 8MI MM MM VVV VVV MM MM `Mb MM .JMML. W W .JMML..JMML. `Wbmd"MML. .-"""""""-. .' __ \_ / / \/ \ | \_0/\_0/______ |:. .' oo`\ |:. / \ |' ; | | |:.. . \_______ | |::.|' , \,_____\ / |:::.; ' | . '| ====)_/===;===========;() |::; | | ; ; | | # # # #:::::: /::::.|-| |_|-|, \ # # # #:::::: /'-=-'` '-' '--'\ # # # #:::::: / \ # # # #:::::: # # # # # # # # # # # # # # # # # # # # # SAVE AMERICA # # # # # # # # # # # # # # # # # # # # # 20+ percent of EVERY transaction will be donated to the Young America's Foundation via The Giving Block https://TwirdETH.com/ https://twitter.com/TwirdUSA https://t.me/TwirdPortal */ // 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 Twird is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Twird"; string private _symbol = "Twird"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0x7364ad203970E997C73ca549d183D7A9D1A492ad); address payable public DeveloperWallet = payable(0x157E7bd1AC10A31fda62597Ee888c87A7a6f7aCE); 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 = 1; uint256 public _buyMarketingFee = 2; uint256 public _buyDeveloperFee = 1; uint256 public _sellLiquidityFee = 1; 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(2).div(100); //2% uint256 public _walletMax = _totalSupply.mul(2).div(100); //2% 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
60c06040526040518060400160405280600581526020017f5477697264000000000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062001043565b506040518060400160405280600581526020017f5477697264000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001043565b506012600360006101000a81548160ff021916908360ff160217905550737364ad203970e997c73ca549d183d7a9d1a492ad600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073157e7bd1ac10a31fda62597ee888c87a7a6f7ace600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600d556002600e556001600f55600160105560036011556001601255600360009054906101000a900460ff16600a620002119190620013ab565b620f4240620002219190620014e8565b6015556200025b606462000247600160155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b60165562000295606462000281600260155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b601755620002cf6064620002bb600260155462000e7160201b620032601790919060201c565b62000ef560201b620032db1790919060201c565b6018556001601a60156101000a81548160ff0219169083151502179055506000601a60166101000a81548160ff0219169083151502179055506001601a60176101000a81548160ff0219169083151502179055506001601a60186101000a81548160ff0219169083151502179055503480156200034b57600080fd5b5060006200035e62000f4760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045c57600080fd5b505afa15801562000471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049791906200110a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004fa57600080fd5b505afa1580156200050f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053591906200110a565b6040518363ffffffff1660e01b815260040162000554929190620011ed565b602060405180830381600087803b1580156200056f57600080fd5b505af115801562000584573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005aa91906200110a565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620006e662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200089962000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600062000ac662000f4f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000c9c600f5462000c88600e54600d5462000f7860201b620033251790919060201c565b62000f7860201b620033251790919060201c565b60138190555062000cdb60125462000cc760115460105462000f7860201b620033251790919060201c565b62000f7860201b620033251790919060201c565b601481905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506015546006600062000db362000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e0162000f4760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60155460405162000e62919062001282565b60405180910390a35062001742565b60008083141562000e86576000905062000eef565b6000828462000e969190620014e8565b905082848262000ea7919062001318565b1462000eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ee19062001260565b60405180910390fd5b809150505b92915050565b600062000f3f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000fdb60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000f899190620012bb565b90508381101562000fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fc8906200123e565b60405180910390fd5b8091505092915050565b6000808311829062001025576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200101c91906200121a565b60405180910390fd5b506000838562001036919062001318565b9050809150509392505050565b8280546200105190620015ca565b90600052602060002090601f016020900481019282620010755760008555620010c1565b82601f106200109057805160ff1916838001178555620010c1565b82800160010185558215620010c1579182015b82811115620010c0578251825591602001919060010190620010a3565b5b509050620010d09190620010d4565b5090565b5b80821115620010ef576000816000905550600101620010d5565b5090565b600081519050620011048162001728565b92915050565b6000602082840312156200112357620011226200168d565b5b60006200113384828501620010f3565b91505092915050565b620011478162001549565b82525050565b60006200115a826200129f565b620011668185620012aa565b93506200117881856020860162001594565b620011838162001692565b840191505092915050565b60006200119d601b83620012aa565b9150620011aa82620016b0565b602082019050919050565b6000620011c4602183620012aa565b9150620011d182620016d9565b604082019050919050565b620011e7816200157d565b82525050565b60006040820190506200120460008301856200113c565b6200121360208301846200113c565b9392505050565b600060208201905081810360008301526200123681846200114d565b905092915050565b6000602082019050818103600083015262001259816200118e565b9050919050565b600060208201905081810360008301526200127b81620011b5565b9050919050565b6000602082019050620012996000830184620011dc565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620012c8826200157d565b9150620012d5836200157d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200130d576200130c62001600565b5b828201905092915050565b600062001325826200157d565b915062001332836200157d565b9250826200134557620013446200162f565b5b828204905092915050565b6000808291508390505b6001851115620013a2578086048111156200137a576200137962001600565b5b60018516156200138a5780820291505b80810290506200139a85620016a3565b94506200135a565b94509492505050565b6000620013b8826200157d565b9150620013c58362001587565b9250620013f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013fc565b905092915050565b6000826200140e5760019050620014e1565b816200141e5760009050620014e1565b8160018114620014375760028114620014425762001478565b6001915050620014e1565b60ff84111562001457576200145662001600565b5b8360020a91508482111562001471576200147062001600565b5b50620014e1565b5060208310610133831016604e8410600b8410161715620014b25782820a905083811115620014ac57620014ab62001600565b5b620014e1565b620014c1848484600162001350565b92509050818404811115620014db57620014da62001600565b5b81810290505b9392505050565b6000620014f5826200157d565b915062001502836200157d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200153e576200153d62001600565b5b828202905092915050565b600062001556826200155d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620015b457808201518184015260208101905062001597565b83811115620015c4576000848401525b50505050565b60006002820490506001821680620015e357607f821691505b60208210811415620015fa57620015f96200165e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b620017338162001549565b81146200173f57600080fd5b50565b60805160601c60a05160601c615adf6200177c6000396000818161106b015261155b01526000818161152f01526115870152615adf6000f3fe6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea9190615066565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614b7b565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e9190614f47565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614a33565b61108d565b60405161047b9190615030565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906149f3565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf919061504b565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa9190615228565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614b7b565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e91906149f3565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b6040516105779190615228565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906149a0565b6113a1565b6040516105b49190615030565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614af4565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b6040516106089190614f47565b60405180910390f35b34801561061d57600080fd5b50610626611551565b6040516106339190615228565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906152cd565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614a33565b6115e6565b60405161069b9190615030565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614b4e565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614906565b611738565b6040516107019190615030565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615030565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614906565b61176b565b005b34801561076a57600080fd5b50610773611844565b6040516107809190615228565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614906565b61184a565b6040516107bd9190615030565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614906565b61186a565b6040516107fa9190614f47565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614a73565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614906565b612129565b6040516108609190615228565b60405180910390f35b34801561087557600080fd5b5061087e612172565b005b34801561088c57600080fd5b506108956122c7565b6040516108a29190614f62565b60405180910390f35b3480156108b757600080fd5b506108c06122ed565b6040516108cd9190615228565b60405180910390f35b3480156108e257600080fd5b506108eb6122f3565b6040516108f89190615228565b60405180910390f35b34801561090d57600080fd5b506109166122f9565b6040516109239190615228565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906149f3565b6122ff565b005b34801561096157600080fd5b5061096a6123ef565b6040516109779190615030565b60405180910390f35b34801561098c57600080fd5b50610995612402565b6040516109a29190615228565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614906565b612408565b6040516109df9190615030565b60405180910390f35b3480156109f457600080fd5b506109fd612428565b604051610a0a9190614f47565b60405180910390f35b348015610a1f57600080fd5b50610a28612451565b604051610a359190615066565b60405180910390f35b348015610a4a57600080fd5b50610a536124e3565b604051610a609190614f47565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614a33565b612509565b604051610a9d9190615030565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614af4565b6125d6565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614a33565b612688565b604051610b039190615030565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614af4565b6126a7565b005b348015610b4157600080fd5b50610b4a612790565b604051610b579190615228565b60405180910390f35b348015610b6c57600080fd5b50610b75612796565b604051610b829190614f47565b60405180910390f35b348015610b9757600080fd5b50610ba06127bc565b604051610bad9190615228565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614906565b6127c2565b604051610bea9190615030565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614906565b6127e2565b005b348015610c2857600080fd5b50610c316128bb565b604051610c3e9190615228565b60405180910390f35b348015610c5357600080fd5b50610c5c6128c1565b604051610c699190615030565b60405180910390f35b348015610c7e57600080fd5b50610c876128d4565b604051610c949190615228565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614960565b6128da565b604051610cd19190615228565b60405180910390f35b348015610ce657600080fd5b50610cef612961565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614b4e565b612a6f565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614af4565b612b0e565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d6591906149f3565b612bc0565b005b348015610d7857600080fd5b50610d81612cb0565b604051610d8e9190615228565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614b4e565b612cb6565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614906565b612d55565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614a33565b612f17565b005b348015610e1e57600080fd5b50610e396004803603810190610e3491906149f3565b61303e565b005b348015610e4757600080fd5b50610e5061312e565b604051610e5d9190615030565b60405180910390f35b348015610e7257600080fd5b50610e7b613141565b604051610e889190614f62565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614906565b613167565b604051610ec59190615030565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614906565b613187565b005b606060018054610f069061553f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f329061553f565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906151c8565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461332590919063ffffffff16565b61332590919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613383565b848461338b565b6001905092915050565b6110b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906151c8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906151c8565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461332590919063ffffffff16565b61332590919063ffffffff16565b601381905550505050565b6112b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906151c8565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae848484613556565b50611470846113bb613383565b61146b85604051806060016040528060288152602001615a5d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b600190509392505050565b611483613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906151c8565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115ca61157f7f0000000000000000000000000000000000000000000000000000000000000000612129565b6115bc6115ab7f0000000000000000000000000000000000000000000000000000000000000000612129565b601554613cd090919063ffffffff16565b613cd090919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613383565b8461168a8560076000611604613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b61338b565b6001905092915050565b6116a1613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906151c8565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906151c8565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906151c8565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614933565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614933565b6040518363ffffffff1660e01b8152600401611a3b929190614f7d565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614933565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614933565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614933565b6040518363ffffffff1660e01b8152600401611bf7929190614f7d565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614933565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906151c8565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906151a8565b60405180910390fd5b600080600090505b84849050811015611e7d57848482818110611e5657611e55615647565b5b9050602002013582611e689190615348565b91508080611e7590615571565b915050611e38565b5080611e8883612129565b1015611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906150a8565b60405180910390fd5b611f1b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561212057611ffe858583818110611f8257611f81615647565b5b90506020020135600660008a8a86818110611fa057611f9f615647565b5b9050602002016020810190611fb59190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b6006600089898581811061201557612014615647565b5b905060200201602081019061202a9190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555086868281811061207b5761207a615647565b5b90506020020160208101906120909190614906565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106120f1576120f0615647565b5b905060200201356040516121059190615228565b60405180910390a3808061211890615571565b915050611f61565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61217a613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906151c8565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b612307613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b906151c8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124609061553f565b80601f016020809104026020016040519081016040528092919081815260200182805461248c9061553f565b80156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006125cc612516613383565b846125c785604051806060016040528060258152602001615a856025913960076000612540613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b6001905092915050565b6125de613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612662906151c8565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b600061269c612695613383565b8484613556565b506001905092915050565b6126af613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906151c8565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127859190615030565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6127ea613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e906151c8565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612969613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ed906151c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a1c90614f32565b60006040518083038185875af1925050503d8060008114612a59576040519150601f19603f3d011682016040523d82523d6000602084013e612a5e565b606091505b5050905080612a6c57600080fd5b50565b612a77613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb906151c8565b60405180910390fd5b8060178190555050565b612b16613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9a906151c8565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612bc8613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4c906151c8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612cbe613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d42906151c8565b60405180910390fd5b8060188190555050565b612d5d613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de1906151c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e51906150c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f1f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906151c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612fe7929190614fa6565b602060405180830381600087803b15801561300157600080fd5b505af1158015613015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130399190614b21565b505050565b613046613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ca906151c8565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61318f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461321c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613213906151c8565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561327357600090506132d5565b6000828461328191906153cf565b9050828482613290919061539e565b146132d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c790615188565b60405180910390fd5b809150505b92915050565b600061331d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613d1a565b905092915050565b60008082846133349190615348565b905083811015613379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337090615108565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f290615208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561346b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613462906150e8565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516135499190615228565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156135c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135be906151e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362e90615088565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136db5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371190615148565b60405180910390fd5b601a60149054906101000a900460ff16156137415761373a848484613d7d565b9050613c65565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137e55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137fd5750601a60189054906101000a900460ff165b1561384857601754821115613847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383e90615168565b60405180910390fd5b5b600061385330612129565b9050600060165482101590508080156138795750601a60149054906101000a900460ff16155b80156138cf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e75750601a60159054906101000a900460ff165b1561391157601a60169054906101000a900460ff16156139075760165491505b61391082613f50565b5b61399a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a805750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a9457613a8f87878761421b565b613a96565b845b9050601a60179054906101000a900460ff168015613afe5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b6357601854613b2182613b1389612129565b61332590919063ffffffff16565b1115613b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5990615128565b60405180910390fd5b5b613bb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c559190615228565b60405180910390a3600193505050505b9392505050565b6000838311158290613cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cab9190615066565b60405180910390fd5b5060008385613cc39190615429565b9050809150509392505050565b6000613d1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c6c565b905092915050565b60008083118290613d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d589190615066565b60405180910390fd5b5060008385613d70919061539e565b9050809150509392505050565b6000613e08826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f3d9190615228565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613f8460145460135461332590919063ffffffff16565b90506000613f9f601054600d5461332590919063ffffffff16565b90506000613fba601154600e5461332590919063ffffffff16565b90506000613ff66002613fe886613fda878a61326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b9050600061400d8287613cd090919063ffffffff16565b9050600047905061401d82614442565b60006140328247613cd090919063ffffffff16565b9050600061405c61404d6002896132db90919063ffffffff16565b89613cd090919063ffffffff16565b90506000614098600261408a8461407c8c8861326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b905060006140c1836140b38a8761326090919063ffffffff16565b6132db90919063ffffffff16565b905060006140ea826140dc8588613cd090919063ffffffff16565b613cd090919063ffffffff16565b9050600082111561415f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561415d573d6000803e3d6000fd5b505b60008111156141d257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141d0573d6000803e3d6000fd5b505b6000831180156141e25750600088115b156141f2576141f188846146cd565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142a35761429c606461428e6013548661326090919063ffffffff16565b6132db90919063ffffffff16565b9050614321565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143205761431d606461430f6014548661326090919063ffffffff16565b6132db90919063ffffffff16565b90505b5b60008111156144255761437c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161441c9190615228565b60405180910390a35b6144388184613cd090919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561445f5761445e615676565b5b60405190808252806020026020018201604052801561448d5781602001602082028036833780820191505090505b50905030816000815181106144a5576144a4615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561454757600080fd5b505afa15801561455b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061457f9190614933565b8160018151811061459357614592615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161465e959493929190615273565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516146c1929190615243565b60405180910390a15050565b6146fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161478396959493929190614fcf565b6060604051808303818588803b15801561479c57600080fd5b505af11580156147b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906147d59190614bce565b5050505050565b6000813590506147eb81615a17565b92915050565b60008151905061480081615a17565b92915050565b60008083601f84011261481c5761481b6156aa565b5b8235905067ffffffffffffffff811115614839576148386156a5565b5b602083019150836020820283011115614855576148546156af565b5b9250929050565b60008083601f840112614872576148716156aa565b5b8235905067ffffffffffffffff81111561488f5761488e6156a5565b5b6020830191508360208202830111156148ab576148aa6156af565b5b9250929050565b6000813590506148c181615a2e565b92915050565b6000815190506148d681615a2e565b92915050565b6000813590506148eb81615a45565b92915050565b60008151905061490081615a45565b92915050565b60006020828403121561491c5761491b6156b9565b5b600061492a848285016147dc565b91505092915050565b600060208284031215614949576149486156b9565b5b6000614957848285016147f1565b91505092915050565b60008060408385031215614977576149766156b9565b5b6000614985858286016147dc565b9250506020614996858286016147dc565b9150509250929050565b6000806000606084860312156149b9576149b86156b9565b5b60006149c7868287016147dc565b93505060206149d8868287016147dc565b92505060406149e9868287016148dc565b9150509250925092565b60008060408385031215614a0a57614a096156b9565b5b6000614a18858286016147dc565b9250506020614a29858286016148b2565b9150509250929050565b60008060408385031215614a4a57614a496156b9565b5b6000614a58858286016147dc565b9250506020614a69858286016148dc565b9150509250929050565b60008060008060408587031215614a8d57614a8c6156b9565b5b600085013567ffffffffffffffff811115614aab57614aaa6156b4565b5b614ab787828801614806565b9450945050602085013567ffffffffffffffff811115614ada57614ad96156b4565b5b614ae68782880161485c565b925092505092959194509250565b600060208284031215614b0a57614b096156b9565b5b6000614b18848285016148b2565b91505092915050565b600060208284031215614b3757614b366156b9565b5b6000614b45848285016148c7565b91505092915050565b600060208284031215614b6457614b636156b9565b5b6000614b72848285016148dc565b91505092915050565b600080600060608486031215614b9457614b936156b9565b5b6000614ba2868287016148dc565b9350506020614bb3868287016148dc565b9250506040614bc4868287016148dc565b9150509250925092565b600080600060608486031215614be757614be66156b9565b5b6000614bf5868287016148f1565b9350506020614c06868287016148f1565b9250506040614c17868287016148f1565b9150509250925092565b6000614c2d8383614c48565b60208301905092915050565b614c428161546f565b82525050565b614c518161545d565b82525050565b614c608161545d565b82525050565b6000614c71826152f8565b614c7b818561531b565b9350614c86836152e8565b8060005b83811015614cb7578151614c9e8882614c21565b9750614ca98361530e565b925050600181019050614c8a565b5085935050505092915050565b614ccd81615481565b82525050565b614cdc816154c4565b82525050565b614ceb816154d6565b82525050565b6000614cfc82615303565b614d068185615337565b9350614d1681856020860161550c565b614d1f816156be565b840191505092915050565b6000614d37602383615337565b9150614d42826156cf565b604082019050919050565b6000614d5a601b83615337565b9150614d658261571e565b602082019050919050565b6000614d7d602683615337565b9150614d8882615747565b604082019050919050565b6000614da0602283615337565b9150614dab82615796565b604082019050919050565b6000614dc3601b83615337565b9150614dce826157e5565b602082019050919050565b6000614de6602583615337565b9150614df18261580e565b604082019050919050565b6000614e09601d83615337565b9150614e148261585d565b602082019050919050565b6000614e2c602883615337565b9150614e3782615886565b604082019050919050565b6000614e4f602183615337565b9150614e5a826158d5565b604082019050919050565b6000614e72601683615337565b9150614e7d82615924565b602082019050919050565b6000614e95602083615337565b9150614ea08261594d565b602082019050919050565b6000614eb8602583615337565b9150614ec382615976565b604082019050919050565b6000614edb60008361532c565b9150614ee6826159c5565b600082019050919050565b6000614efe602483615337565b9150614f09826159c8565b604082019050919050565b614f1d816154ad565b82525050565b614f2c816154b7565b82525050565b6000614f3d82614ece565b9150819050919050565b6000602082019050614f5c6000830184614c57565b92915050565b6000602082019050614f776000830184614c39565b92915050565b6000604082019050614f926000830185614c57565b614f9f6020830184614c57565b9392505050565b6000604082019050614fbb6000830185614c57565b614fc86020830184614f14565b9392505050565b600060c082019050614fe46000830189614c57565b614ff16020830188614f14565b614ffe6040830187614ce2565b61500b6060830186614ce2565b6150186080830185614c57565b61502560a0830184614f14565b979650505050505050565b60006020820190506150456000830184614cc4565b92915050565b60006020820190506150606000830184614cd3565b92915050565b600060208201905081810360008301526150808184614cf1565b905092915050565b600060208201905081810360008301526150a181614d2a565b9050919050565b600060208201905081810360008301526150c181614d4d565b9050919050565b600060208201905081810360008301526150e181614d70565b9050919050565b6000602082019050818103600083015261510181614d93565b9050919050565b6000602082019050818103600083015261512181614db6565b9050919050565b6000602082019050818103600083015261514181614dd9565b9050919050565b6000602082019050818103600083015261516181614dfc565b9050919050565b6000602082019050818103600083015261518181614e1f565b9050919050565b600060208201905081810360008301526151a181614e42565b9050919050565b600060208201905081810360008301526151c181614e65565b9050919050565b600060208201905081810360008301526151e181614e88565b9050919050565b6000602082019050818103600083015261520181614eab565b9050919050565b6000602082019050818103600083015261522181614ef1565b9050919050565b600060208201905061523d6000830184614f14565b92915050565b60006040820190506152586000830185614f14565b818103602083015261526a8184614c66565b90509392505050565b600060a0820190506152886000830188614f14565b6152956020830187614ce2565b81810360408301526152a78186614c66565b90506152b66060830185614c57565b6152c36080830184614f14565b9695505050505050565b60006020820190506152e26000830184614f23565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615353826154ad565b915061535e836154ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615393576153926155ba565b5b828201905092915050565b60006153a9826154ad565b91506153b4836154ad565b9250826153c4576153c36155e9565b5b828204905092915050565b60006153da826154ad565b91506153e5836154ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561541e5761541d6155ba565b5b828202905092915050565b6000615434826154ad565b915061543f836154ad565b925082821015615452576154516155ba565b5b828203905092915050565b60006154688261548d565b9050919050565b600061547a8261548d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154cf826154e8565b9050919050565b60006154e1826154ad565b9050919050565b60006154f3826154fa565b9050919050565b60006155058261548d565b9050919050565b60005b8381101561552a57808201518184015260208101905061550f565b83811115615539576000848401525b50505050565b6000600282049050600182168061555757607f821691505b6020821081141561556b5761556a615618565b5b50919050565b600061557c826154ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155af576155ae6155ba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a208161545d565b8114615a2b57600080fd5b50565b615a3781615481565b8114615a4257600080fd5b50565b615a4e816154ad565b8114615a5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220894b72316f4743cdda4b02bf1d124f13311d5663dd9113286f346f0cce5ab60564736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103bc5760003560e01c806385261485116101f2578063da00097d1161010d578063f1d5f517116100a0578063f872858a1161006f578063f872858a14610e3b578063f8f6329014610e66578063f9f92be414610e91578063fb4b8e6c14610ece576103c3565b8063f1d5f51714610d97578063f2fde38b14610dc0578063f455444614610de9578063f84ba65d14610e12576103c3565b8063ec28438a116100dc578063ec28438a14610cf1578063ee828db314610d1a578063ef422a1814610d43578063f0cd1dac14610d6c576103c3565b8063da00097d14610c47578063dc44b6a014610c72578063dd62ed3e14610c9d578063e6b2603b14610cda576103c3565b8063a9059cbb11610185578063c860795211610154578063c860795214610b8b578063c867d60b14610bb6578063c9c9afc514610bf3578063d2d7ad8314610c1c576103c3565b8063a9059cbb14610acf578063c49b9a8014610b0c578063c5d2418914610b35578063c816841b14610b60576103c3565b806395d89b41116101c157806395d89b4114610a1357806398e944c814610a3e578063a457c2d714610a69578063a5d69d1f14610aa6576103c3565b8063852614851461095557806388790a68146109805780638b42507f146109ab5780638da5cb5b146109e8576103c3565b806339509351116102e257806367243482116102755780637d1db4a5116102445780637d1db4a5146108ab578063807c2d9c146108d657806382eefb4314610901578063844d591c1461092c576103c3565b8063672434821461080357806370a082311461082c578063715018a61461086957806375f0a87414610880576103c3565b80634cb80fd5116102b15780634cb80fd5146107355780635194f9bf1461075e5780635342acb4146107895780635881f3ef146107c6576103c3565b806339509351146106675780633b97084a146106a45780633ecad271146106cd5780634a74bb021461070a576103c3565b80631870517a1161035a5780632563ae83116103295780632563ae83146105bd57806327c8f835146105e65780632b112e4914610611578063313ce5671461063c576103c3565b80631870517a146105035780632198cf6c1461052c57806323555d571461055557806323b872dd14610580576103c3565b8063095ea7b311610396578063095ea7b314610447578063153b0d1e146104845780631694505e146104ad57806318160ddd146104d8576103c3565b806306fdde03146103c857806308733214146103f35780630930907b1461041c576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610ef7565b6040516103ea9190615066565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190614b7b565b610f89565b005b34801561042857600080fd5b50610431611069565b60405161043e9190614f47565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190614a33565b61108d565b60405161047b9190615030565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906149f3565b6110ab565b005b3480156104b957600080fd5b506104c261119b565b6040516104cf919061504b565b60405180910390f35b3480156104e457600080fd5b506104ed6111c1565b6040516104fa9190615228565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190614b7b565b6111cb565b005b34801561053857600080fd5b50610553600480360381019061054e91906149f3565b6112ab565b005b34801561056157600080fd5b5061056a61139b565b6040516105779190615228565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a291906149a0565b6113a1565b6040516105b49190615030565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614af4565b61147b565b005b3480156105f257600080fd5b506105fb61152d565b6040516106089190614f47565b60405180910390f35b34801561061d57600080fd5b50610626611551565b6040516106339190615228565b60405180910390f35b34801561064857600080fd5b506106516115cf565b60405161065e91906152cd565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190614a33565b6115e6565b60405161069b9190615030565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190614b4e565b611699565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190614906565b611738565b6040516107019190615030565b60405180910390f35b34801561071657600080fd5b5061071f611758565b60405161072c9190615030565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190614906565b61176b565b005b34801561076a57600080fd5b50610773611844565b6040516107809190615228565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190614906565b61184a565b6040516107bd9190615030565b60405180910390f35b3480156107d257600080fd5b506107ed60048036038101906107e89190614906565b61186a565b6040516107fa9190614f47565b60405180910390f35b34801561080f57600080fd5b5061082a60048036038101906108259190614a73565b611d4e565b005b34801561083857600080fd5b50610853600480360381019061084e9190614906565b612129565b6040516108609190615228565b60405180910390f35b34801561087557600080fd5b5061087e612172565b005b34801561088c57600080fd5b506108956122c7565b6040516108a29190614f62565b60405180910390f35b3480156108b757600080fd5b506108c06122ed565b6040516108cd9190615228565b60405180910390f35b3480156108e257600080fd5b506108eb6122f3565b6040516108f89190615228565b60405180910390f35b34801561090d57600080fd5b506109166122f9565b6040516109239190615228565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906149f3565b6122ff565b005b34801561096157600080fd5b5061096a6123ef565b6040516109779190615030565b60405180910390f35b34801561098c57600080fd5b50610995612402565b6040516109a29190615228565b60405180910390f35b3480156109b757600080fd5b506109d260048036038101906109cd9190614906565b612408565b6040516109df9190615030565b60405180910390f35b3480156109f457600080fd5b506109fd612428565b604051610a0a9190614f47565b60405180910390f35b348015610a1f57600080fd5b50610a28612451565b604051610a359190615066565b60405180910390f35b348015610a4a57600080fd5b50610a536124e3565b604051610a609190614f47565b60405180910390f35b348015610a7557600080fd5b50610a906004803603810190610a8b9190614a33565b612509565b604051610a9d9190615030565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190614af4565b6125d6565b005b348015610adb57600080fd5b50610af66004803603810190610af19190614a33565b612688565b604051610b039190615030565b60405180910390f35b348015610b1857600080fd5b50610b336004803603810190610b2e9190614af4565b6126a7565b005b348015610b4157600080fd5b50610b4a612790565b604051610b579190615228565b60405180910390f35b348015610b6c57600080fd5b50610b75612796565b604051610b829190614f47565b60405180910390f35b348015610b9757600080fd5b50610ba06127bc565b604051610bad9190615228565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd89190614906565b6127c2565b604051610bea9190615030565b60405180910390f35b348015610bff57600080fd5b50610c1a6004803603810190610c159190614906565b6127e2565b005b348015610c2857600080fd5b50610c316128bb565b604051610c3e9190615228565b60405180910390f35b348015610c5357600080fd5b50610c5c6128c1565b604051610c699190615030565b60405180910390f35b348015610c7e57600080fd5b50610c876128d4565b604051610c949190615228565b60405180910390f35b348015610ca957600080fd5b50610cc46004803603810190610cbf9190614960565b6128da565b604051610cd19190615228565b60405180910390f35b348015610ce657600080fd5b50610cef612961565b005b348015610cfd57600080fd5b50610d186004803603810190610d139190614b4e565b612a6f565b005b348015610d2657600080fd5b50610d416004803603810190610d3c9190614af4565b612b0e565b005b348015610d4f57600080fd5b50610d6a6004803603810190610d6591906149f3565b612bc0565b005b348015610d7857600080fd5b50610d81612cb0565b604051610d8e9190615228565b60405180910390f35b348015610da357600080fd5b50610dbe6004803603810190610db99190614b4e565b612cb6565b005b348015610dcc57600080fd5b50610de76004803603810190610de29190614906565b612d55565b005b348015610df557600080fd5b50610e106004803603810190610e0b9190614a33565b612f17565b005b348015610e1e57600080fd5b50610e396004803603810190610e3491906149f3565b61303e565b005b348015610e4757600080fd5b50610e5061312e565b604051610e5d9190615030565b60405180910390f35b348015610e7257600080fd5b50610e7b613141565b604051610e889190614f62565b60405180910390f35b348015610e9d57600080fd5b50610eb86004803603810190610eb39190614906565b613167565b604051610ec59190615030565b60405180910390f35b348015610eda57600080fd5b50610ef56004803603810190610ef09190614906565b613187565b005b606060018054610f069061553f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f329061553f565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b610f91613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611015906151c8565b60405180910390fd5b82601081905550816011819055508060128190555061105e60125461105060115460105461332590919063ffffffff16565b61332590919063ffffffff16565b601481905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110a161109a613383565b848461338b565b6001905092915050565b6110b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611137906151c8565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601554905090565b6111d3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906151c8565b60405180910390fd5b82600d8190555081600e8190555080600f819055506112a0600f54611292600e54600d5461332590919063ffffffff16565b61332590919063ffffffff16565b601381905550505050565b6112b3613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611337906151c8565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60006113ae848484613556565b50611470846113bb613383565b61146b85604051806060016040528060288152602001615a5d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611421613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b600190509392505050565b611483613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611507906151c8565b60405180910390fd5b80601a60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006115ca61157f7f0000000000000000000000000000000000000000000000000000000000000000612129565b6115bc6115ab7f000000000000000000000000000000000000000000000000000000000000dead612129565b601554613cd090919063ffffffff16565b613cd090919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061168f6115f3613383565b8461168a8560076000611604613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b61338b565b6001905092915050565b6116a1613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461172e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611725906151c8565b60405180910390fd5b8060168190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601a60159054906101000a900460ff1681565b611773613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f7906151c8565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611874613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906151c8565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561194c57600080fd5b505afa158015611960573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119849190614933565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e657600080fd5b505afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190614933565b6040518363ffffffff1660e01b8152600401611a3b929190614f7d565b60206040518083038186803b158015611a5357600080fd5b505afa158015611a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8b9190614933565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c4c578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b409190614933565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190614933565b6040518363ffffffff1660e01b8152600401611bf7929190614f7d565b602060405180830381600087803b158015611c1157600080fd5b505af1158015611c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c499190614933565b91505b81601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d56613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906151c8565b60405180910390fd5b6000339050828290508585905014611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e27906151a8565b60405180910390fd5b600080600090505b84849050811015611e7d57848482818110611e5657611e55615647565b5b9050602002013582611e689190615348565b91508080611e7590615571565b915050611e38565b5080611e8883612129565b1015611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906150a8565b60405180910390fd5b611f1b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613cd090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b8686905081101561212057611ffe858583818110611f8257611f81615647565b5b90506020020135600660008a8a86818110611fa057611f9f615647565b5b9050602002016020810190611fb59190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b6006600089898581811061201557612014615647565b5b905060200201602081019061202a9190614906565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555086868281811061207b5761207a615647565b5b90506020020160208101906120909190614906565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8787858181106120f1576120f0615647565b5b905060200201356040516121059190615228565b60405180910390a3808061211890615571565b915050611f61565b50505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61217a613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906151c8565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b60185481565b60145481565b612307613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b906151c8565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546124609061553f565b80601f016020809104026020016040519081016040528092919081815260200182805461248c9061553f565b80156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006125cc612516613383565b846125c785604051806060016040528060258152602001615a856025913960076000612540613383565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b61338b565b6001905092915050565b6125de613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612662906151c8565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b600061269c612695613383565b8484613556565b506001905092915050565b6126af613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906151c8565b60405180910390fd5b80601a60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516127859190615030565b60405180910390a150565b600e5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600b6020528060005260406000206000915054906101000a900460ff1681565b6127ea613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286e906151c8565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b601a60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612969613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ed906151c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612a1c90614f32565b60006040518083038185875af1925050503d8060008114612a59576040519150601f19603f3d011682016040523d82523d6000602084013e612a5e565b606091505b5050905080612a6c57600080fd5b50565b612a77613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612afb906151c8565b60405180910390fd5b8060178190555050565b612b16613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9a906151c8565b60405180910390fd5b80601a60186101000a81548160ff02191690831515021790555050565b612bc8613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4c906151c8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b612cbe613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d42906151c8565b60405180910390fd5b8060188190555050565b612d5d613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de1906151c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e51906150c8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612f1f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa3906151c8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612fe7929190614fa6565b602060405180830381600087803b15801561300157600080fd5b505af1158015613015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130399190614b21565b505050565b613046613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ca906151c8565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61318f613383565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461321c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613213906151c8565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561327357600090506132d5565b6000828461328191906153cf565b9050828482613290919061539e565b146132d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c790615188565b60405180910390fd5b809150505b92915050565b600061331d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613d1a565b905092915050565b60008082846133349190615348565b905083811015613379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337090615108565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156133fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133f290615208565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561346b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613462906150e8565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516135499190615228565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156135c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135be906151e8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161362e90615088565b60405180910390fd5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156136db5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161371190615148565b60405180910390fd5b601a60149054906101000a900460ff16156137415761373a848484613d7d565b9050613c65565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156137e55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137fd5750601a60189054906101000a900460ff165b1561384857601754821115613847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161383e90615168565b60405180910390fd5b5b600061385330612129565b9050600060165482101590508080156138795750601a60149054906101000a900460ff16155b80156138cf5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138e75750601a60159054906101000a900460ff165b1561391157601a60169054906101000a900460ff16156139075760165491505b61391082613f50565b5b61399a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a805750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a9457613a8f87878761421b565b613a96565b845b9050601a60179054906101000a900460ff168015613afe5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613b6357601854613b2182613b1389612129565b61332590919063ffffffff16565b1115613b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b5990615128565b60405180910390fd5b5b613bb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c559190615228565b60405180910390a3600193505050505b9392505050565b6000838311158290613cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cab9190615066565b60405180910390fd5b5060008385613cc39190615429565b9050809150509392505050565b6000613d1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c6c565b905092915050565b60008083118290613d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d589190615066565b60405180910390fd5b5060008385613d70919061539e565b9050809150509392505050565b6000613e08826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c6c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f3d9190615228565b60405180910390a3600190509392505050565b6001601a60146101000a81548160ff0219169083151502179055506000613f8460145460135461332590919063ffffffff16565b90506000613f9f601054600d5461332590919063ffffffff16565b90506000613fba601154600e5461332590919063ffffffff16565b90506000613ff66002613fe886613fda878a61326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b9050600061400d8287613cd090919063ffffffff16565b9050600047905061401d82614442565b60006140328247613cd090919063ffffffff16565b9050600061405c61404d6002896132db90919063ffffffff16565b89613cd090919063ffffffff16565b90506000614098600261408a8461407c8c8861326090919063ffffffff16565b6132db90919063ffffffff16565b6132db90919063ffffffff16565b905060006140c1836140b38a8761326090919063ffffffff16565b6132db90919063ffffffff16565b905060006140ea826140dc8588613cd090919063ffffffff16565b613cd090919063ffffffff16565b9050600082111561415f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561415d573d6000803e3d6000fd5b505b60008111156141d257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141d0573d6000803e3d6000fd5b505b6000831180156141e25750600088115b156141f2576141f188846146cd565b5b50505050505050505050506000601a60146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142a35761429c606461428e6013548661326090919063ffffffff16565b6132db90919063ffffffff16565b9050614321565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143205761431d606461430f6014548661326090919063ffffffff16565b6132db90919063ffffffff16565b90505b5b60008111156144255761437c81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161441c9190615228565b60405180910390a35b6144388184613cd090919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff81111561445f5761445e615676565b5b60405190808252806020026020018201604052801561448d5781602001602082028036833780820191505090505b50905030816000815181106144a5576144a4615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561454757600080fd5b505afa15801561455b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061457f9190614933565b8160018151811061459357614592615647565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506145fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161465e959493929190615273565b600060405180830381600087803b15801561467857600080fd5b505af115801561468c573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516146c1929190615243565b60405180910390a15050565b6146fa30601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461338b565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161478396959493929190614fcf565b6060604051808303818588803b15801561479c57600080fd5b505af11580156147b0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906147d59190614bce565b5050505050565b6000813590506147eb81615a17565b92915050565b60008151905061480081615a17565b92915050565b60008083601f84011261481c5761481b6156aa565b5b8235905067ffffffffffffffff811115614839576148386156a5565b5b602083019150836020820283011115614855576148546156af565b5b9250929050565b60008083601f840112614872576148716156aa565b5b8235905067ffffffffffffffff81111561488f5761488e6156a5565b5b6020830191508360208202830111156148ab576148aa6156af565b5b9250929050565b6000813590506148c181615a2e565b92915050565b6000815190506148d681615a2e565b92915050565b6000813590506148eb81615a45565b92915050565b60008151905061490081615a45565b92915050565b60006020828403121561491c5761491b6156b9565b5b600061492a848285016147dc565b91505092915050565b600060208284031215614949576149486156b9565b5b6000614957848285016147f1565b91505092915050565b60008060408385031215614977576149766156b9565b5b6000614985858286016147dc565b9250506020614996858286016147dc565b9150509250929050565b6000806000606084860312156149b9576149b86156b9565b5b60006149c7868287016147dc565b93505060206149d8868287016147dc565b92505060406149e9868287016148dc565b9150509250925092565b60008060408385031215614a0a57614a096156b9565b5b6000614a18858286016147dc565b9250506020614a29858286016148b2565b9150509250929050565b60008060408385031215614a4a57614a496156b9565b5b6000614a58858286016147dc565b9250506020614a69858286016148dc565b9150509250929050565b60008060008060408587031215614a8d57614a8c6156b9565b5b600085013567ffffffffffffffff811115614aab57614aaa6156b4565b5b614ab787828801614806565b9450945050602085013567ffffffffffffffff811115614ada57614ad96156b4565b5b614ae68782880161485c565b925092505092959194509250565b600060208284031215614b0a57614b096156b9565b5b6000614b18848285016148b2565b91505092915050565b600060208284031215614b3757614b366156b9565b5b6000614b45848285016148c7565b91505092915050565b600060208284031215614b6457614b636156b9565b5b6000614b72848285016148dc565b91505092915050565b600080600060608486031215614b9457614b936156b9565b5b6000614ba2868287016148dc565b9350506020614bb3868287016148dc565b9250506040614bc4868287016148dc565b9150509250925092565b600080600060608486031215614be757614be66156b9565b5b6000614bf5868287016148f1565b9350506020614c06868287016148f1565b9250506040614c17868287016148f1565b9150509250925092565b6000614c2d8383614c48565b60208301905092915050565b614c428161546f565b82525050565b614c518161545d565b82525050565b614c608161545d565b82525050565b6000614c71826152f8565b614c7b818561531b565b9350614c86836152e8565b8060005b83811015614cb7578151614c9e8882614c21565b9750614ca98361530e565b925050600181019050614c8a565b5085935050505092915050565b614ccd81615481565b82525050565b614cdc816154c4565b82525050565b614ceb816154d6565b82525050565b6000614cfc82615303565b614d068185615337565b9350614d1681856020860161550c565b614d1f816156be565b840191505092915050565b6000614d37602383615337565b9150614d42826156cf565b604082019050919050565b6000614d5a601b83615337565b9150614d658261571e565b602082019050919050565b6000614d7d602683615337565b9150614d8882615747565b604082019050919050565b6000614da0602283615337565b9150614dab82615796565b604082019050919050565b6000614dc3601b83615337565b9150614dce826157e5565b602082019050919050565b6000614de6602583615337565b9150614df18261580e565b604082019050919050565b6000614e09601d83615337565b9150614e148261585d565b602082019050919050565b6000614e2c602883615337565b9150614e3782615886565b604082019050919050565b6000614e4f602183615337565b9150614e5a826158d5565b604082019050919050565b6000614e72601683615337565b9150614e7d82615924565b602082019050919050565b6000614e95602083615337565b9150614ea08261594d565b602082019050919050565b6000614eb8602583615337565b9150614ec382615976565b604082019050919050565b6000614edb60008361532c565b9150614ee6826159c5565b600082019050919050565b6000614efe602483615337565b9150614f09826159c8565b604082019050919050565b614f1d816154ad565b82525050565b614f2c816154b7565b82525050565b6000614f3d82614ece565b9150819050919050565b6000602082019050614f5c6000830184614c57565b92915050565b6000602082019050614f776000830184614c39565b92915050565b6000604082019050614f926000830185614c57565b614f9f6020830184614c57565b9392505050565b6000604082019050614fbb6000830185614c57565b614fc86020830184614f14565b9392505050565b600060c082019050614fe46000830189614c57565b614ff16020830188614f14565b614ffe6040830187614ce2565b61500b6060830186614ce2565b6150186080830185614c57565b61502560a0830184614f14565b979650505050505050565b60006020820190506150456000830184614cc4565b92915050565b60006020820190506150606000830184614cd3565b92915050565b600060208201905081810360008301526150808184614cf1565b905092915050565b600060208201905081810360008301526150a181614d2a565b9050919050565b600060208201905081810360008301526150c181614d4d565b9050919050565b600060208201905081810360008301526150e181614d70565b9050919050565b6000602082019050818103600083015261510181614d93565b9050919050565b6000602082019050818103600083015261512181614db6565b9050919050565b6000602082019050818103600083015261514181614dd9565b9050919050565b6000602082019050818103600083015261516181614dfc565b9050919050565b6000602082019050818103600083015261518181614e1f565b9050919050565b600060208201905081810360008301526151a181614e42565b9050919050565b600060208201905081810360008301526151c181614e65565b9050919050565b600060208201905081810360008301526151e181614e88565b9050919050565b6000602082019050818103600083015261520181614eab565b9050919050565b6000602082019050818103600083015261522181614ef1565b9050919050565b600060208201905061523d6000830184614f14565b92915050565b60006040820190506152586000830185614f14565b818103602083015261526a8184614c66565b90509392505050565b600060a0820190506152886000830188614f14565b6152956020830187614ce2565b81810360408301526152a78186614c66565b90506152b66060830185614c57565b6152c36080830184614f14565b9695505050505050565b60006020820190506152e26000830184614f23565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000615353826154ad565b915061535e836154ad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615393576153926155ba565b5b828201905092915050565b60006153a9826154ad565b91506153b4836154ad565b9250826153c4576153c36155e9565b5b828204905092915050565b60006153da826154ad565b91506153e5836154ad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561541e5761541d6155ba565b5b828202905092915050565b6000615434826154ad565b915061543f836154ad565b925082821015615452576154516155ba565b5b828203905092915050565b60006154688261548d565b9050919050565b600061547a8261548d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154cf826154e8565b9050919050565b60006154e1826154ad565b9050919050565b60006154f3826154fa565b9050919050565b60006155058261548d565b9050919050565b60005b8381101561552a57808201518184015260208101905061550f565b83811115615539576000848401525b50505050565b6000600282049050600182168061555757607f821691505b6020821081141561556b5761556a615618565b5b50919050565b600061557c826154ad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156155af576155ae6155ba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20496e73756666696369656e74204572726f7221210000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b7f426f7420456e656d792061646472657373205265737472696374656421000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d69736d61746368204c656e67746800000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615a208161545d565b8114615a2b57600080fd5b50565b615a3781615481565b8114615a4257600080fd5b50565b615a4e816154ad565b8114615a5957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220894b72316f4743cdda4b02bf1d124f13311d5663dd9113286f346f0cce5ab60564736f6c63430008070033
Deployed Bytecode Sourcemap
13005:16562:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17005:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22078:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13544:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18171:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20746:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14677:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17282:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21761:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19104:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14119:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22672:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19481:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13456:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20582:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17191:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17668:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19712:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13818:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14792:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19844:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14253:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13761:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21005:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28859:697;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17390:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4682:230;;;;;;;;;;;;;:::i;:::-;;13213:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14531:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14603:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14337:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18685:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14935:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14167:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13978:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4457:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17096:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13411:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17894:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20445:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22497:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20266:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14077:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14725:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14210:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13919:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19984:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14442:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14839:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14035:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17517:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25034:154;;;;;;;;;;;;;:::i;:::-;;19362:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19247:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18822:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14298:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19602:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4920:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24887:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18965:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14893:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13312:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13870:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20126:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17005:83;17042:13;17075:5;17068:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17005:83;:::o;22078:317::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22200:10:::1;22180:17;:30;;;;22241:10;22221:17;:30;;;;22282:10;22262:17;:30;;;;22324:63;22369:17;;22324:40;22346:17;;22324;;:21;;:40;;;;:::i;:::-;:44;;:63;;;;:::i;:::-;22303:18;:84;;;;22078:317:::0;;;:::o;13544:81::-;;;:::o;18171:161::-;18246:4;18263:39;18272:12;:10;:12::i;:::-;18286:7;18295:6;18263:8;:39::i;:::-;18320:4;18313:11;;18171:161;;;;:::o;20746:113::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20844:7:::1;20826:9;:15;20836:4;20826:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20746:113:::0;;:::o;14677:41::-;;;;;;;;;;;;;:::o;17282:100::-;17335:7;17362:12;;17355:19;;17282:100;:::o;21761:309::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21881:10:::1;21862:16;:29;;;;21921:10;21902:16;:29;;;;21961:10;21942:16;:29;;;;22002:60;22045:16;;22002:38;22023:16;;22002;;:20;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;21982:17;:80;;;;21761:309:::0;;;:::o;19104:135::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19225:6:::1;19195:19;:27;19215:6;19195:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19104:135:::0;;:::o;14119:35::-;;;;:::o;22672:313::-;22770:4;22787:36;22797:6;22805:9;22816:6;22787:9;:36::i;:::-;;22834:121;22843:6;22851:12;:10;:12::i;:::-;22865:89;22903:6;22865:89;;;;;;;;;;;;;;;;;:11;:19;22877:6;22865:19;;;;;;;;;;;;;;;:33;22885:12;:10;:12::i;:::-;22865:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22834:8;:121::i;:::-;22973:4;22966:11;;22672:313;;;;;:::o;19481:113::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19578:8:::1;19559:16;;:27;;;;;;;;;;;;;;;;;;19481:113:::0;:::o;13456:81::-;;;:::o;20582:156::-;20635:7;20662:68;20707:22;20717:11;20707:9;:22::i;:::-;20662:40;20679:22;20689:11;20679:9;:22::i;:::-;20662:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;20655:75;;20582:156;:::o;17191:83::-;17232:5;17257:9;;;;;;;;;;;17250:16;;17191:83;:::o;17668:218::-;17756:4;17773:83;17782:12;:10;:12::i;:::-;17796:7;17805:50;17844:10;17805:11;:25;17817:12;:10;:12::i;:::-;17805:25;;;;;;;;;;;;;;;:34;17831:7;17805:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17773:8;:83::i;:::-;17874:4;17867:11;;17668:218;;;;:::o;19712:124::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19820:8:::1;19794:23;:34;;;;19712:124:::0;:::o;13818:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14792:40::-;;;;;;;;;;;;;:::o;19844:132::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19957:10:::1;19931:15;;:37;;;;;;;;;;;;;;;;;;19844:132:::0;:::o;14253:36::-;;;;:::o;13761:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;21005:748::-;21085:22;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21122:35:::1;21179:16;21122:74;;21245:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21227:53;;;21289:4;21296:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21227:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21210:110;;21362:1;21336:28;;:14;:28;;;21333:225;;;21450:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21432:74;;;21515:4;21522:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21432:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21415:131;;21333:225;21584:14;21570:11;;:28;;;;;;;;;;;;;;;;;;21650:16;21632:15;;:34;;;;;;;;;;;;;;;;;;21741:4;21704:12;:34;21725:11;;;;;;;;;;;21704:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;21109:644;21005:748:::0;;;:::o;28859:697::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28959:15:::1;28977:10;28959:28;;29025:7;;:14;;29006:8;;:15;;:33;28998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29076:15;29106:6:::0;29115:1:::1;29106:10;;29102:92;29122:7;;:14;;29118:1;:18;29102:92;;;29172:7;;29180:1;29172:10;;;;;;;:::i;:::-;;;;;;;;29158:24;;;;;:::i;:::-;;;29138:3;;;;;:::i;:::-;;;;29102:92;;;;29234:10;29212:18;29222:7;29212:9;:18::i;:::-;:32;;29204:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;29307:34;29330:10;29307:9;:18;29317:7;29307:18;;;;;;;;;;;;;;;;:22;;:34;;;;:::i;:::-;29286:9;:18;29296:7;29286:18;;;;;;;;;;;;;;;:55;;;;29357:6;29353:194;29373:8;;:15;;29369:1;:19;29353:194;;;29435:38;29462:7;;29470:1;29462:10;;;;;;;:::i;:::-;;;;;;;;29435:9;:22;29445:8;;29454:1;29445:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;29435:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;29410:9;:22;29420:8;;29429:1;29420:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;29410:22;;;;;;;;;;;;;;;:63;;;;29511:8;;29520:1;29511:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;29493:42;;29502:7;29493:42;;;29524:7;;29532:1;29524:10;;;;;;;:::i;:::-;;;;;;;;29493:42;;;;;;:::i;:::-;;;;;;;;29390:3;;;;;:::i;:::-;;;;29353:194;;;;28948:608;;28859:697:::0;;;;:::o;17390:119::-;17456:7;17483:9;:18;17493:7;17483:18;;;;;;;;;;;;;;;;17476:25;;17390:119;;;:::o;4682:230::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4789:42:::1;4752:81;;4773:6;::::0;::::1;;;;;;;;4752:81;;;;;;;;;;;;4861:42;4844:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;4682:230::o:0;13213:92::-;;;;;;;;;;;;;:::o;14531:59::-;;;;:::o;14603:58::-;;;;:::o;14337:33::-;;;;:::o;18685:129::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18798:8:::1;18774:12;:21;18787:7;18774:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18685:129:::0;;:::o;14935:41::-;;;;;;;;;;;;;:::o;14167:36::-;;;;:::o;13978:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;4457:79::-;4495:7;4522:6;;;;;;;;;;;4515:13;;4457:79;:::o;17096:87::-;17135:13;17168:7;17161:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17096:87;:::o;13411:32::-;;;;;;;;;;;;;:::o;17894:269::-;17987:4;18004:129;18013:12;:10;:12::i;:::-;18027:7;18036:96;18075:15;18036:96;;;;;;;;;;;;;;;;;:11;:25;18048:12;:10;:12::i;:::-;18036:25;;;;;;;;;;;;;;;:34;18062:7;18036:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18004:8;:129::i;:::-;18151:4;18144:11;;17894:269;;;;:::o;20445:125::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20554:8:::1;20526:25;;:36;;;;;;;;;;;;;;;;;;20445:125:::0;:::o;22497:167::-;22575:4;22592:42;22602:12;:10;:12::i;:::-;22616:9;22627:6;22592:9;:42::i;:::-;;22652:4;22645:11;;22497:167;;;;:::o;20266:171::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20367:8:::1;20343:21;;:32;;;;;;;;;;;;;;;;;;20391:38;20420:8;20391:38;;;;;;:::i;:::-;;;;;;;;20266:171:::0;:::o;14077:35::-;;;;:::o;14725:26::-;;;;;;;;;;;;;:::o;14210:36::-;;;;:::o;13919:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;19984:134::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20099:10:::1;20071:17;;:39;;;;;;;;;;;;;;;;;;19984:134:::0;:::o;14442:69::-;;;;:::o;14839:45::-;;;;;;;;;;;;;:::o;14035:35::-;;;;:::o;17517:143::-;17598:7;17625:11;:18;17637:5;17625:18;;;;;;;;;;;;;;;:27;17644:7;17625:27;;;;;;;;;;;;;;;;17618:34;;17517:143;;;;:::o;25034:154::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25088:7:::1;25108:10;25100:24;;25132:21;25100:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25087:71;;;25177:2;25169:11;;;::::0;::::1;;25076:112;25034:154::o:0;19362:111::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19454:11:::1;19439:12;:26;;;;19362:111:::0;:::o;19247:107::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19339:7:::1;19314:22;;:32;;;;;;;;;;;;;;;;;;19247:107:::0;:::o;18822:135::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18941:8:::1;18912:17;:26;18930:7;18912:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18822:135:::0;;:::o;14298:32::-;;;;:::o;19602:102::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19688:8:::1;19674:10;:22;;;;19602:102:::0;:::o;4920:244::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5029:1:::1;5009:22;;:8;:22;;;;5001:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5119:8;5090:38;;5111:6;::::0;::::1;;;;;;;;5090:38;;;;;;;;;;;;5148:8;5139:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4920:244:::0;:::o;24887:139::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24982:6:::1;24975:23;;;24999:10;25010:7;24975:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24887:139:::0;;:::o;18965:127::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19078:6:::1;19052:15;:23;19068:6;19052:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18965:127:::0;;:::o;14893:35::-;;;;;;;;;;;;;:::o;13312:92::-;;;;;;;;;;;;;:::o;13870:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;20126:132::-;4601:12;:10;:12::i;:::-;4591:22;;:6;;;;;;;;;;:22;;;4583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20239:10:::1;20213:15;;:37;;;;;;;;;;;;;;;;;;20126:132:::0;:::o;3142:250::-;3200:7;3229:1;3224;:6;3220:47;;;3254:1;3247:8;;;;3220:47;3279:9;3295:1;3291;:5;;;;:::i;:::-;3279:17;;3324:1;3319;3315;:5;;;;:::i;:::-;:10;3307:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3383:1;3376:8;;;3142:250;;;;;:::o;3400:132::-;3458:7;3485:39;3489:1;3492;3485:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3478:46;;3400:132;;;;:::o;2609:181::-;2667:7;2687:9;2703:1;2699;:5;;;;:::i;:::-;2687:17;;2728:1;2723;:6;;2715:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:1;2774:8;;;2609:181;;;;:::o;1667:115::-;1720:15;1763:10;1748:26;;1667:115;:::o;18340:337::-;18450:1;18433:19;;:5;:19;;;;18425:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18531:1;18512:21;;:7;:21;;;;18504:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18615:6;18585:11;:18;18597:5;18585:18;;;;;;;;;;;;;;;:27;18604:7;18585:27;;;;;;;;;;;;;;;:36;;;;18653:7;18637:32;;18646:5;18637:32;;;18662:6;18637:32;;;;;;:::i;:::-;;;;;;;;18340:337;;;:::o;22993:1886::-;23080:4;23125:1;23107:20;;:6;:20;;;;23099:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23209:1;23188:23;;:9;:23;;;;23180:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23271:9;:17;23281:6;23271:17;;;;;;;;;;;;;;;;;;;;;;;;;23270:18;:43;;;;;23293:9;:20;23303:9;23293:20;;;;;;;;;;;;;;;;;;;;;;;;;23292:21;23270:43;23262:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;23363:16;;;;;;;;;;;23360:1502;;;23413:41;23428:6;23436:9;23447:6;23413:14;:41::i;:::-;23406:48;;;;23360:1502;23512:15;:23;23528:6;23512:23;;;;;;;;;;;;;;;;;;;;;;;;;23511:24;:55;;;;;23540:15;:26;23556:9;23540:26;;;;;;;;;;;;;;;;;;;;;;;;;23539:27;23511:55;:81;;;;;23570:22;;;;;;;;;;;23511:81;23508:196;;;23631:12;;23621:6;:22;;23613:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;23508:196;23720:28;23751:24;23769:4;23751:9;:24::i;:::-;23720:55;;23790:28;23845:23;;23821:20;:47;;23790:78;;23901:23;:44;;;;;23929:16;;;;;;;;;;;23928:17;23901:44;:69;;;;;23950:12;:20;23963:6;23950:20;;;;;;;;;;;;;;;;;;;;;;;;;23949:21;23901:69;:94;;;;;23974:21;;;;;;;;;;;23901:94;23897:305;;;24033:25;;;;;;;;;;;24030:97;;;24104:23;;24081:46;;24030:97;24146:36;24161:20;24146:14;:36::i;:::-;23897:305;24238:53;24260:6;24238:53;;;;;;;;;;;;;;;;;:9;:17;24248:6;24238:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24218:9;:17;24228:6;24218:17;;;;;;;;;;;;;;;:73;;;;24308:19;24331:17;:25;24349:6;24331:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;24360:17;:28;24378:9;24360:28;;;;;;;;;;;;;;;;;;;;;;;;;24331:57;24330:148;;24444:34;24452:6;24460:9;24471:6;24444:7;:34::i;:::-;24330:148;;;24435:6;24330:148;24308:170;;24498:16;;;;;;;;;;;:51;;;;;24519:19;:30;24539:9;24519:30;;;;;;;;;;;;;;;;;;;;;;;;;24518:31;24498:51;24495:191;;;24619:10;;24578:37;24603:11;24578:20;24588:9;24578;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;24570:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;24495:191;24725:37;24750:11;24725:9;:20;24735:9;24725:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;24702:9;:20;24712:9;24702:20;;;;;;;;;;;;;;;:60;;;;24801:9;24784:40;;24793:6;24784:40;;;24812:11;24784:40;;;;;;:::i;:::-;;;;;;;;24846:4;24839:11;;;;;22993:1886;;;;;;:::o;2942:192::-;3028:7;3061:1;3056;:6;;3064:12;3048:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3088:9;3104:1;3100;:5;;;;:::i;:::-;3088:17;;3125:1;3118:8;;;2942:192;;;;;:::o;2798:136::-;2856:7;2883:43;2887:1;2890;2883:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2876:50;;2798:136;;;;:::o;3540:278::-;3626:7;3658:1;3654;:5;3661:12;3646:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3685:9;3701:1;3697;:5;;;;:::i;:::-;3685:17;;3809:1;3802:8;;;3540:278;;;;;:::o;25196:330::-;25289:4;25326:53;25348:6;25326:53;;;;;;;;;;;;;;;;;:9;:17;25336:6;25326:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25306:9;:17;25316:6;25306:17;;;;;;;;;;;;;;;:73;;;;25413:32;25438:6;25413:9;:20;25423:9;25413:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25390:9;:20;25400:9;25390:20;;;;;;;;;;;;;;;:55;;;;25478:9;25461:35;;25470:6;25461:35;;;25489:6;25461:35;;;;;;:::i;:::-;;;;;;;;25514:4;25507:11;;25196:330;;;;;:::o;25534:1449::-;15420:4;15401:16;;:23;;;;;;;;;;;;;;;;;;25608:19:::1;25630:41;25652:18;;25630:17;;:21;;:41;;;;:::i;:::-;25608:63;;25684:22;25709:39;25730:17;;25709:16;;:20;;:39;;;;:::i;:::-;25684:64;;25759:22;25784:39;25805:17;;25784:16;;:20;;:39;;;;:::i;:::-;25759:64;;25922:18;25943:51;25992:1;25943:44;25975:11;25943:27;25955:14;25943:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;25922:72;;26005:20;26028:23;26040:10;26028:7;:11;;:23;;;;:::i;:::-;26005:46;;26064:22;26090:21;26064:47;;26122:30;26139:12;26122:16;:30::i;:::-;26163:23;26190:41;26216:14;26190:21;:25;;:41;;;;:::i;:::-;26163:68;;26244:19;26266:38;26282:21;26301:1;26282:14;:18;;:21;;;;:::i;:::-;26266:11;:15;;:38;;;;:::i;:::-;26244:60;;26317:26;26346:59;26403:1;26346:52;26386:11;26346:35;26366:14;26346:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;26317:88;;26416:26;26445:52;26485:11;26445:35;26465:14;26445:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;26416:81;;26508:26;26537:63;26581:18;26537:39;26557:18;26537:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;26508:92;;26637:1;26616:18;:22;26613:107;;;26663:15;;;;;;;;;;;26655:33;;:53;26689:18;26655:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;26613:107;26756:1;26735:18;:22;26732:107;;;26782:15;;;;;;;;;;;26774:33;;:53;26808:18;26774:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;26732:107;26884:1;26863:18;:22;:40;;;;;26902:1;26889:10;:14;26863:40;26860:116;;;26920:44;26933:10;26945:18;26920:12;:44::i;:::-;26860:116;25595:1388;;;;;;;;;;;15466:5:::0;15447:16;;:24;;;;;;;;;;;;;;;;;;25534:1449;:::o;28200:622::-;28286:7;28316:17;28336:1;28316:21;;28361:12;:20;28374:6;28361:20;;;;;;;;;;;;;;;;;;;;;;;;;28358:223;;;28410:38;28444:3;28410:29;28421:17;;28410:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;28398:50;;28358:223;;;28478:12;:23;28491:9;28478:23;;;;;;;;;;;;;;;;;;;;;;;;;28475:106;;;28530:39;28565:3;28530:30;28541:18;;28530:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;28518:51;;28475:106;28358:223;28616:1;28604:9;:13;28601:173;;;28661:39;28690:9;28661;:24;28679:4;28661:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;28634:9;:24;28652:4;28634:24;;;;;;;;;;;;;;;:66;;;;28745:4;28720:42;;28729:6;28720:42;;;28752:9;28720:42;;;;;;:::i;:::-;;;;;;;;28601:173;28793:21;28804:9;28793:6;:10;;:21;;;;:::i;:::-;28786:28;;;28200:622;;;;;:::o;26995:666::-;27121:21;27159:1;27145:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27121:40;;27190:4;27172;27177:1;27172:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27216:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27206:4;27211:1;27206:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27251:62;27268:4;27283:15;;;;;;;;;;;27301:11;27251:8;:62::i;:::-;27352:15;;;;;;;;;;;:66;;;27433:11;27459:1;27503:4;27530;27566:15;27352:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27618:35;27635:11;27648:4;27618:35;;;;;;;:::i;:::-;;;;;;;;27050:611;26995:666;:::o;27669:523::-;27817:62;27834:4;27849:15;;;;;;;;;;;27867:11;27817:8;:62::i;:::-;27922:15;;;;;;;;;;;:31;;;27961:9;27994:4;28014:11;28040:1;28083;28126:17;;;;;;;;;;;28158:15;27922:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27669:523;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;909:::-;982:8;992:6;1042:3;1035:4;1027:6;1023:17;1019:27;1009:122;;1050:79;;:::i;:::-;1009:122;1163:6;1150:20;1140:30;;1193:18;1185:6;1182:30;1179:117;;;1215:79;;:::i;:::-;1179:117;1329:4;1321:6;1317:17;1305:29;;1383:3;1375:4;1367:6;1363:17;1353:8;1349:32;1346:41;1343:128;;;1390:79;;:::i;:::-;1343:128;909:568;;;;;:::o;1483:133::-;1526:5;1564:6;1551:20;1542:29;;1580:30;1604:5;1580:30;:::i;:::-;1483:133;;;;:::o;1622:137::-;1676:5;1707:6;1701:13;1692:22;;1723:30;1747:5;1723:30;:::i;:::-;1622:137;;;;:::o;1765:139::-;1811:5;1849:6;1836:20;1827:29;;1865:33;1892:5;1865:33;:::i;:::-;1765:139;;;;:::o;1910:143::-;1967:5;1998:6;1992:13;1983:22;;2014:33;2041:5;2014:33;:::i;:::-;1910:143;;;;:::o;2059:329::-;2118:6;2167:2;2155:9;2146:7;2142:23;2138:32;2135:119;;;2173:79;;:::i;:::-;2135:119;2293:1;2318:53;2363:7;2354:6;2343:9;2339:22;2318:53;:::i;:::-;2308:63;;2264:117;2059:329;;;;:::o;2394:351::-;2464:6;2513:2;2501:9;2492:7;2488:23;2484:32;2481:119;;;2519:79;;:::i;:::-;2481:119;2639:1;2664:64;2720:7;2711:6;2700:9;2696:22;2664:64;:::i;:::-;2654:74;;2610:128;2394:351;;;;:::o;2751:474::-;2819:6;2827;2876:2;2864:9;2855:7;2851:23;2847:32;2844:119;;;2882:79;;:::i;:::-;2844:119;3002:1;3027:53;3072:7;3063:6;3052:9;3048:22;3027:53;:::i;:::-;3017:63;;2973:117;3129:2;3155:53;3200:7;3191:6;3180:9;3176:22;3155:53;:::i;:::-;3145:63;;3100:118;2751:474;;;;;:::o;3231:619::-;3308:6;3316;3324;3373:2;3361:9;3352:7;3348:23;3344:32;3341:119;;;3379:79;;:::i;:::-;3341:119;3499:1;3524:53;3569:7;3560:6;3549:9;3545:22;3524:53;:::i;:::-;3514:63;;3470:117;3626:2;3652:53;3697:7;3688:6;3677:9;3673:22;3652:53;:::i;:::-;3642:63;;3597:118;3754:2;3780:53;3825:7;3816:6;3805:9;3801:22;3780:53;:::i;:::-;3770:63;;3725:118;3231:619;;;;;:::o;3856:468::-;3921:6;3929;3978:2;3966:9;3957:7;3953:23;3949:32;3946:119;;;3984:79;;:::i;:::-;3946:119;4104:1;4129:53;4174:7;4165:6;4154:9;4150:22;4129:53;:::i;:::-;4119:63;;4075:117;4231:2;4257:50;4299:7;4290:6;4279:9;4275:22;4257:50;:::i;:::-;4247:60;;4202:115;3856:468;;;;;:::o;4330:474::-;4398:6;4406;4455:2;4443:9;4434:7;4430:23;4426:32;4423:119;;;4461:79;;:::i;:::-;4423:119;4581:1;4606:53;4651:7;4642:6;4631:9;4627:22;4606:53;:::i;:::-;4596:63;;4552:117;4708:2;4734:53;4779:7;4770:6;4759:9;4755:22;4734:53;:::i;:::-;4724:63;;4679:118;4330:474;;;;;:::o;4810:934::-;4932:6;4940;4948;4956;5005:2;4993:9;4984:7;4980:23;4976:32;4973:119;;;5011:79;;:::i;:::-;4973:119;5159:1;5148:9;5144:17;5131:31;5189:18;5181:6;5178:30;5175:117;;;5211:79;;:::i;:::-;5175:117;5324:80;5396:7;5387:6;5376:9;5372:22;5324:80;:::i;:::-;5306:98;;;;5102:312;5481:2;5470:9;5466:18;5453:32;5512:18;5504:6;5501:30;5498:117;;;5534:79;;:::i;:::-;5498:117;5647:80;5719:7;5710:6;5699:9;5695:22;5647:80;:::i;:::-;5629:98;;;;5424:313;4810:934;;;;;;;:::o;5750:323::-;5806:6;5855:2;5843:9;5834:7;5830:23;5826:32;5823:119;;;5861:79;;:::i;:::-;5823:119;5981:1;6006:50;6048:7;6039:6;6028:9;6024:22;6006:50;:::i;:::-;5996:60;;5952:114;5750:323;;;;:::o;6079:345::-;6146:6;6195:2;6183:9;6174:7;6170:23;6166:32;6163:119;;;6201:79;;:::i;:::-;6163:119;6321:1;6346:61;6399:7;6390:6;6379:9;6375:22;6346:61;:::i;:::-;6336:71;;6292:125;6079:345;;;;:::o;6430:329::-;6489:6;6538:2;6526:9;6517:7;6513:23;6509:32;6506:119;;;6544:79;;:::i;:::-;6506:119;6664:1;6689:53;6734:7;6725:6;6714:9;6710:22;6689:53;:::i;:::-;6679:63;;6635:117;6430:329;;;;:::o;6765:619::-;6842:6;6850;6858;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:53;7103:7;7094:6;7083:9;7079:22;7058:53;:::i;:::-;7048:63;;7004:117;7160:2;7186:53;7231:7;7222:6;7211:9;7207:22;7186:53;:::i;:::-;7176:63;;7131:118;7288:2;7314:53;7359:7;7350:6;7339:9;7335:22;7314:53;:::i;:::-;7304:63;;7259:118;6765:619;;;;;:::o;7390:663::-;7478:6;7486;7494;7543:2;7531:9;7522:7;7518:23;7514:32;7511:119;;;7549:79;;:::i;:::-;7511:119;7669:1;7694:64;7750:7;7741:6;7730:9;7726:22;7694:64;:::i;:::-;7684:74;;7640:128;7807:2;7833:64;7889:7;7880:6;7869:9;7865:22;7833:64;:::i;:::-;7823:74;;7778:129;7946:2;7972:64;8028:7;8019:6;8008:9;8004:22;7972:64;:::i;:::-;7962:74;;7917:129;7390:663;;;;;:::o;8059:179::-;8128:10;8149:46;8191:3;8183:6;8149:46;:::i;:::-;8227:4;8222:3;8218:14;8204:28;;8059:179;;;;:::o;8244:142::-;8347:32;8373:5;8347:32;:::i;:::-;8342:3;8335:45;8244:142;;:::o;8392:108::-;8469:24;8487:5;8469:24;:::i;:::-;8464:3;8457:37;8392:108;;:::o;8506:118::-;8593:24;8611:5;8593:24;:::i;:::-;8588:3;8581:37;8506:118;;:::o;8660:732::-;8779:3;8808:54;8856:5;8808:54;:::i;:::-;8878:86;8957:6;8952:3;8878:86;:::i;:::-;8871:93;;8988:56;9038:5;8988:56;:::i;:::-;9067:7;9098:1;9083:284;9108:6;9105:1;9102:13;9083:284;;;9184:6;9178:13;9211:63;9270:3;9255:13;9211:63;:::i;:::-;9204:70;;9297:60;9350:6;9297:60;:::i;:::-;9287:70;;9143:224;9130:1;9127;9123:9;9118:14;;9083:284;;;9087:14;9383:3;9376:10;;8784:608;;;8660:732;;;;:::o;9398:109::-;9479:21;9494:5;9479:21;:::i;:::-;9474:3;9467:34;9398:109;;:::o;9513:185::-;9627:64;9685:5;9627:64;:::i;:::-;9622:3;9615:77;9513:185;;:::o;9704:147::-;9799:45;9838:5;9799:45;:::i;:::-;9794:3;9787:58;9704:147;;:::o;9857:364::-;9945:3;9973:39;10006:5;9973:39;:::i;:::-;10028:71;10092:6;10087:3;10028:71;:::i;:::-;10021:78;;10108:52;10153:6;10148:3;10141:4;10134:5;10130:16;10108:52;:::i;:::-;10185:29;10207:6;10185:29;:::i;:::-;10180:3;10176:39;10169:46;;9949:272;9857:364;;;;:::o;10227:366::-;10369:3;10390:67;10454:2;10449:3;10390:67;:::i;:::-;10383:74;;10466:93;10555:3;10466:93;:::i;:::-;10584:2;10579:3;10575:12;10568:19;;10227:366;;;:::o;10599:::-;10741:3;10762:67;10826:2;10821:3;10762:67;:::i;:::-;10755:74;;10838:93;10927:3;10838:93;:::i;:::-;10956:2;10951:3;10947:12;10940:19;;10599:366;;;:::o;10971:::-;11113:3;11134:67;11198:2;11193:3;11134:67;:::i;:::-;11127:74;;11210:93;11299:3;11210:93;:::i;:::-;11328:2;11323:3;11319:12;11312:19;;10971:366;;;:::o;11343:::-;11485:3;11506:67;11570:2;11565:3;11506:67;:::i;:::-;11499:74;;11582:93;11671:3;11582:93;:::i;:::-;11700:2;11695:3;11691:12;11684:19;;11343:366;;;:::o;11715:::-;11857:3;11878:67;11942:2;11937:3;11878:67;:::i;:::-;11871:74;;11954:93;12043:3;11954:93;:::i;:::-;12072:2;12067:3;12063:12;12056:19;;11715:366;;;:::o;12087:::-;12229:3;12250:67;12314:2;12309:3;12250:67;:::i;:::-;12243:74;;12326:93;12415:3;12326:93;:::i;:::-;12444:2;12439:3;12435:12;12428:19;;12087:366;;;:::o;12459:::-;12601:3;12622:67;12686:2;12681:3;12622:67;:::i;:::-;12615:74;;12698:93;12787:3;12698:93;:::i;:::-;12816:2;12811:3;12807:12;12800:19;;12459:366;;;:::o;12831:::-;12973:3;12994:67;13058:2;13053:3;12994:67;:::i;:::-;12987:74;;13070:93;13159:3;13070:93;:::i;:::-;13188:2;13183:3;13179:12;13172:19;;12831:366;;;:::o;13203:::-;13345:3;13366:67;13430:2;13425:3;13366:67;:::i;:::-;13359:74;;13442:93;13531:3;13442:93;:::i;:::-;13560:2;13555:3;13551:12;13544:19;;13203:366;;;:::o;13575:::-;13717:3;13738:67;13802:2;13797:3;13738:67;:::i;:::-;13731:74;;13814:93;13903:3;13814:93;:::i;:::-;13932:2;13927:3;13923:12;13916:19;;13575:366;;;:::o;13947:::-;14089:3;14110:67;14174:2;14169:3;14110:67;:::i;:::-;14103:74;;14186:93;14275:3;14186:93;:::i;:::-;14304:2;14299:3;14295:12;14288:19;;13947:366;;;:::o;14319:::-;14461:3;14482:67;14546:2;14541:3;14482:67;:::i;:::-;14475:74;;14558:93;14647:3;14558:93;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14319:366;;;:::o;14691:398::-;14850:3;14871:83;14952:1;14947:3;14871:83;:::i;:::-;14864:90;;14963:93;15052:3;14963:93;:::i;:::-;15081:1;15076:3;15072:11;15065:18;;14691:398;;;:::o;15095:366::-;15237:3;15258:67;15322:2;15317:3;15258:67;:::i;:::-;15251:74;;15334:93;15423:3;15334:93;:::i;:::-;15452:2;15447:3;15443:12;15436:19;;15095:366;;;:::o;15467:118::-;15554:24;15572:5;15554:24;:::i;:::-;15549:3;15542:37;15467:118;;:::o;15591:112::-;15674:22;15690:5;15674:22;:::i;:::-;15669:3;15662:35;15591:112;;:::o;15709:379::-;15893:3;15915:147;16058:3;15915:147;:::i;:::-;15908:154;;16079:3;16072:10;;15709:379;;;:::o;16094:222::-;16187:4;16225:2;16214:9;16210:18;16202:26;;16238:71;16306:1;16295:9;16291:17;16282:6;16238:71;:::i;:::-;16094:222;;;;:::o;16322:254::-;16431:4;16469:2;16458:9;16454:18;16446:26;;16482:87;16566:1;16555:9;16551:17;16542:6;16482:87;:::i;:::-;16322:254;;;;:::o;16582:332::-;16703:4;16741:2;16730:9;16726:18;16718:26;;16754:71;16822:1;16811:9;16807:17;16798:6;16754:71;:::i;:::-;16835:72;16903:2;16892:9;16888:18;16879:6;16835:72;:::i;:::-;16582:332;;;;;:::o;16920:::-;17041:4;17079:2;17068:9;17064:18;17056:26;;17092:71;17160:1;17149:9;17145:17;17136:6;17092:71;:::i;:::-;17173:72;17241:2;17230:9;17226:18;17217:6;17173:72;:::i;:::-;16920:332;;;;;:::o;17258:807::-;17507:4;17545:3;17534:9;17530:19;17522:27;;17559:71;17627:1;17616:9;17612:17;17603:6;17559:71;:::i;:::-;17640:72;17708:2;17697:9;17693:18;17684:6;17640:72;:::i;:::-;17722:80;17798:2;17787:9;17783:18;17774:6;17722:80;:::i;:::-;17812;17888:2;17877:9;17873:18;17864:6;17812:80;:::i;:::-;17902:73;17970:3;17959:9;17955:19;17946:6;17902:73;:::i;:::-;17985;18053:3;18042:9;18038:19;18029:6;17985:73;:::i;:::-;17258:807;;;;;;;;;:::o;18071:210::-;18158:4;18196:2;18185:9;18181:18;18173:26;;18209:65;18271:1;18260:9;18256:17;18247:6;18209:65;:::i;:::-;18071:210;;;;:::o;18287:276::-;18407:4;18445:2;18434:9;18430:18;18422:26;;18458:98;18553:1;18542:9;18538:17;18529:6;18458:98;:::i;:::-;18287:276;;;;:::o;18569:313::-;18682:4;18720:2;18709:9;18705:18;18697:26;;18769:9;18763:4;18759:20;18755:1;18744:9;18740:17;18733:47;18797:78;18870:4;18861:6;18797:78;:::i;:::-;18789:86;;18569:313;;;;:::o;18888:419::-;19054:4;19092:2;19081:9;19077:18;19069:26;;19141:9;19135:4;19131:20;19127:1;19116:9;19112:17;19105:47;19169:131;19295:4;19169:131;:::i;:::-;19161:139;;18888:419;;;:::o;19313:::-;19479:4;19517:2;19506:9;19502:18;19494:26;;19566:9;19560:4;19556:20;19552:1;19541:9;19537:17;19530:47;19594:131;19720:4;19594:131;:::i;:::-;19586:139;;19313:419;;;:::o;19738:::-;19904:4;19942:2;19931:9;19927:18;19919:26;;19991:9;19985:4;19981:20;19977:1;19966:9;19962:17;19955:47;20019:131;20145:4;20019:131;:::i;:::-;20011:139;;19738:419;;;:::o;20163:::-;20329:4;20367:2;20356:9;20352:18;20344:26;;20416:9;20410:4;20406:20;20402:1;20391:9;20387:17;20380:47;20444:131;20570:4;20444:131;:::i;:::-;20436:139;;20163:419;;;:::o;20588:::-;20754:4;20792:2;20781:9;20777:18;20769:26;;20841:9;20835:4;20831:20;20827:1;20816:9;20812:17;20805:47;20869:131;20995:4;20869:131;:::i;:::-;20861:139;;20588:419;;;:::o;21013:::-;21179:4;21217:2;21206:9;21202:18;21194:26;;21266:9;21260:4;21256:20;21252:1;21241:9;21237:17;21230:47;21294:131;21420:4;21294:131;:::i;:::-;21286:139;;21013:419;;;:::o;21438:::-;21604:4;21642:2;21631:9;21627:18;21619:26;;21691:9;21685:4;21681:20;21677:1;21666:9;21662:17;21655:47;21719:131;21845:4;21719:131;:::i;:::-;21711:139;;21438:419;;;:::o;21863:::-;22029:4;22067:2;22056:9;22052:18;22044:26;;22116:9;22110:4;22106:20;22102:1;22091:9;22087:17;22080:47;22144:131;22270:4;22144:131;:::i;:::-;22136:139;;21863:419;;;:::o;22288:::-;22454:4;22492:2;22481:9;22477:18;22469:26;;22541:9;22535:4;22531:20;22527:1;22516:9;22512:17;22505:47;22569:131;22695:4;22569:131;:::i;:::-;22561:139;;22288:419;;;:::o;22713:::-;22879:4;22917:2;22906:9;22902:18;22894:26;;22966:9;22960:4;22956:20;22952:1;22941:9;22937:17;22930:47;22994:131;23120:4;22994:131;:::i;:::-;22986:139;;22713:419;;;:::o;23138:::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23138:419;;;:::o;23563:::-;23729:4;23767:2;23756:9;23752:18;23744:26;;23816:9;23810:4;23806:20;23802:1;23791:9;23787:17;23780:47;23844:131;23970:4;23844:131;:::i;:::-;23836:139;;23563:419;;;:::o;23988:::-;24154:4;24192:2;24181:9;24177:18;24169:26;;24241:9;24235:4;24231:20;24227:1;24216:9;24212:17;24205:47;24269:131;24395:4;24269:131;:::i;:::-;24261:139;;23988:419;;;:::o;24413:222::-;24506:4;24544:2;24533:9;24529:18;24521:26;;24557:71;24625:1;24614:9;24610:17;24601:6;24557:71;:::i;:::-;24413:222;;;;:::o;24641:483::-;24812:4;24850:2;24839:9;24835:18;24827:26;;24863:71;24931:1;24920:9;24916:17;24907:6;24863:71;:::i;:::-;24981:9;24975:4;24971:20;24966:2;24955:9;24951:18;24944:48;25009:108;25112:4;25103:6;25009:108;:::i;:::-;25001:116;;24641:483;;;;;:::o;25130:831::-;25393:4;25431:3;25420:9;25416:19;25408:27;;25445:71;25513:1;25502:9;25498:17;25489:6;25445:71;:::i;:::-;25526:80;25602:2;25591:9;25587:18;25578:6;25526:80;:::i;:::-;25653:9;25647:4;25643:20;25638:2;25627:9;25623:18;25616:48;25681:108;25784:4;25775:6;25681:108;:::i;:::-;25673:116;;25799:72;25867:2;25856:9;25852:18;25843:6;25799:72;:::i;:::-;25881:73;25949:3;25938:9;25934:19;25925:6;25881:73;:::i;:::-;25130:831;;;;;;;;:::o;25967:214::-;26056:4;26094:2;26083:9;26079:18;26071:26;;26107:67;26171:1;26160:9;26156:17;26147:6;26107:67;:::i;:::-;25967:214;;;;:::o;26268:132::-;26335:4;26358:3;26350:11;;26388:4;26383:3;26379:14;26371:22;;26268:132;;;:::o;26406:114::-;26473:6;26507:5;26501:12;26491:22;;26406:114;;;:::o;26526:99::-;26578:6;26612:5;26606:12;26596:22;;26526:99;;;:::o;26631:113::-;26701:4;26733;26728:3;26724:14;26716:22;;26631:113;;;:::o;26750:184::-;26849:11;26883:6;26878:3;26871:19;26923:4;26918:3;26914:14;26899:29;;26750:184;;;;:::o;26940:147::-;27041:11;27078:3;27063:18;;26940:147;;;;:::o;27093:169::-;27177:11;27211:6;27206:3;27199:19;27251:4;27246:3;27242:14;27227:29;;27093:169;;;;:::o;27268:305::-;27308:3;27327:20;27345:1;27327:20;:::i;:::-;27322:25;;27361:20;27379:1;27361:20;:::i;:::-;27356:25;;27515:1;27447:66;27443:74;27440:1;27437:81;27434:107;;;27521:18;;:::i;:::-;27434:107;27565:1;27562;27558:9;27551:16;;27268:305;;;;:::o;27579:185::-;27619:1;27636:20;27654:1;27636:20;:::i;:::-;27631:25;;27670:20;27688:1;27670:20;:::i;:::-;27665:25;;27709:1;27699:35;;27714:18;;:::i;:::-;27699:35;27756:1;27753;27749:9;27744:14;;27579:185;;;;:::o;27770:348::-;27810:7;27833:20;27851:1;27833:20;:::i;:::-;27828:25;;27867:20;27885:1;27867:20;:::i;:::-;27862:25;;28055:1;27987:66;27983:74;27980:1;27977:81;27972:1;27965:9;27958:17;27954:105;27951:131;;;28062:18;;:::i;:::-;27951:131;28110:1;28107;28103:9;28092:20;;27770:348;;;;:::o;28124:191::-;28164:4;28184:20;28202:1;28184:20;:::i;:::-;28179:25;;28218:20;28236:1;28218:20;:::i;:::-;28213:25;;28257:1;28254;28251:8;28248:34;;;28262:18;;:::i;:::-;28248:34;28307:1;28304;28300:9;28292:17;;28124:191;;;;:::o;28321:96::-;28358:7;28387:24;28405:5;28387:24;:::i;:::-;28376:35;;28321:96;;;:::o;28423:104::-;28468:7;28497:24;28515:5;28497:24;:::i;:::-;28486:35;;28423:104;;;:::o;28533:90::-;28567:7;28610:5;28603:13;28596:21;28585:32;;28533:90;;;:::o;28629:126::-;28666:7;28706:42;28699:5;28695:54;28684:65;;28629:126;;;:::o;28761:77::-;28798:7;28827:5;28816:16;;28761:77;;;:::o;28844:86::-;28879:7;28919:4;28912:5;28908:16;28897:27;;28844:86;;;:::o;28936:153::-;29013:9;29046:37;29077:5;29046:37;:::i;:::-;29033:50;;28936:153;;;:::o;29095:121::-;29153:9;29186:24;29204:5;29186:24;:::i;:::-;29173:37;;29095:121;;;:::o;29222:126::-;29272:9;29305:37;29336:5;29305:37;:::i;:::-;29292:50;;29222:126;;;:::o;29354:113::-;29404:9;29437:24;29455:5;29437:24;:::i;:::-;29424:37;;29354:113;;;:::o;29473:307::-;29541:1;29551:113;29565:6;29562:1;29559:13;29551:113;;;29650:1;29645:3;29641:11;29635:18;29631:1;29626:3;29622:11;29615:39;29587:2;29584:1;29580:10;29575:15;;29551:113;;;29682:6;29679:1;29676:13;29673:101;;;29762:1;29753:6;29748:3;29744:16;29737:27;29673:101;29522:258;29473:307;;;:::o;29786:320::-;29830:6;29867:1;29861:4;29857:12;29847:22;;29914:1;29908:4;29904:12;29935:18;29925:81;;29991:4;29983:6;29979:17;29969:27;;29925:81;30053:2;30045:6;30042:14;30022:18;30019:38;30016:84;;;30072:18;;:::i;:::-;30016:84;29837:269;29786:320;;;:::o;30112:233::-;30151:3;30174:24;30192:5;30174:24;:::i;:::-;30165:33;;30220:66;30213:5;30210:77;30207:103;;;30290:18;;:::i;:::-;30207:103;30337:1;30330:5;30326:13;30319:20;;30112:233;;;:::o;30351:180::-;30399:77;30396:1;30389:88;30496:4;30493:1;30486:15;30520:4;30517:1;30510:15;30537:180;30585:77;30582:1;30575:88;30682:4;30679:1;30672:15;30706:4;30703:1;30696:15;30723:180;30771:77;30768:1;30761:88;30868:4;30865:1;30858:15;30892:4;30889:1;30882:15;30909:180;30957:77;30954:1;30947:88;31054:4;31051:1;31044:15;31078:4;31075:1;31068:15;31095:180;31143:77;31140:1;31133:88;31240:4;31237:1;31230:15;31264:4;31261:1;31254:15;31281:117;31390:1;31387;31380:12;31404:117;31513:1;31510;31503:12;31527:117;31636:1;31633;31626:12;31650:117;31759:1;31756;31749:12;31773:117;31882:1;31879;31872:12;31896:102;31937:6;31988:2;31984:7;31979:2;31972:5;31968:14;31964:28;31954:38;;31896:102;;;:::o;32004:222::-;32144:34;32140:1;32132:6;32128:14;32121:58;32213:5;32208:2;32200:6;32196:15;32189:30;32004:222;:::o;32232:177::-;32372:29;32368:1;32360:6;32356:14;32349:53;32232:177;:::o;32415:225::-;32555:34;32551:1;32543:6;32539:14;32532:58;32624:8;32619:2;32611:6;32607:15;32600:33;32415:225;:::o;32646:221::-;32786:34;32782:1;32774:6;32770:14;32763:58;32855:4;32850:2;32842:6;32838:15;32831:29;32646:221;:::o;32873:177::-;33013:29;33009:1;33001:6;32997:14;32990:53;32873:177;:::o;33056:224::-;33196:34;33192:1;33184:6;33180:14;33173:58;33265:7;33260:2;33252:6;33248:15;33241:32;33056:224;:::o;33286:179::-;33426:31;33422:1;33414:6;33410:14;33403:55;33286:179;:::o;33471:227::-;33611:34;33607:1;33599:6;33595:14;33588:58;33680:10;33675:2;33667:6;33663:15;33656:35;33471:227;:::o;33704:220::-;33844:34;33840:1;33832:6;33828:14;33821:58;33913:3;33908:2;33900:6;33896:15;33889:28;33704:220;:::o;33930:172::-;34070:24;34066:1;34058:6;34054:14;34047:48;33930:172;:::o;34108:182::-;34248:34;34244:1;34236:6;34232:14;34225:58;34108:182;:::o;34296:224::-;34436:34;34432:1;34424:6;34420:14;34413:58;34505:7;34500:2;34492:6;34488:15;34481:32;34296:224;:::o;34526:114::-;;:::o;34646:223::-;34786:34;34782:1;34774:6;34770:14;34763:58;34855:6;34850:2;34842:6;34838:15;34831:31;34646:223;:::o;34875:122::-;34948:24;34966:5;34948:24;:::i;:::-;34941:5;34938:35;34928:63;;34987:1;34984;34977:12;34928:63;34875:122;:::o;35003:116::-;35073:21;35088:5;35073:21;:::i;:::-;35066:5;35063:32;35053:60;;35109:1;35106;35099:12;35053:60;35003:116;:::o;35125:122::-;35198:24;35216:5;35198:24;:::i;:::-;35191:5;35188:35;35178:63;;35237:1;35234;35227:12;35178:63;35125:122;:::o
Swarm Source
ipfs://894b72316f4743cdda4b02bf1d124f13311d5663dd9113286f346f0cce5ab605
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.