Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 DRGNR
Holders
66
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
16,789,654 DRGNRValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DRGNR
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-18 */ /** */ /** Telegram: @DragoneerERC */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.7; 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; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Auth { address internal owner; mapping (address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier Onlyowner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address payable adr) public Onlyowner() { owner = adr; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { 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 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; } interface InterfaceLP { function sync() external; } contract DRGNR is ERC20, Auth { using SafeMath for uint256; //events event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SetMaxWalletExempt(address _address, bool _bool); event SellFeesChanged(uint256 _liquidityFee, uint256 _marketingFee,uint256 _opsFee, uint256 _devFee, uint256 _burnFee); event BuyFeesChanged(uint256 _liquidityFee, uint256 _marketingFee,uint256 _opsFee, uint256 _devFee, uint256 _burnFee); event TransferFeeChanged(uint256 _transferFee); event SetFeeReceivers(address _liquidityReceiver, address _marketingReceiver,address _operationsFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver); event ChangedSwapBack(bool _enabled, uint256 _amount); event SetFeeExempt(address _addr, bool _value); event InitialDistributionFinished(bool _value); event Fupdated(uint256 _timeF); event ChangedMaxWallet(uint256 _maxWalletDenom); event ChangedMaxTX(uint256 _maxSellDenom); event BlacklistUpdated(address[] addresses, bool status); event SingleBlacklistUpdated(address _address, bool status); event SetTxLimitExempt(address holder, bool exempt); event ChangedPrivateRestrictions(uint256 _maxSellAmount, bool _restricted, uint256 _interval); event ChangeMaxPrivateSell(uint256 amount); event ManagePrivate(address[] addresses, bool status); address private WETH; address private DEAD = 0x000000000000000000000000000000000000dEaD; address private ZERO = 0x0000000000000000000000000000000000000000; string constant private _name = "DRAGONEER"; string constant private _symbol = "DRGNR"; uint8 constant private _decimals = 18; uint256 private _totalSupply = 1000000000* 10**_decimals; uint256 public _maxTxAmount = _totalSupply * 10000 / 10000; uint256 public _maxWalletAmount = _totalSupply * 200 / 10000; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; address[] public _markerPairs; mapping (address => bool) public automatedMarketMakerPairs; mapping (address => bool) public isBlacklisted; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMaxWalletExempt; //Snipers uint256 private deadblocks = 0; uint256 public launchBlock; uint256 private latestSniperBlock; //buyFees uint256 private liquidityFee = 0; uint256 private marketingFee = 0; uint256 private opsFee = 0; uint256 private devFee = 0; uint256 private burnFee = 3; //sellFees uint256 private sellFeeLiquidity = 0; uint256 private sellFeeMarketing = 0; uint256 private sellFeeOps = 0; uint256 private sellFeeDev = 0; uint256 private sellFeeburn = 3; //transfer fee uint256 private transferFee = 0; uint256 public maxFee = 5; //totalFees uint256 private totalBuyFee = liquidityFee.add(marketingFee).add(opsFee).add(devFee).add(burnFee); uint256 private totalSellFee = sellFeeLiquidity.add(sellFeeMarketing).add(sellFeeOps).add(sellFeeDev).add(sellFeeburn); uint256 private feeDenominator = 100; address private autoLiquidityReceiver =0xa4544048100Eb017073C0cF4a0D5119baAb61FfC ; address private marketingFeeReceiver =0xa4544048100Eb017073C0cF4a0D5119baAb61FfC ; address private operationsFeeReceiver =0xa4544048100Eb017073C0cF4a0D5119baAb61FfC ; address private devFeeReceiver =0xa4544048100Eb017073C0cF4a0D5119baAb61FfC ; address private burnFeeReceiver =0x000000000000000000000000000000000000dEaD ; IDEXRouter public router; address public pair; bool public tradingEnabled = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 100; bool private inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); setAutomatedMarketMakerPair(pair, true); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isMaxWalletExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[address(this)] = true; isMaxWalletExempt[address(this)] = true; isMaxWalletExempt[pair] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(tradingEnabled,"Trading not open yet"); } if(shouldSwapBack()){ swapBack(); } uint256 amountReceived = amount; if(automatedMarketMakerPairs[sender]) { //buy if(!isFeeExempt[recipient]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded"); amountReceived = takeBuyFee(sender, recipient, amount); } } else if(automatedMarketMakerPairs[recipient]) { //sell if(!isFeeExempt[sender]) { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); amountReceived = takeSellFee(sender, amount); } } else { if (!isFeeExempt[sender]) { require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded"); require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); amountReceived = takeTransferFee(sender, amount); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } // Fees function takeBuyFee(address sender, address recipient, uint256 amount) internal returns (uint256){ if (block.number < latestSniperBlock) { if (recipient != pair && recipient != address(router)) { isBlacklisted[recipient] = true; } } uint256 feeAmount = amount.mul(totalBuyFee.sub(burnFee)).div(feeDenominator); uint256 burnFeeAmount = amount.mul(burnFee).div(feeDenominator); uint256 totalFeeAmount = feeAmount.add(burnFeeAmount); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFeeAmount > 0) { _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnFeeAmount); emit Transfer(sender, burnFeeReceiver, burnFeeAmount); } return amount.sub(totalFeeAmount); } function takeSellFee(address sender, uint256 amount) internal returns (uint256){ uint256 feeAmount = amount.mul(totalSellFee.sub(sellFeeburn)).div(feeDenominator); uint256 burnFeeAmount = amount.mul(sellFeeburn).div(feeDenominator); uint256 totalFeeAmount = feeAmount.add(burnFeeAmount); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFeeAmount > 0) { _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnFeeAmount); emit Transfer(sender, burnFeeReceiver, burnFeeAmount); } return amount.sub(totalFeeAmount); } function takeTransferFee(address sender, uint256 amount) internal returns (uint256){ uint256 _realFee = transferFee; if (block.number < latestSniperBlock) { _realFee = 99; } uint256 feeAmount = amount.mul(_realFee).div(feeDenominator); if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return !automatedMarketMakerPairs[msg.sender] && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } // switch Trading function tradingStatus(bool _status) public { require(tradingEnabled == false, "Can't stop trading"); tradingEnabled = _status; launchBlock = block.number; latestSniperBlock = block.number.add(deadblocks); emit InitialDistributionFinished(_status); } function swapBack() internal swapping { uint256 swapLiquidityFee = liquidityFee.add(sellFeeLiquidity); uint256 realTotalFee =totalBuyFee.add(totalSellFee).sub(burnFee).sub(sellFeeburn); uint256 contractTokenBalance = _balances[address(this)]; uint256 amountToLiquify = contractTokenBalance.mul(swapLiquidityFee).div(realTotalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = realTotalFee.sub(swapLiquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee.add(sellFeeLiquidity)).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee.add(sellFeeMarketing)).div(totalETHFee); uint256 amountETHOps = amountETH.mul(opsFee.add(sellFeeOps)).div(totalETHFee); uint256 amountETHDev = amountETH.mul(devFee.add(sellFeeDev)).div(totalETHFee); (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); (tmpSuccess,) = payable(operationsFeeReceiver).call{value: amountETHOps}(""); (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHDev}(""); tmpSuccess = false; if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); } } // Admin Functions function setTxLimit(uint256 amount) external Onlyowner() { require(amount > _totalSupply.div(10000), "Can't restrict trading"); _maxTxAmount = amount; emit ChangedMaxTX(amount); } function setMaxWallet(uint256 amount) external Onlyowner() { require(amount > _totalSupply.div(10000), "Can't restrict trading"); _maxWalletAmount = amount; emit ChangedMaxWallet(amount); } function manage_blacklist(address[] calldata addresses, bool status) external Onlyowner() { require (addresses.length < 200, "Can't update too many wallets at once"); for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } emit BlacklistUpdated(addresses, status); } function setBL(address _address, bool _bool) external Onlyowner() { isBlacklisted[_address] = _bool; emit SingleBlacklistUpdated(_address, _bool); } function updateF (uint256 _number) external Onlyowner() { require(_number < 50, "Can't go that high"); deadblocks = _number; emit Fupdated(_number); } function setIsFeeExempt(address holder, bool exempt) external Onlyowner() { isFeeExempt[holder] = exempt; emit SetFeeExempt(holder, exempt); } function setIsTxLimitExempt(address holder, bool exempt) external Onlyowner() { isTxLimitExempt[holder] = exempt; emit SetTxLimitExempt(holder, exempt); } function setIsMaxWalletExempt(address holder, bool exempt) external Onlyowner() { isMaxWalletExempt[holder] = exempt; emit SetMaxWalletExempt(holder, exempt); } function setBuyFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _opsFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external Onlyowner() { liquidityFee = _liquidityFee; marketingFee = _marketingFee; opsFee = _opsFee; devFee = _devFee; burnFee = _burnFee; totalBuyFee = _liquidityFee.add(_marketingFee).add(_opsFee).add(_devFee).add(burnFee); feeDenominator = _feeDenominator; require(totalBuyFee <= maxFee, "Fees cannot be higher than 5%"); emit BuyFeesChanged(_liquidityFee, _marketingFee,_opsFee, _devFee, _burnFee); } function setSellFees(uint256 _liquidityFee, uint256 _marketingFee,uint256 _opsFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external Onlyowner() { sellFeeLiquidity = _liquidityFee; sellFeeMarketing = _marketingFee; sellFeeOps = _opsFee; sellFeeDev = _devFee; sellFeeburn = _burnFee; totalSellFee = _liquidityFee.add(_marketingFee).add(_opsFee).add(_devFee).add(_burnFee); feeDenominator = _feeDenominator; require(totalSellFee <= maxFee, "Fees cannot be higher than 5%"); emit SellFeesChanged(_liquidityFee, _marketingFee,_opsFee, _devFee, _burnFee); } function setTransferFee(uint256 _transferFee) external Onlyowner() { require(_transferFee < maxFee, "Fees cannot be higher than 5%"); transferFee = _transferFee; emit TransferFeeChanged(_transferFee); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver,address _operationsFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver) external Onlyowner() { require(_autoLiquidityReceiver != address(0) && _marketingFeeReceiver != address(0) && _operationsFeeReceiver != address(0) && _devFeeReceiver != address(0) && _burnFeeReceiver != address(0), "Zero Address validation" ); autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; operationsFeeReceiver = _operationsFeeReceiver; devFeeReceiver = _devFeeReceiver; burnFeeReceiver = _burnFeeReceiver; emit SetFeeReceivers(_autoLiquidityReceiver, _marketingFeeReceiver, _operationsFeeReceiver, _devFeeReceiver, _burnFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _amount) external Onlyowner() { swapEnabled = _enabled; swapThreshold = _amount; emit ChangedSwapBack(_enabled, _amount); } function setAutomatedMarketMakerPair(address _pair, bool _value) public Onlyowner() { require(automatedMarketMakerPairs[_pair] != _value, "Value already set"); automatedMarketMakerPairs[_pair] = _value; if(_value){ _markerPairs.push(_pair); }else{ require(_markerPairs.length > 1, "Required 1 pair"); for (uint256 i = 0; i < _markerPairs.length; i++) { if (_markerPairs[i] == _pair) { _markerPairs[i] = _markerPairs[_markerPairs.length - 1]; _markerPairs.pop(); break; } } } emit SetAutomatedMarketMakerPair(_pair, _value); } function manualSwapback() external Onlyowner() { swapBack(); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } }
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":false,"internalType":"address[]","name":"addresses","type":"address[]"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_opsFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_devFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"BuyFeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ChangeMaxPrivateSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellDenom","type":"uint256"}],"name":"ChangedMaxTX","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletDenom","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_restricted","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"ChangedPrivateRestrictions","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timeF","type":"uint256"}],"name":"Fupdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"addresses","type":"address[]"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManagePrivate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_opsFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_devFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"SellFeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_liquidityReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"_operationsFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"_devFeeReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"_burnFeeReceiver","type":"address"}],"name":"SetFeeReceivers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"SetTxLimitExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SingleBlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_opsFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_operationsFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsMaxWalletExempt","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":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_opsFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"name":"updateF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000099919062001339565b633b9aca00620000aa919062001476565b60055561271080600554620000c0919062001476565b620000cc9190620012a6565b60065561271060c8600554620000e3919062001476565b620000ef9190620012a6565b600755600060105560006013556000601455600060155560006016556003601755600060185560006019556000601a556000601b556003601c556000601d556005601e55620001a26017546200018e6016546200017a6015546200016660145460135462000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b601f5562000214601c5462000200601b54620001ec601a54620001d860195460185462000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b62000bbb60201b620026161790919060201c565b602055606460215573a4544048100eb017073c0cf4a0d5119baab61ffc602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a4544048100eb017073c0cf4a0d5119baab61ffc602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a4544048100eb017073c0cf4a0d5119baab61ffc602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a4544048100eb017073c0cf4a0d5119baab61ffc602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602860146101000a81548160ff0219169083151502179055506001602860156101000a81548160ff02191690831515021790555060646001600554620003fc919062001476565b620004089190620012a6565b6029553480156200041857600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200057057600080fd5b505afa15801562000585573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ab919062001076565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200065457600080fd5b505afa15801562000669573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200068f919062001076565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620006ed92919062001166565b602060405180830381600087803b1580156200070857600080fd5b505af11580156200071d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000743919062001076565b602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620007b8602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000c1e60201b60201c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000bad91906200121b565b60405180910390a362001737565b600080828462000bcc919062001249565b90508381101562000c14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c0b90620011b5565b60405180910390fd5b8091505092915050565b62000c2f336200100660201b60201c565b62000c71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c6890620011f9565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141562000d07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cfe9062001193565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801562000dce57600a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000fbc565b6001600a805490501162000e19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1090620011d7565b60405180910390fd5b60005b600a8054905081101562000fba578273ffffffffffffffffffffffffffffffffffffffff16600a828154811062000e585762000e5762001638565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000fa457600a6001600a8054905062000eb69190620014d7565b8154811062000eca5762000ec962001638565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a828154811062000f0c5762000f0b62001638565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a80548062000f695762000f6862001609565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905562000fba565b808062000fb1906200155d565b91505062000e1c565b505b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008151905062001070816200171d565b92915050565b6000602082840312156200108f576200108e62001667565b5b60006200109f848285016200105f565b91505092915050565b620010b38162001512565b82525050565b6000620010c860118362001238565b9150620010d58262001679565b602082019050919050565b6000620010ef601b8362001238565b9150620010fc82620016a2565b602082019050919050565b600062001116600f8362001238565b91506200112382620016cb565b602082019050919050565b60006200113d60068362001238565b91506200114a82620016f4565b602082019050919050565b620011608162001546565b82525050565b60006040820190506200117d6000830185620010a8565b6200118c6020830184620010a8565b9392505050565b60006020820190508181036000830152620011ae81620010b9565b9050919050565b60006020820190508181036000830152620011d081620010e0565b9050919050565b60006020820190508181036000830152620011f28162001107565b9050919050565b6000602082019050818103600083015262001214816200112e565b9050919050565b600060208201905062001232600083018462001155565b92915050565b600082825260208201905092915050565b6000620012568262001546565b9150620012638362001546565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200129b576200129a620015ab565b5b828201905092915050565b6000620012b38262001546565b9150620012c08362001546565b925082620012d357620012d2620015da565b5b828204905092915050565b6000808291508390505b60018511156200133057808604811115620013085762001307620015ab565b5b6001851615620013185780820291505b808102905062001328856200166c565b9450620012e8565b94509492505050565b6000620013468262001546565b9150620013538362001550565b9250620013827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200138a565b905092915050565b6000826200139c57600190506200146f565b81620013ac57600090506200146f565b8160018114620013c55760028114620013d05762001406565b60019150506200146f565b60ff841115620013e557620013e4620015ab565b5b8360020a915084821115620013ff57620013fe620015ab565b5b506200146f565b5060208310610133831016604e8410600b8410161715620014405782820a9050838111156200143a5762001439620015ab565b5b6200146f565b6200144f8484846001620012de565b92509050818404811115620014695762001468620015ab565b5b81810290505b9392505050565b6000620014838262001546565b9150620014908362001546565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620014cc57620014cb620015ab565b5b828202905092915050565b6000620014e48262001546565b9150620014f18362001546565b925082821015620015075762001506620015ab565b5b828203905092915050565b60006200151f8262001526565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006200156a8262001546565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620015a0576200159f620015ab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b60008160011c9050919050565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5265717569726564203120706169720000000000000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b620017288162001512565b81146200173457600080fd5b50565b61577a80620017476000396000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063b62496f5116100c1578063e1d5584c1161007a578063e1d5584c146109a7578063f2fde38b146109e4578063f74c9f4714610a0d578063f84ba65d14610a36578063f887ea4014610a5f578063fe575a8714610a8a5761027d565b8063b62496f514610887578063ba876bb9146108c4578063c04a78ad146108ed578063d00efb2f14610916578063dd62ed3e14610941578063df20fd491461097e5761027d565b80638f02bb5b116101135780638f02bb5b1461077957806395d89b41146107a25780639a7a23d6146107cd578063a8aa1b31146107f6578063a8df7fb014610821578063a9059cbb1461084a5761027d565b806370a08231146106805780637d1db4a5146106bd578063893d20e8146106e85780638b42507f146107135780638e2eee84146107505761027d565b8063313ce567116101e85780635b895c29116101ac5780635b895c29146105985780635c85974f146105af5780635d0044ca146105d8578063658d4b7f146106015780636c0a24eb1461062a5780636ddd1713146106555761027d565b8063313ce5671461049f5780633f4218e0146104ca57806345434032146105075780634ada218b14610530578063571ac8b01461055b5761027d565b80630d2959801161023a5780630d2959801461037d57806318160ddd146103a657806318abb635146103d157806323b872dd146103fa5780632b112e49146104375780632f54bf6e146104625761027d565b806301f59d16146102825780630445b667146102ad57806306fdde03146102d8578063095ea7b3146103035780630bd11f8a146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ac7565b6040516102a49190614f5a565b60405180910390f35b3480156102b957600080fd5b506102c2610acd565b6040516102cf9190614f5a565b60405180910390f35b3480156102e457600080fd5b506102ed610ad3565b6040516102fa9190614d58565b60405180910390f35b34801561030f57600080fd5b5061032a600480360381019061032591906145d1565b610b10565b6040516103379190614cf9565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190614429565b610c02565b6040516103749190614cf9565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190614671565b610c22565b005b3480156103b257600080fd5b506103bb610cee565b6040516103c89190614f5a565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906144c3565b610cf8565b005b34801561040657600080fd5b50610421600480360381019061041c919061453e565b61101f565b60405161042e9190614cf9565b60405180910390f35b34801561044357600080fd5b5061044c61121f565b6040516104599190614f5a565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190614429565b6112a1565b6040516104969190614cf9565b60405180910390f35b3480156104ab57600080fd5b506104b46112fa565b6040516104c19190615022565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190614429565b611303565b6040516104fe9190614cf9565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190614591565b611323565b005b34801561053c57600080fd5b506105456113ff565b6040516105529190614cf9565b60405180910390f35b34801561056757600080fd5b50610582600480360381019061057d9190614429565b611412565b60405161058f9190614cf9565b60405180910390f35b3480156105a457600080fd5b506105ad611445565b005b3480156105bb57600080fd5b506105d660048036038101906105d191906146de565b611497565b005b3480156105e457600080fd5b506105ff60048036038101906105fa91906146de565b611578565b005b34801561060d57600080fd5b5061062860048036038101906106239190614591565b611659565b005b34801561063657600080fd5b5061063f611735565b60405161064c9190614f5a565b60405180910390f35b34801561066157600080fd5b5061066a61173b565b6040516106779190614cf9565b60405180910390f35b34801561068c57600080fd5b506106a760048036038101906106a29190614429565b61174e565b6040516106b49190614f5a565b60405180910390f35b3480156106c957600080fd5b506106d2611797565b6040516106df9190614f5a565b60405180910390f35b3480156106f457600080fd5b506106fd61179d565b60405161070a9190614bb4565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190614429565b6117c6565b6040516107479190614cf9565b60405180910390f35b34801561075c57600080fd5b5061077760048036038101906107729190614611565b6117e6565b005b34801561078557600080fd5b506107a0600480360381019061079b91906146de565b611952565b005b3480156107ae57600080fd5b506107b7611a1f565b6040516107c49190614d58565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef9190614591565b611a5c565b005b34801561080257600080fd5b5061080b611e1d565b6040516108189190614bb4565b60405180910390f35b34801561082d57600080fd5b50610848600480360381019061084391906146de565b611e43565b005b34801561085657600080fd5b50610871600480360381019061086c91906145d1565b611f0f565b60405161087e9190614cf9565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190614429565b611f24565b6040516108bb9190614cf9565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e6919061475e565b611f44565b005b3480156108f957600080fd5b50610914600480360381019061090f9190614591565b612093565b005b34801561092257600080fd5b5061092b61216f565b6040516109389190614f5a565b60405180910390f35b34801561094d57600080fd5b5061096860048036038101906109639190614483565b612175565b6040516109759190614f5a565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a0919061469e565b6121fc565b005b3480156109b357600080fd5b506109ce60048036038101906109c991906146de565b6122a2565b6040516109db9190614bb4565b60405180910390f35b3480156109f057600080fd5b50610a0b6004803603810190610a069190614456565b6122e1565b005b348015610a1957600080fd5b50610a346004803603810190610a2f919061475e565b6123a3565b005b348015610a4257600080fd5b50610a5d6004803603810190610a589190614591565b6124f4565b005b348015610a6b57600080fd5b50610a746125d0565b604051610a819190614d3d565b60405180910390f35b348015610a9657600080fd5b50610ab16004803603810190610aac9190614429565b6125f6565b604051610abe9190614cf9565b60405180910390f35b601e5481565b60295481565b60606040518060400160405280600981526020017f445241474f4e4545520000000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bf09190614f5a565b60405180910390a36001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60001515602860149054906101000a900460ff16151514610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90614e5a565b60405180910390fd5b80602860146101000a81548160ff02191690831515021790555043601181905550610cae6010544361261690919063ffffffff16565b6012819055507f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df81604051610ce39190614cf9565b60405180910390a150565b6000600554905090565b610d01336112a1565b610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790614efa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610daa5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610de35750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e1c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610e555750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90614e7a565b60405180910390fd5b84602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcbc6e694f9cedabb09aeff1b1031513e7c8738cedf6395c1cd6d08760e28bc6e8585858585604051611010959493929190614bea565b60405180910390a15050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461120b5761118a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126749092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112168484846126d8565b90509392505050565b600061129c61124f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b61128e61127d600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b600554612ffe90919063ffffffff16565b612ffe90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b61132c336112a1565b61136b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136290614efa565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda82826040516113f3929190614c3d565b60405180910390a15050565b602860149054906101000a900460ff1681565b600061143e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b10565b9050919050565b61144e336112a1565b61148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490614efa565b60405180910390fd5b611495613048565b565b6114a0336112a1565b6114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690614efa565b60405180910390fd5b6114f661271060055461371290919063ffffffff16565b8111611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90614d7a565b60405180910390fd5b806006819055507f510e4637d257d903a794aca1c3cac80d12bf71d2409f8f975ff245c61845732e8160405161156d9190614f5a565b60405180910390a150565b611581336112a1565b6115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790614efa565b60405180910390fd5b6115d761271060055461371290919063ffffffff16565b8111611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90614d7a565b60405180910390fd5b806007819055507fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b8160405161164e9190614f5a565b60405180910390a150565b611662336112a1565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890614efa565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d8282604051611729929190614c3d565b60405180910390a15050565b60075481565b602860159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6117ef336112a1565b61182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590614efa565b60405180910390fd5b60c88383905010611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614f1a565b60405180910390fd5b60005b838390508110156119115781600c600086868581811061189a576118996153aa565b5b90506020020160208101906118af9190614429565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061190a906152d4565b9050611877565b507f11d4d128e8f89ae2e8815168b9eba079dd6668b75f1e3a9dd96ac6192a7c4dcb83838360405161194593929190614cc7565b60405180910390a1505050565b61195b336112a1565b61199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190614efa565b60405180910390fd5b601e5481106119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d590614eba565b60405180910390fd5b80601d819055507f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f481604051611a149190614f5a565b60405180910390a150565b60606040518060400160405280600581526020017f4452474e52000000000000000000000000000000000000000000000000000000815250905090565b611a65336112a1565b611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90614efa565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90614dfa565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611bfc57600a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611dd3565b6001600a8054905011611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90614e3a565b60405180910390fd5b60005b600a80549050811015611dd1578273ffffffffffffffffffffffffffffffffffffffff16600a8281548110611c7f57611c7e6153aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dbe57600a6001600a80549050611cda91906151ac565b81548110611ceb57611cea6153aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a8281548110611d2a57611d296153aa565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a805480611d8457611d8361537b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611dd1565b8080611dc9906152d4565b915050611c47565b505b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e4c336112a1565b611e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8290614efa565b60405180910390fd5b60328110611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec590614d9a565b60405180910390fd5b806010819055507f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb81604051611f049190614f5a565b60405180910390a150565b6000611f1c3384846126d8565b905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611f4d336112a1565b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390614efa565b60405180910390fd5b856018819055508460198190555083601a8190555082601b8190555081601c81905550611ff882611fea85611fdc88611fce8b8d61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b60208190555080602181905550601e54602054111561204c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204390614eba565b60405180910390fd5b7ffdd7c66a68b70fa92b44bc177e5154fe4ae8a19e8fc2920396a5ea2db9a783328686868686604051612083959493929190614fcf565b60405180910390a1505050505050565b61209c336112a1565b6120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d290614efa565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b8282604051612163929190614c3d565b60405180910390a15050565b60115481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612205336112a1565b612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90614efa565b60405180910390fd5b81602860156101000a81548160ff021916908315150217905550806029819055507fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd8282604051612296929190614d14565b60405180910390a15050565b600a81815481106122b257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122ea336112a1565b612329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232090614efa565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516123989190614bcf565b60405180910390a150565b6123ac336112a1565b6123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614efa565b60405180910390fd5b856013819055508460148190555083601581905550826016819055508160178190555061245960175461244b8561243d8861242f8b8d61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b601f8190555080602181905550601e54601f5411156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490614eba565b60405180910390fd5b7f0ebc4c8adc990f93864d49e46d4543ac8e892fd73ba3ebe0b1794d0f6929f81686868686866040516124e4959493929190614fcf565b60405180910390a1505050505050565b6124fd336112a1565b61253c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253390614efa565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f62ff8320fc089e815ec009a710ef61f8c650c1666630c8fc091aee0f66474f6682826040516125c4929190614c3d565b60405180910390a15050565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b600080828461262591906150cb565b90508381101561266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190614e1a565b60405180910390fd5b8091505092915050565b60008383111582906126bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b39190614d58565b60405180910390fd5b50600083856126cb91906151ac565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561277e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490614f3a565b60405180910390fd5b602a60009054906101000a900460ff16156127e4576127dd84848461375c565b9050612ff7565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128885750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128dd57602860149054906101000a900460ff166128dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d390614e9a565b60405180910390fd5b5b6128e561392f565b156128f3576128f2613048565b5b6000829050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b3157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b2c576007546129f084600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b111580612a465750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7c90614dda565b60405180910390fd5b60065483111580612adf5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1590614dba565b60405180910390fd5b612b29858585613a02565b90505b612e62565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c7f57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c7a5760065483111580612c2e5750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6490614dba565b60405180910390fd5b612c778584613e21565b90505b612e61565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e6057600754612d2584600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b111580612d7b5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db190614dda565b60405180910390fd5b60065483111580612e145750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4a90614dba565b60405180910390fd5b612e5d8584614129565b90505b5b5b612eb483600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ffe90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4981600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fe99190614f5a565b60405180910390a360019150505b9392505050565b600061304083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612674565b905092915050565b6001602a60006101000a81548160ff021916908315150217905550600061307c60185460135461261690919063ffffffff16565b905060006130bf601c546130b16017546130a3602054601f5461261690919063ffffffff16565b612ffe90919063ffffffff16565b612ffe90919063ffffffff16565b90506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061313f600261313185613123888761428c90919063ffffffff16565b61371290919063ffffffff16565b61371290919063ffffffff16565b905060006131568284612ffe90919063ffffffff16565b905060004790506000600267ffffffffffffffff81111561317a576131796153d9565b5b6040519080825280602002602001820160405280156131a85781602001602082028036833780820191505090505b50905030816000815181106131c0576131bf6153aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613231576132306153aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016132cf959493929190614f75565b600060405180830381600087803b1580156132e957600080fd5b505af11580156132fd573d6000803e3d6000fd5b5050505060006133168347612ffe90919063ffffffff16565b9050600061334061333160028b61371290919063ffffffff16565b89612ffe90919063ffffffff16565b9050600061339260026133848461337661336760185460135461261690919063ffffffff16565b8861428c90919063ffffffff16565b61371290919063ffffffff16565b61371290919063ffffffff16565b905060006133d1836133c36133b460195460145461261690919063ffffffff16565b8761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613410846134026133f3601a5460155461261690919063ffffffff16565b8861428c90919063ffffffff16565b61371290919063ffffffff16565b9050600061344f85613441613432601b5460165461261690919063ffffffff16565b8961428c90919063ffffffff16565b61371290919063ffffffff16565b90506000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161349990614b9f565b60006040518083038185875af1925050503d80600081146134d6576040519150601f19603f3d011682016040523d82523d6000602084013e6134db565b606091505b50509050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161352590614b9f565b60006040518083038185875af1925050503d8060008114613562576040519150601f19603f3d011682016040523d82523d6000602084013e613567565b606091505b505080915050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516135b390614b9f565b60006040518083038185875af1925050503d80600081146135f0576040519150601f19603f3d011682016040523d82523d6000602084013e6135f5565b606091505b5050809150506000905060008b11156136e757602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161369196959493929190614c66565b6060604051808303818588803b1580156136aa57600080fd5b505af11580156136be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136e3919061470b565b5050505b50505050505050505050505050506000602a60006101000a81548160ff021916908315150217905550565b600061375483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614307565b905092915050565b60006137e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126749092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061387c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391c9190614f5a565b60405180910390a3600190509392505050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156139985750602a60009054906101000a900460ff16155b80156139b05750602860159054906101000a900460ff165b80156139fd5750602954600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000601254431015613b1957602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613aba5750602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613b18576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6000613b58602154613b4a613b3b601754601f54612ffe90919063ffffffff16565b8661428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613b85602154613b776017548761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613b9c828461261690919063ffffffff16565b9050613bf083600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613c909190614f5a565b60405180910390a36000821115613e0257613d158260086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b60086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613df99190614f5a565b60405180910390a35b613e158186612ffe90919063ffffffff16565b93505050509392505050565b600080613e61602154613e53613e44601c54602054612ffe90919063ffffffff16565b8661428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613e8e602154613e80601c548761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613ea5828461261690919063ffffffff16565b9050613ef983600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613f999190614f5a565b60405180910390a3600082111561410b5761401e8260086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b60086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516141029190614f5a565b60405180910390a35b61411e8186612ffe90919063ffffffff16565b935050505092915050565b600080601d54905060125443101561414057606390505b600061416960215461415b848761428c90919063ffffffff16565b61371290919063ffffffff16565b9050600081111561426f576141c681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142669190614f5a565b60405180910390a35b6142828185612ffe90919063ffffffff16565b9250505092915050565b60008083141561429f5760009050614301565b600082846142ad9190615152565b90508284826142bc9190615121565b146142fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142f390614eda565b60405180910390fd5b809150505b92915050565b6000808311829061434e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143459190614d58565b60405180910390fd5b506000838561435d9190615121565b9050809150509392505050565b600081359050614379816156e8565b92915050565b60008135905061438e816156ff565b92915050565b60008083601f8401126143aa576143a961540d565b5b8235905067ffffffffffffffff8111156143c7576143c6615408565b5b6020830191508360208202830111156143e3576143e2615412565b5b9250929050565b6000813590506143f981615716565b92915050565b60008135905061440e8161572d565b92915050565b6000815190506144238161572d565b92915050565b60006020828403121561443f5761443e61541c565b5b600061444d8482850161436a565b91505092915050565b60006020828403121561446c5761446b61541c565b5b600061447a8482850161437f565b91505092915050565b6000806040838503121561449a5761449961541c565b5b60006144a88582860161436a565b92505060206144b98582860161436a565b9150509250929050565b600080600080600060a086880312156144df576144de61541c565b5b60006144ed8882890161436a565b95505060206144fe8882890161436a565b945050604061450f8882890161436a565b93505060606145208882890161436a565b92505060806145318882890161436a565b9150509295509295909350565b6000806000606084860312156145575761455661541c565b5b60006145658682870161436a565b93505060206145768682870161436a565b9250506040614587868287016143ff565b9150509250925092565b600080604083850312156145a8576145a761541c565b5b60006145b68582860161436a565b92505060206145c7858286016143ea565b9150509250929050565b600080604083850312156145e8576145e761541c565b5b60006145f68582860161436a565b9250506020614607858286016143ff565b9150509250929050565b60008060006040848603121561462a5761462961541c565b5b600084013567ffffffffffffffff81111561464857614647615417565b5b61465486828701614394565b93509350506020614667868287016143ea565b9150509250925092565b6000602082840312156146875761468661541c565b5b6000614695848285016143ea565b91505092915050565b600080604083850312156146b5576146b461541c565b5b60006146c3858286016143ea565b92505060206146d4858286016143ff565b9150509250929050565b6000602082840312156146f4576146f361541c565b5b6000614702848285016143ff565b91505092915050565b6000806000606084860312156147245761472361541c565b5b600061473286828701614414565b935050602061474386828701614414565b925050604061475486828701614414565b9150509250925092565b60008060008060008060c0878903121561477b5761477a61541c565b5b600061478989828a016143ff565b965050602061479a89828a016143ff565b95505060406147ab89828a016143ff565b94505060606147bc89828a016143ff565b93505060806147cd89828a016143ff565b92505060a06147de89828a016143ff565b9150509295509295509295565b60006147f78383614812565b60208301905092915050565b61480c81615247565b82525050565b61481b816151e0565b82525050565b61482a816151e0565b82525050565b600061483c8385615087565b93506148478261503d565b8060005b858110156148805761485d82846150b4565b61486788826147eb565b97506148728361506d565b92505060018101905061484b565b5085925050509392505050565b600061489882615057565b6148a28185615087565b93506148ad83615047565b8060005b838110156148de5781516148c588826147eb565b97506148d08361507a565b9250506001810190506148b1565b5085935050505092915050565b6148f481615204565b82525050565b61490381615259565b82525050565b6149128161526b565b82525050565b600061492382615062565b61492d81856150a3565b935061493d8185602086016152a1565b61494681615421565b840191505092915050565b600061495e6016836150a3565b915061496982615432565b602082019050919050565b60006149816012836150a3565b915061498c8261545b565b602082019050919050565b60006149a46011836150a3565b91506149af82615484565b602082019050919050565b60006149c7601f836150a3565b91506149d2826154ad565b602082019050919050565b60006149ea6011836150a3565b91506149f5826154d6565b602082019050919050565b6000614a0d601b836150a3565b9150614a18826154ff565b602082019050919050565b6000614a30600f836150a3565b9150614a3b82615528565b602082019050919050565b6000614a536012836150a3565b9150614a5e82615551565b602082019050919050565b6000614a766017836150a3565b9150614a818261557a565b602082019050919050565b6000614a996014836150a3565b9150614aa4826155a3565b602082019050919050565b6000614abc601d836150a3565b9150614ac7826155cc565b602082019050919050565b6000614adf6021836150a3565b9150614aea826155f5565b604082019050919050565b6000614b026006836150a3565b9150614b0d82615644565b602082019050919050565b6000614b25600083615098565b9150614b308261566d565b600082019050919050565b6000614b486025836150a3565b9150614b5382615670565b604082019050919050565b6000614b6b600b836150a3565b9150614b76826156bf565b602082019050919050565b614b8a81615230565b82525050565b614b998161523a565b82525050565b6000614baa82614b18565b9150819050919050565b6000602082019050614bc96000830184614821565b92915050565b6000602082019050614be46000830184614803565b92915050565b600060a082019050614bff6000830188614821565b614c0c6020830187614821565b614c196040830186614821565b614c266060830185614821565b614c336080830184614821565b9695505050505050565b6000604082019050614c526000830185614821565b614c5f60208301846148eb565b9392505050565b600060c082019050614c7b6000830189614821565b614c886020830188614b81565b614c956040830187614909565b614ca26060830186614909565b614caf6080830185614821565b614cbc60a0830184614b81565b979650505050505050565b60006040820190508181036000830152614ce2818587614830565b9050614cf160208301846148eb565b949350505050565b6000602082019050614d0e60008301846148eb565b92915050565b6000604082019050614d2960008301856148eb565b614d366020830184614b81565b9392505050565b6000602082019050614d5260008301846148fa565b92915050565b60006020820190508181036000830152614d728184614918565b905092915050565b60006020820190508181036000830152614d9381614951565b9050919050565b60006020820190508181036000830152614db381614974565b9050919050565b60006020820190508181036000830152614dd381614997565b9050919050565b60006020820190508181036000830152614df3816149ba565b9050919050565b60006020820190508181036000830152614e13816149dd565b9050919050565b60006020820190508181036000830152614e3381614a00565b9050919050565b60006020820190508181036000830152614e5381614a23565b9050919050565b60006020820190508181036000830152614e7381614a46565b9050919050565b60006020820190508181036000830152614e9381614a69565b9050919050565b60006020820190508181036000830152614eb381614a8c565b9050919050565b60006020820190508181036000830152614ed381614aaf565b9050919050565b60006020820190508181036000830152614ef381614ad2565b9050919050565b60006020820190508181036000830152614f1381614af5565b9050919050565b60006020820190508181036000830152614f3381614b3b565b9050919050565b60006020820190508181036000830152614f5381614b5e565b9050919050565b6000602082019050614f6f6000830184614b81565b92915050565b600060a082019050614f8a6000830188614b81565b614f976020830187614909565b8181036040830152614fa9818661488d565b9050614fb86060830185614821565b614fc56080830184614b81565b9695505050505050565b600060a082019050614fe46000830188614b81565b614ff16020830187614b81565b614ffe6040830186614b81565b61500b6060830185614b81565b6150186080830184614b81565b9695505050505050565b60006020820190506150376000830184614b90565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006150c3602084018461436a565b905092915050565b60006150d682615230565b91506150e183615230565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151165761511561531d565b5b828201905092915050565b600061512c82615230565b915061513783615230565b9250826151475761514661534c565b5b828204905092915050565b600061515d82615230565b915061516883615230565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151a1576151a061531d565b5b828202905092915050565b60006151b782615230565b91506151c283615230565b9250828210156151d5576151d461531d565b5b828203905092915050565b60006151eb82615210565b9050919050565b60006151fd82615210565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006152528261527d565b9050919050565b60006152648261527d565b9050919050565b600061527682615230565b9050919050565b60006152888261528f565b9050919050565b600061529a82615210565b9050919050565b60005b838110156152bf5780820151818401526020810190506152a4565b838111156152ce576000848401525b50505050565b60006152df82615230565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156153125761531161531d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f43616e27742072657374726963742074726164696e6700000000000000000000600082015250565b7f43616e277420676f207468617420686967680000000000000000000000000000600082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400600082015250565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5265717569726564203120706169720000000000000000000000000000000000600082015250565b7f43616e27742073746f702074726164696e670000000000000000000000000000600082015250565b7f5a65726f20416464726573732076616c69646174696f6e000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f466565732063616e6e6f7420626520686967686572207468616e203525000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f43616e27742075706461746520746f6f206d616e792077616c6c65747320617460008201527f206f6e6365000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6156f1816151e0565b81146156fc57600080fd5b50565b615708816151f2565b811461571357600080fd5b50565b61571f81615204565b811461572a57600080fd5b50565b61573681615230565b811461574157600080fd5b5056fea2646970667358221220f5ecbf00a10d0c3d5adf603fd768a5cc14d72fc75e799b65ddee9c4e96fababb64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102765760003560e01c806370a082311161014f578063b62496f5116100c1578063e1d5584c1161007a578063e1d5584c146109a7578063f2fde38b146109e4578063f74c9f4714610a0d578063f84ba65d14610a36578063f887ea4014610a5f578063fe575a8714610a8a5761027d565b8063b62496f514610887578063ba876bb9146108c4578063c04a78ad146108ed578063d00efb2f14610916578063dd62ed3e14610941578063df20fd491461097e5761027d565b80638f02bb5b116101135780638f02bb5b1461077957806395d89b41146107a25780639a7a23d6146107cd578063a8aa1b31146107f6578063a8df7fb014610821578063a9059cbb1461084a5761027d565b806370a08231146106805780637d1db4a5146106bd578063893d20e8146106e85780638b42507f146107135780638e2eee84146107505761027d565b8063313ce567116101e85780635b895c29116101ac5780635b895c29146105985780635c85974f146105af5780635d0044ca146105d8578063658d4b7f146106015780636c0a24eb1461062a5780636ddd1713146106555761027d565b8063313ce5671461049f5780633f4218e0146104ca57806345434032146105075780634ada218b14610530578063571ac8b01461055b5761027d565b80630d2959801161023a5780630d2959801461037d57806318160ddd146103a657806318abb635146103d157806323b872dd146103fa5780632b112e49146104375780632f54bf6e146104625761027d565b806301f59d16146102825780630445b667146102ad57806306fdde03146102d8578063095ea7b3146103035780630bd11f8a146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ac7565b6040516102a49190614f5a565b60405180910390f35b3480156102b957600080fd5b506102c2610acd565b6040516102cf9190614f5a565b60405180910390f35b3480156102e457600080fd5b506102ed610ad3565b6040516102fa9190614d58565b60405180910390f35b34801561030f57600080fd5b5061032a600480360381019061032591906145d1565b610b10565b6040516103379190614cf9565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190614429565b610c02565b6040516103749190614cf9565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190614671565b610c22565b005b3480156103b257600080fd5b506103bb610cee565b6040516103c89190614f5a565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906144c3565b610cf8565b005b34801561040657600080fd5b50610421600480360381019061041c919061453e565b61101f565b60405161042e9190614cf9565b60405180910390f35b34801561044357600080fd5b5061044c61121f565b6040516104599190614f5a565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190614429565b6112a1565b6040516104969190614cf9565b60405180910390f35b3480156104ab57600080fd5b506104b46112fa565b6040516104c19190615022565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190614429565b611303565b6040516104fe9190614cf9565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190614591565b611323565b005b34801561053c57600080fd5b506105456113ff565b6040516105529190614cf9565b60405180910390f35b34801561056757600080fd5b50610582600480360381019061057d9190614429565b611412565b60405161058f9190614cf9565b60405180910390f35b3480156105a457600080fd5b506105ad611445565b005b3480156105bb57600080fd5b506105d660048036038101906105d191906146de565b611497565b005b3480156105e457600080fd5b506105ff60048036038101906105fa91906146de565b611578565b005b34801561060d57600080fd5b5061062860048036038101906106239190614591565b611659565b005b34801561063657600080fd5b5061063f611735565b60405161064c9190614f5a565b60405180910390f35b34801561066157600080fd5b5061066a61173b565b6040516106779190614cf9565b60405180910390f35b34801561068c57600080fd5b506106a760048036038101906106a29190614429565b61174e565b6040516106b49190614f5a565b60405180910390f35b3480156106c957600080fd5b506106d2611797565b6040516106df9190614f5a565b60405180910390f35b3480156106f457600080fd5b506106fd61179d565b60405161070a9190614bb4565b60405180910390f35b34801561071f57600080fd5b5061073a60048036038101906107359190614429565b6117c6565b6040516107479190614cf9565b60405180910390f35b34801561075c57600080fd5b5061077760048036038101906107729190614611565b6117e6565b005b34801561078557600080fd5b506107a0600480360381019061079b91906146de565b611952565b005b3480156107ae57600080fd5b506107b7611a1f565b6040516107c49190614d58565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef9190614591565b611a5c565b005b34801561080257600080fd5b5061080b611e1d565b6040516108189190614bb4565b60405180910390f35b34801561082d57600080fd5b50610848600480360381019061084391906146de565b611e43565b005b34801561085657600080fd5b50610871600480360381019061086c91906145d1565b611f0f565b60405161087e9190614cf9565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190614429565b611f24565b6040516108bb9190614cf9565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e6919061475e565b611f44565b005b3480156108f957600080fd5b50610914600480360381019061090f9190614591565b612093565b005b34801561092257600080fd5b5061092b61216f565b6040516109389190614f5a565b60405180910390f35b34801561094d57600080fd5b5061096860048036038101906109639190614483565b612175565b6040516109759190614f5a565b60405180910390f35b34801561098a57600080fd5b506109a560048036038101906109a0919061469e565b6121fc565b005b3480156109b357600080fd5b506109ce60048036038101906109c991906146de565b6122a2565b6040516109db9190614bb4565b60405180910390f35b3480156109f057600080fd5b50610a0b6004803603810190610a069190614456565b6122e1565b005b348015610a1957600080fd5b50610a346004803603810190610a2f919061475e565b6123a3565b005b348015610a4257600080fd5b50610a5d6004803603810190610a589190614591565b6124f4565b005b348015610a6b57600080fd5b50610a746125d0565b604051610a819190614d3d565b60405180910390f35b348015610a9657600080fd5b50610ab16004803603810190610aac9190614429565b6125f6565b604051610abe9190614cf9565b60405180910390f35b601e5481565b60295481565b60606040518060400160405280600981526020017f445241474f4e4545520000000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bf09190614f5a565b60405180910390a36001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60001515602860149054906101000a900460ff16151514610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90614e5a565b60405180910390fd5b80602860146101000a81548160ff02191690831515021790555043601181905550610cae6010544361261690919063ffffffff16565b6012819055507f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df81604051610ce39190614cf9565b60405180910390a150565b6000600554905090565b610d01336112a1565b610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3790614efa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610daa5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610de35750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e1c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610e555750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b90614e7a565b60405180910390fd5b84602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcbc6e694f9cedabb09aeff1b1031513e7c8738cedf6395c1cd6d08760e28bc6e8585858585604051611010959493929190614bea565b60405180910390a15050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461120b5761118a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126749092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6112168484846126d8565b90509392505050565b600061129c61124f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b61128e61127d600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661174e565b600554612ffe90919063ffffffff16565b612ffe90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b61132c336112a1565b61136b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136290614efa565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda82826040516113f3929190614c3d565b60405180910390a15050565b602860149054906101000a900460ff1681565b600061143e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610b10565b9050919050565b61144e336112a1565b61148d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148490614efa565b60405180910390fd5b611495613048565b565b6114a0336112a1565b6114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690614efa565b60405180910390fd5b6114f661271060055461371290919063ffffffff16565b8111611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90614d7a565b60405180910390fd5b806006819055507f510e4637d257d903a794aca1c3cac80d12bf71d2409f8f975ff245c61845732e8160405161156d9190614f5a565b60405180910390a150565b611581336112a1565b6115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b790614efa565b60405180910390fd5b6115d761271060055461371290919063ffffffff16565b8111611618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160f90614d7a565b60405180910390fd5b806007819055507fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b8160405161164e9190614f5a565b60405180910390a150565b611662336112a1565b6116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890614efa565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d8282604051611729929190614c3d565b60405180910390a15050565b60075481565b602860159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6117ef336112a1565b61182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590614efa565b60405180910390fd5b60c88383905010611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614f1a565b60405180910390fd5b60005b838390508110156119115781600c600086868581811061189a576118996153aa565b5b90506020020160208101906118af9190614429565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061190a906152d4565b9050611877565b507f11d4d128e8f89ae2e8815168b9eba079dd6668b75f1e3a9dd96ac6192a7c4dcb83838360405161194593929190614cc7565b60405180910390a1505050565b61195b336112a1565b61199a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199190614efa565b60405180910390fd5b601e5481106119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d590614eba565b60405180910390fd5b80601d819055507f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f481604051611a149190614f5a565b60405180910390a150565b60606040518060400160405280600581526020017f4452474e52000000000000000000000000000000000000000000000000000000815250905090565b611a65336112a1565b611aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9b90614efa565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90614dfa565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015611bfc57600a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611dd3565b6001600a8054905011611c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3b90614e3a565b60405180910390fd5b60005b600a80549050811015611dd1578273ffffffffffffffffffffffffffffffffffffffff16600a8281548110611c7f57611c7e6153aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dbe57600a6001600a80549050611cda91906151ac565b81548110611ceb57611cea6153aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a8281548110611d2a57611d296153aa565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a805480611d8457611d8361537b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611dd1565b8080611dc9906152d4565b915050611c47565b505b8015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e4c336112a1565b611e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8290614efa565b60405180910390fd5b60328110611ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec590614d9a565b60405180910390fd5b806010819055507f80838eb3341767dec8bc142ca41047631270a18952c3b835d5ca0d1c3608a2cb81604051611f049190614f5a565b60405180910390a150565b6000611f1c3384846126d8565b905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611f4d336112a1565b611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8390614efa565b60405180910390fd5b856018819055508460198190555083601a8190555082601b8190555081601c81905550611ff882611fea85611fdc88611fce8b8d61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b60208190555080602181905550601e54602054111561204c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204390614eba565b60405180910390fd5b7ffdd7c66a68b70fa92b44bc177e5154fe4ae8a19e8fc2920396a5ea2db9a783328686868686604051612083959493929190614fcf565b60405180910390a1505050505050565b61209c336112a1565b6120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d290614efa565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b8282604051612163929190614c3d565b60405180910390a15050565b60115481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612205336112a1565b612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90614efa565b60405180910390fd5b81602860156101000a81548160ff021916908315150217905550806029819055507fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd8282604051612296929190614d14565b60405180910390a15050565b600a81815481106122b257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122ea336112a1565b612329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232090614efa565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516123989190614bcf565b60405180910390a150565b6123ac336112a1565b6123eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e290614efa565b60405180910390fd5b856013819055508460148190555083601581905550826016819055508160178190555061245960175461244b8561243d8861242f8b8d61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b61261690919063ffffffff16565b601f8190555080602181905550601e54601f5411156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490614eba565b60405180910390fd5b7f0ebc4c8adc990f93864d49e46d4543ac8e892fd73ba3ebe0b1794d0f6929f81686868686866040516124e4959493929190614fcf565b60405180910390a1505050505050565b6124fd336112a1565b61253c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253390614efa565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f62ff8320fc089e815ec009a710ef61f8c650c1666630c8fc091aee0f66474f6682826040516125c4929190614c3d565b60405180910390a15050565b602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b600080828461262591906150cb565b90508381101561266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190614e1a565b60405180910390fd5b8091505092915050565b60008383111582906126bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b39190614d58565b60405180910390fd5b50600083856126cb91906151ac565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561277e5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b490614f3a565b60405180910390fd5b602a60009054906101000a900460ff16156127e4576127dd84848461375c565b9050612ff7565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128885750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128dd57602860149054906101000a900460ff166128dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d390614e9a565b60405180910390fd5b5b6128e561392f565b156128f3576128f2613048565b5b6000829050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b3157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b2c576007546129f084600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b111580612a465750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7c90614dda565b60405180910390fd5b60065483111580612adf5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1590614dba565b60405180910390fd5b612b29858585613a02565b90505b612e62565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c7f57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c7a5760065483111580612c2e5750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6490614dba565b60405180910390fd5b612c778584613e21565b90505b612e61565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e6057600754612d2584600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b111580612d7b5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612db190614dda565b60405180910390fd5b60065483111580612e145750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4a90614dba565b60405180910390fd5b612e5d8584614129565b90505b5b5b612eb483600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ffe90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4981600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fe99190614f5a565b60405180910390a360019150505b9392505050565b600061304083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612674565b905092915050565b6001602a60006101000a81548160ff021916908315150217905550600061307c60185460135461261690919063ffffffff16565b905060006130bf601c546130b16017546130a3602054601f5461261690919063ffffffff16565b612ffe90919063ffffffff16565b612ffe90919063ffffffff16565b90506000600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061313f600261313185613123888761428c90919063ffffffff16565b61371290919063ffffffff16565b61371290919063ffffffff16565b905060006131568284612ffe90919063ffffffff16565b905060004790506000600267ffffffffffffffff81111561317a576131796153d9565b5b6040519080825280602002602001820160405280156131a85781602001602082028036833780820191505090505b50905030816000815181106131c0576131bf6153aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613231576132306153aa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016132cf959493929190614f75565b600060405180830381600087803b1580156132e957600080fd5b505af11580156132fd573d6000803e3d6000fd5b5050505060006133168347612ffe90919063ffffffff16565b9050600061334061333160028b61371290919063ffffffff16565b89612ffe90919063ffffffff16565b9050600061339260026133848461337661336760185460135461261690919063ffffffff16565b8861428c90919063ffffffff16565b61371290919063ffffffff16565b61371290919063ffffffff16565b905060006133d1836133c36133b460195460145461261690919063ffffffff16565b8761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613410846134026133f3601a5460155461261690919063ffffffff16565b8861428c90919063ffffffff16565b61371290919063ffffffff16565b9050600061344f85613441613432601b5460165461261690919063ffffffff16565b8961428c90919063ffffffff16565b61371290919063ffffffff16565b90506000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168460405161349990614b9f565b60006040518083038185875af1925050503d80600081146134d6576040519150601f19603f3d011682016040523d82523d6000602084013e6134db565b606091505b50509050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161352590614b9f565b60006040518083038185875af1925050503d8060008114613562576040519150601f19603f3d011682016040523d82523d6000602084013e613567565b606091505b505080915050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516135b390614b9f565b60006040518083038185875af1925050503d80600081146135f0576040519150601f19603f3d011682016040523d82523d6000602084013e6135f5565b606091505b5050809150506000905060008b11156136e757602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308e600080602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161369196959493929190614c66565b6060604051808303818588803b1580156136aa57600080fd5b505af11580156136be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906136e3919061470b565b5050505b50505050505050505050505050506000602a60006101000a81548160ff021916908315150217905550565b600061375483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614307565b905092915050565b60006137e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126749092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061387c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391c9190614f5a565b60405180910390a3600190509392505050565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156139985750602a60009054906101000a900460ff16155b80156139b05750602860159054906101000a900460ff165b80156139fd5750602954600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6000601254431015613b1957602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613aba5750602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613b18576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b6000613b58602154613b4a613b3b601754601f54612ffe90919063ffffffff16565b8661428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613b85602154613b776017548761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613b9c828461261690919063ffffffff16565b9050613bf083600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613c909190614f5a565b60405180910390a36000821115613e0257613d158260086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b60086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613df99190614f5a565b60405180910390a35b613e158186612ffe90919063ffffffff16565b93505050509392505050565b600080613e61602154613e53613e44601c54602054612ffe90919063ffffffff16565b8661428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613e8e602154613e80601c548761428c90919063ffffffff16565b61371290919063ffffffff16565b90506000613ea5828461261690919063ffffffff16565b9050613ef983600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613f999190614f5a565b60405180910390a3600082111561410b5761401e8260086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b60086000602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516141029190614f5a565b60405180910390a35b61411e8186612ffe90919063ffffffff16565b935050505092915050565b600080601d54905060125443101561414057606390505b600061416960215461415b848761428c90919063ffffffff16565b61371290919063ffffffff16565b9050600081111561426f576141c681600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261690919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516142669190614f5a565b60405180910390a35b6142828185612ffe90919063ffffffff16565b9250505092915050565b60008083141561429f5760009050614301565b600082846142ad9190615152565b90508284826142bc9190615121565b146142fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142f390614eda565b60405180910390fd5b809150505b92915050565b6000808311829061434e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143459190614d58565b60405180910390fd5b506000838561435d9190615121565b9050809150509392505050565b600081359050614379816156e8565b92915050565b60008135905061438e816156ff565b92915050565b60008083601f8401126143aa576143a961540d565b5b8235905067ffffffffffffffff8111156143c7576143c6615408565b5b6020830191508360208202830111156143e3576143e2615412565b5b9250929050565b6000813590506143f981615716565b92915050565b60008135905061440e8161572d565b92915050565b6000815190506144238161572d565b92915050565b60006020828403121561443f5761443e61541c565b5b600061444d8482850161436a565b91505092915050565b60006020828403121561446c5761446b61541c565b5b600061447a8482850161437f565b91505092915050565b6000806040838503121561449a5761449961541c565b5b60006144a88582860161436a565b92505060206144b98582860161436a565b9150509250929050565b600080600080600060a086880312156144df576144de61541c565b5b60006144ed8882890161436a565b95505060206144fe8882890161436a565b945050604061450f8882890161436a565b93505060606145208882890161436a565b92505060806145318882890161436a565b9150509295509295909350565b6000806000606084860312156145575761455661541c565b5b60006145658682870161436a565b93505060206145768682870161436a565b9250506040614587868287016143ff565b9150509250925092565b600080604083850312156145a8576145a761541c565b5b60006145b68582860161436a565b92505060206145c7858286016143ea565b9150509250929050565b600080604083850312156145e8576145e761541c565b5b60006145f68582860161436a565b9250506020614607858286016143ff565b9150509250929050565b60008060006040848603121561462a5761462961541c565b5b600084013567ffffffffffffffff81111561464857614647615417565b5b61465486828701614394565b93509350506020614667868287016143ea565b9150509250925092565b6000602082840312156146875761468661541c565b5b6000614695848285016143ea565b91505092915050565b600080604083850312156146b5576146b461541c565b5b60006146c3858286016143ea565b92505060206146d4858286016143ff565b9150509250929050565b6000602082840312156146f4576146f361541c565b5b6000614702848285016143ff565b91505092915050565b6000806000606084860312156147245761472361541c565b5b600061473286828701614414565b935050602061474386828701614414565b925050604061475486828701614414565b9150509250925092565b60008060008060008060c0878903121561477b5761477a61541c565b5b600061478989828a016143ff565b965050602061479a89828a016143ff565b95505060406147ab89828a016143ff565b94505060606147bc89828a016143ff565b93505060806147cd89828a016143ff565b92505060a06147de89828a016143ff565b9150509295509295509295565b60006147f78383614812565b60208301905092915050565b61480c81615247565b82525050565b61481b816151e0565b82525050565b61482a816151e0565b82525050565b600061483c8385615087565b93506148478261503d565b8060005b858110156148805761485d82846150b4565b61486788826147eb565b97506148728361506d565b92505060018101905061484b565b5085925050509392505050565b600061489882615057565b6148a28185615087565b93506148ad83615047565b8060005b838110156148de5781516148c588826147eb565b97506148d08361507a565b9250506001810190506148b1565b5085935050505092915050565b6148f481615204565b82525050565b61490381615259565b82525050565b6149128161526b565b82525050565b600061492382615062565b61492d81856150a3565b935061493d8185602086016152a1565b61494681615421565b840191505092915050565b600061495e6016836150a3565b915061496982615432565b602082019050919050565b60006149816012836150a3565b915061498c8261545b565b602082019050919050565b60006149a46011836150a3565b91506149af82615484565b602082019050919050565b60006149c7601f836150a3565b91506149d2826154ad565b602082019050919050565b60006149ea6011836150a3565b91506149f5826154d6565b602082019050919050565b6000614a0d601b836150a3565b9150614a18826154ff565b602082019050919050565b6000614a30600f836150a3565b9150614a3b82615528565b602082019050919050565b6000614a536012836150a3565b9150614a5e82615551565b602082019050919050565b6000614a766017836150a3565b9150614a818261557a565b602082019050919050565b6000614a996014836150a3565b9150614aa4826155a3565b602082019050919050565b6000614abc601d836150a3565b9150614ac7826155cc565b602082019050919050565b6000614adf6021836150a3565b9150614aea826155f5565b604082019050919050565b6000614b026006836150a3565b9150614b0d82615644565b602082019050919050565b6000614b25600083615098565b9150614b308261566d565b600082019050919050565b6000614b486025836150a3565b9150614b5382615670565b604082019050919050565b6000614b6b600b836150a3565b9150614b76826156bf565b602082019050919050565b614b8a81615230565b82525050565b614b998161523a565b82525050565b6000614baa82614b18565b9150819050919050565b6000602082019050614bc96000830184614821565b92915050565b6000602082019050614be46000830184614803565b92915050565b600060a082019050614bff6000830188614821565b614c0c6020830187614821565b614c196040830186614821565b614c266060830185614821565b614c336080830184614821565b9695505050505050565b6000604082019050614c526000830185614821565b614c5f60208301846148eb565b9392505050565b600060c082019050614c7b6000830189614821565b614c886020830188614b81565b614c956040830187614909565b614ca26060830186614909565b614caf6080830185614821565b614cbc60a0830184614b81565b979650505050505050565b60006040820190508181036000830152614ce2818587614830565b9050614cf160208301846148eb565b949350505050565b6000602082019050614d0e60008301846148eb565b92915050565b6000604082019050614d2960008301856148eb565b614d366020830184614b81565b9392505050565b6000602082019050614d5260008301846148fa565b92915050565b60006020820190508181036000830152614d728184614918565b905092915050565b60006020820190508181036000830152614d9381614951565b9050919050565b60006020820190508181036000830152614db381614974565b9050919050565b60006020820190508181036000830152614dd381614997565b9050919050565b60006020820190508181036000830152614df3816149ba565b9050919050565b60006020820190508181036000830152614e13816149dd565b9050919050565b60006020820190508181036000830152614e3381614a00565b9050919050565b60006020820190508181036000830152614e5381614a23565b9050919050565b60006020820190508181036000830152614e7381614a46565b9050919050565b60006020820190508181036000830152614e9381614a69565b9050919050565b60006020820190508181036000830152614eb381614a8c565b9050919050565b60006020820190508181036000830152614ed381614aaf565b9050919050565b60006020820190508181036000830152614ef381614ad2565b9050919050565b60006020820190508181036000830152614f1381614af5565b9050919050565b60006020820190508181036000830152614f3381614b3b565b9050919050565b60006020820190508181036000830152614f5381614b5e565b9050919050565b6000602082019050614f6f6000830184614b81565b92915050565b600060a082019050614f8a6000830188614b81565b614f976020830187614909565b8181036040830152614fa9818661488d565b9050614fb86060830185614821565b614fc56080830184614b81565b9695505050505050565b600060a082019050614fe46000830188614b81565b614ff16020830187614b81565b614ffe6040830186614b81565b61500b6060830185614b81565b6150186080830184614b81565b9695505050505050565b60006020820190506150376000830184614b90565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006150c3602084018461436a565b905092915050565b60006150d682615230565b91506150e183615230565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151165761511561531d565b5b828201905092915050565b600061512c82615230565b915061513783615230565b9250826151475761514661534c565b5b828204905092915050565b600061515d82615230565b915061516883615230565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156151a1576151a061531d565b5b828202905092915050565b60006151b782615230565b91506151c283615230565b9250828210156151d5576151d461531d565b5b828203905092915050565b60006151eb82615210565b9050919050565b60006151fd82615210565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006152528261527d565b9050919050565b60006152648261527d565b9050919050565b600061527682615230565b9050919050565b60006152888261528f565b9050919050565b600061529a82615210565b9050919050565b60005b838110156152bf5780820151818401526020810190506152a4565b838111156152ce576000848401525b50505050565b60006152df82615230565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156153125761531161531d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f43616e27742072657374726963742074726164696e6700000000000000000000600082015250565b7f43616e277420676f207468617420686967680000000000000000000000000000600082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782057616c6c6574204c696d6974204c696d697420457863656564656400600082015250565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5265717569726564203120706169720000000000000000000000000000000000600082015250565b7f43616e27742073746f702074726164696e670000000000000000000000000000600082015250565b7f5a65726f20416464726573732076616c69646174696f6e000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f466565732063616e6e6f7420626520686967686572207468616e203525000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f43616e27742075706461746520746f6f206d616e792077616c6c65747320617460008201527f206f6e6365000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6156f1816151e0565b81146156fc57600080fd5b50565b615708816151f2565b811461571357600080fd5b50565b61571f81615204565b811461572a57600080fd5b50565b61573681615230565b811461574157600080fd5b5056fea2646970667358221220f5ecbf00a10d0c3d5adf603fd768a5cc14d72fc75e799b65ddee9c4e96fababb64736f6c63430008070033
Deployed Bytecode Sourcemap
4334:18935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7308:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8209:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9474:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9896:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6649:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15516:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9204:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21170:826;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10414:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23122:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2492:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9298:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6543:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18667:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8131:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10120:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23034:76;;;;;;;;;;;;;:::i;:::-;;17856:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18077:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19058:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6183:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8172:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9644:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6118:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9560:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6594:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18308:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20924:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9384:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22221:803;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8103:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18856:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10250:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20257:659;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19420:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6760:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9755:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22004:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6383:29;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2603:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19613:636;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19233:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8072:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6488:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:25;;;;:::o;8209:53::-;;;;:::o;9474:80::-;9522:13;9546:5;;;;;;;;;;;;;;;;;9539:12;;9474:80;:::o;9896:216::-;9971:4;10023:6;9988:11;:23;10000:10;9988:23;;;;;;;;;;;;;;;:32;10012:7;9988:32;;;;;;;;;;;;;;;:41;;;;10066:7;10045:37;;10054:10;10045:37;;;10075:6;10045:37;;;;;;:::i;:::-;;;;;;;;10100:4;10093:11;;9896:216;;;;:::o;6649:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;15516:295::-;15590:5;15572:23;;:14;;;;;;;;;;;:23;;;15564:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;15646:7;15629:14;;:24;;;;;;;;;;;;;;;;;;15678:12;15664:11;:26;;;;15721:28;15738:10;;15721:12;:16;;:28;;;;:::i;:::-;15701:17;:48;;;;15767:36;15795:7;15767:36;;;;;;:::i;:::-;;;;;;;;15516:295;:::o;9204:88::-;9259:7;9277:12;;9270:19;;9204:88;:::o;21170:826::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21414:1:::1;21380:36;;:22;:36;;;;:75;;;;;21453:1;21420:35;;:21;:35;;;;21380:75;:115;;;;;21493:1;21459:36;;:22;:36;;;;21380:115;:148;;;;;21526:1;21499:29;;:15;:29;;;;21380:148;:182;;;;;21560:1;21532:30;;:16;:30;;;;21380:182;21372:219;;;;;;;;;;;;:::i;:::-;;;;;;;;;21626:22;21602:21;;:46;;;;;;;;;;;;;;;;;;21682:21;21659:20;;:44;;;;;;;;;;;;;;;;;;21738:22;21714:21;;:46;;;;;;;;;;;;;;;;;;21788:15;21771:14;;:32;;;;;;;;;;;;;;;;;;21832:16;21814:15;;:34;;;;;;;;;;;;;;;;;;21867:121;21883:22;21907:21;21930:22;21954:15;21971:16;21867:121;;;;;;;;;;:::i;:::-;;;;;;;;21170:826:::0;;;;;:::o;10414:370::-;10514:4;10569:17;10534:11;:19;10546:6;10534:19;;;;;;;;;;;;;;;:31;10554:10;10534:31;;;;;;;;;;;;;;;;:52;10531:186;;10636:69;10672:6;10636:69;;;;;;;;;;;;;;;;;:11;:19;10648:6;10636:19;;;;;;;;;;;;;;;:31;10656:10;10636:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10602:11;:19;10614:6;10602:19;;;;;;;;;;;;;;;:31;10622:10;10602:31;;;;;;;;;;;;;;;:103;;;;10531:186;10736:40;10750:6;10758:9;10769:6;10736:13;:40::i;:::-;10729:47;;10414:370;;;;;:::o;23122:142::-;23175:7;23202:54;23240:15;23250:4;;;;;;;;;;;23240:9;:15::i;:::-;23202:33;23219:15;23229:4;;;;;;;;;;;23219:9;:15::i;:::-;23202:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;23195:61;;23122:142;:::o;2492:103::-;2547:4;2582:5;;;;;;;;;;;2571:16;;:7;:16;;;2564:23;;2492:103;;;:::o;9298:80::-;9350:5;6042:2;9359:16;;9298:80;:::o;6543:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;18667:181::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:5:::1;18744:13;:23;18758:8;18744:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18801:39;18824:8;18834:5;18801:39;;;;;;;:::i;:::-;;;;;;;;18667:181:::0;;:::o;8131:34::-;;;;;;;;;;;;;:::o;10120:122::-;10175:4;10199:35;10207:7;10216:17;10199:7;:35::i;:::-;10192:42;;10120:122;;;:::o;23034:76::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;23092:10:::1;:8;:10::i;:::-;23034:76::o:0;17856:213::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17941:23:::1;17958:5;17941:12;;:16;;:23;;;;:::i;:::-;17932:6;:32;17924:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18017:6;18002:12;:21;;;;18041:20;18054:6;18041:20;;;;;;:::i;:::-;;;;;;;;17856:213:::0;:::o;18077:223::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18164:23:::1;18181:5;18164:12;;:16;;:23;;;;:::i;:::-;18155:6;:32;18147:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18244:6;18225:16;:25;;;;18268:24;18285:6;18268:24;;;;;;:::i;:::-;;;;;;;;18077:223:::0;:::o;19058:167::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19165:6:::1;19143:11;:19;19155:6;19143:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19189;19202:6;19210;19189:28;;;;;;;:::i;:::-;;;;;;;;19058:167:::0;;:::o;6183:60::-;;;;:::o;8172:30::-;;;;;;;;;;;;;:::o;9644:105::-;9710:7;9728:9;:18;9738:7;9728:18;;;;;;;;;;;;;;;;9721:25;;9644:105;;;:::o;6118:58::-;;;;:::o;9560:78::-;9612:7;9630:5;;;;;;;;;;;9623:12;;9560:78;:::o;6594:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;18308:351::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18437:3:::1;18418:9;;:16;;:22;18409:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18498:9;18493:106;18513:9;;:16;;18509:1;:20;18493:106;;;18581:6;18551:13;:27;18565:9;;18575:1;18565:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18551:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18531:3;;;;:::i;:::-;;;18493:106;;;;18616:35;18633:9;;18644:6;18616:35;;;;;;;;:::i;:::-;;;;;;;;18308:351:::0;;;:::o;20924:236::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21025:6:::1;;21010:12;:21;21002:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21090:12;21076:11;:26;;;;21120:32;21139:12;21120:32;;;;;;:::i;:::-;;;;;;;;20924:236:::0;:::o;9384:84::-;9434:13;9458:7;;;;;;;;;;;;;;;;;9451:14;;9384:84;:::o;22221:803::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22364:6:::1;22328:42;;:25;:32;22354:5;22328:32;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;22320:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;22444:6;22409:25;:32;22435:5;22409:32;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;22470:6;22467:482;;;22496:12;22514:5;22496:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22467:482;;;22589:1;22567:12;:19;;;;:23;22559:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;22634:9;22629:305;22653:12;:19;;;;22649:1;:23;22629:305;;;22725:5;22706:24;;:12;22719:1;22706:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:24;;;22702:213;;;22777:12;22812:1;22790:12;:19;;;;:23;;;;:::i;:::-;22777:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22759:12;22772:1;22759:15;;;;;;;;:::i;:::-;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;22841:12;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;22886:5;;22702:213;22674:3;;;;;:::i;:::-;;;;22629:305;;;;22467:482;23005:6;22970:42;;22998:5;22970:42;;;;;;;;;;;;22221:803:::0;;:::o;8103:19::-;;;;;;;;;;;;;:::o;18856:192::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18941:2:::1;18931:7;:12;18923:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18990:7;18977:10;:20;;;;19023:17;19032:7;19023:17;;;;;;:::i;:::-;;;;;;;;18856:192:::0;:::o;10250:156::-;10330:4;10354:44;10368:10;10380:9;10391:6;10354:13;:44::i;:::-;10347:51;;10250:156;;;;:::o;6419:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;20257:659::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20451:13:::1;20432:16;:32;;;;20494:13;20475:16;:32;;;;20531:7;20518:10;:20;;;;20562:7;20549:10;:20;;;;20594:8;20580:11;:22;;;;20628:72;20691:8;20628:58;20678:7;20628:45;20665:7;20628:32;20646:13;20628;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;:49;;:58;;;;:::i;:::-;:62;;:72;;;;:::i;:::-;20613:12;:87;;;;20728:15;20711:14;:32;;;;20778:6;;20762:12;;:22;;20754:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20836:72;20852:13;20867;20881:7;20890;20899:8;20836:72;;;;;;;;;;:::i;:::-;;;;;;;;20257:659:::0;;;;;;:::o;19420:185::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19539:6:::1;19511:17;:25;19529:6;19511:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19563;19582:6;19590;19563:34;;;;;;;:::i;:::-;;;;;;;;19420:185:::0;;:::o;6760:26::-;;;;:::o;9755:133::-;9839:7;9857:11;:19;9869:6;9857:19;;;;;;;;;;;;;;;:28;9877:7;9857:28;;;;;;;;;;;;;;;;9850:35;;9755:133;;;;:::o;22004:209::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;22111:8:::1;22097:11;;:22;;;;;;;;;;;;;;;;;;22146:7;22130:13;:23;;;;22171:34;22187:8;22197:7;22171:34;;;;;;;:::i;:::-;;;;;;;;22004:209:::0;;:::o;6383:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2603:138::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2689:3:::1;2681:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;2708:25;2729:3;2708:25;;;;;;:::i;:::-;;;;;;;;2603:138:::0;:::o;19613:636::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19803:13:::1;19788:12;:28;;;;19842:13;19827:12;:28;;;;19875:7;19866:6;:16;;;;19902:7;19893:6;:16;;;;19930:8;19920:7;:18;;;;19964:71;20027:7;;19964:58;20014:7;19964:45;20001:7;19964:32;19982:13;19964;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;:49;;:58;;;;:::i;:::-;:62;;:71;;;;:::i;:::-;19950:11;:85;;;;20063:15;20046:14;:32;;;;20112:6;;20097:11;;:21;;20089:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20170:71;20185:13;20200;20214:7;20223;20232:8;20170:71;;;;;;;;;;:::i;:::-;;;;;;;;19613:636:::0;;;;;;:::o;19233:179::-;2441:19;2449:10;2441:7;:19::i;:::-;2433:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19348:6:::1;19322:15;:23;19338:6;19322:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19372;19389:6;19397;19372:32;;;;;;;:::i;:::-;;;;;;;;19233:179:::0;;:::o;8072:24::-;;;;;;;;;;;;;:::o;6488:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;145:181::-;203:7;223:9;239:1;235;:5;;;;:::i;:::-;223:17;;264:1;259;:6;;251:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;317:1;310:8;;;145:181;;;;:::o;474:192::-;560:7;593:1;588;:6;;596:12;580:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;620:9;636:1;632;:5;;;;:::i;:::-;620:17;;657:1;650:8;;;474:192;;;;;:::o;10792:1846::-;10884:4;10910:13;:21;10924:6;10910:21;;;;;;;;;;;;;;;;;;;;;;;;;10909:22;:51;;;;;10936:13;:24;10950:9;10936:24;;;;;;;;;;;;;;;;;;;;;;;;;10935:25;10909:51;10901:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10989:6;;;;;;;;;;;10986:63;;;11005:41;11020:6;11028:9;11039:6;11005:14;:41::i;:::-;10998:48;;;;10986:63;11065:11;:19;11077:6;11065:19;;;;;;;;;;;;;;;;;;;;;;;;;11064:20;:47;;;;;11089:11;:22;11101:9;11089:22;;;;;;;;;;;;;;;;;;;;;;;;;11088:23;11064:47;11061:124;;;11135:14;;;;;;;;;;;11127:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11061:124;11200:16;:14;:16::i;:::-;11197:35;;;11219:10;:8;:10::i;:::-;11197:35;11246:22;11271:6;11246:31;;11294:25;:33;11320:6;11294:33;;;;;;;;;;;;;;;;;;;;;;;;;11291:1111;;;11354:11;:22;11366:9;11354:22;;;;;;;;;;;;;;;;;;;;;;;;;11350:365;;11441:16;;11405:32;11430:6;11405:9;:20;11415:9;11405:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:52;;:84;;;;11461:17;:28;11479:9;11461:28;;;;;;;;;;;;;;;;;;;;;;;;;11405:84;11397:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;11562:12;;11552:6;:22;;:52;;;;11578:15;:26;11594:9;11578:26;;;;;;;;;;;;;;;;;;;;;;;;;11552:52;11544:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11662:37;11673:6;11681:9;11692:6;11662:10;:37::i;:::-;11645:54;;11350:365;11291:1111;;;11737:25;:36;11763:9;11737:36;;;;;;;;;;;;;;;;;;;;;;;;;11734:668;;;11801:11;:19;11813:6;11801:19;;;;;;;;;;;;;;;;;;;;;;;;;11797:204;;11859:12;;11849:6;:22;;:49;;;;11875:15;:23;11891:6;11875:23;;;;;;;;;;;;;;;;;;;;;;;;;11849:49;11841:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11956:27;11968:6;11976;11956:11;:27::i;:::-;11939:44;;11797:204;11734:668;;;12039:11;:19;12051:6;12039:19;;;;;;;;;;;;;;;;;;;;;;;;;12034:357;;12124:16;;12088:32;12113:6;12088:9;:20;12098:9;12088:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:52;;:84;;;;12144:17;:28;12162:9;12144:28;;;;;;;;;;;;;;;;;;;;;;;;;12088:84;12080:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;12245:12;;12235:6;:22;;:49;;;;12261:15;:23;12277:6;12261:23;;;;;;;;;;;;;;;;;;;;;;;;;12235:49;12227:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12342:31;12358:6;12366;12342:15;:31::i;:::-;12325:48;;12034:357;11734:668;11291:1111;12434:29;12456:6;12434:9;:17;12444:6;12434:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12414:9;:17;12424:6;12414:17;;;;;;;;;;;;;;;:49;;;;12497:40;12522:14;12497:9;:20;12507:9;12497:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12474:9;:20;12484:9;12474:20;;;;;;;;;;;;;;;:63;;;;12582:9;12565:43;;12574:6;12565:43;;;12593:14;12565:43;;;;;;:::i;:::-;;;;;;;;12626:4;12619:11;;;10792:1846;;;;;;:::o;332:136::-;390:7;417:43;421:1;424;417:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;410:50;;332:136;;;;:::o;15819:2003::-;8328:4;8319:6;;:13;;;;;;;;;;;;;;;;;;15868:24:::1;15895:34;15912:16;;15895:12;;:16;;:34;;;;:::i;:::-;15868:61;;15940:20;15962:59;16009:11;;15962:42;15996:7;;15962:29;15978:12;;15962:11;;:15;;:29;;;;:::i;:::-;:33;;:42;;;;:::i;:::-;:46;;:59;;;;:::i;:::-;15940:81;;16034:28;16065:9;:24;16083:4;16065:24;;;;;;;;;;;;;;;;16034:55;;16100:23;16126:67;16191:1;16126:60;16173:12;16126:42;16151:16;16126:20;:24;;:42;;;;:::i;:::-;:46;;:60;;;;:::i;:::-;:64;;:67;;;;:::i;:::-;16100:93;;16204:20;16227:41;16252:15;16227:20;:24;;:41;;;;:::i;:::-;16204:64;;16281:21;16305;16281:45;;16339:21;16377:1;16363:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16339:40;;16408:4;16390;16395:1;16390:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16434:4;;;;;;;;;;;16424;16429:1;16424:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16451:6;;;;;;;;;;;:57;;;16523:12;16550:1;16566:4;16593;16613:15;16451:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16652:17;16672:40;16698:13;16672:21;:25;;:40;;;;:::i;:::-;16652:60;;16725:19;16747:41;16764:23;16785:1;16764:16;:20;;:23;;;;:::i;:::-;16747:12;:16;;:41;;;;:::i;:::-;16725:63;;16809:26;16838:73;16909:1;16838:66;16892:11;16838:49;16852:34;16869:16;;16852:12;;:16;;:34;;;;:::i;:::-;16838:9;:13;;:49;;;;:::i;:::-;:53;;:66;;;;:::i;:::-;:70;;:73;;;;:::i;:::-;16809:102;;16922:26;16951:66;17005:11;16951:49;16965:34;16982:16;;16965:12;;:16;;:34;;;;:::i;:::-;16951:9;:13;;:49;;;;:::i;:::-;:53;;:66;;;;:::i;:::-;16922:95;;17028:20;17051:54;17093:11;17051:37;17065:22;17076:10;;17065:6;;:10;;:22;;;;:::i;:::-;17051:9;:13;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;17028:77;;17116:20;17139:54;17181:11;17139:37;17153:22;17164:10;;17153:6;;:10;;:22;;;;:::i;:::-;17139:9;:13;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;17116:77;;17207:15;17235:20;;;;;;;;;;;17227:34;;17269:18;17227:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17206:86;;;17327:21;;;;;;;;;;;17319:35;;17362:12;17319:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17303:76;;;;;17414:14;;;;;;;;;;;17406:28;;17442:12;17406:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17390:69;;;;;17493:5;17480:18;;17532:1;17514:15;:19;17511:294;;;17549:6;;;;;;;;;;;:22;;;17579:18;17625:4;17649:15;17683:1;17703::::0;17723:21:::1;;;;;;;;;;;17763:15;17549:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17511:294;15857:1965;;;;;;;;;;;;;;8346:5:::0;8337:6;;:14;;;;;;;;;;;;;;;;;;15819:2003::o;928:132::-;986:7;1013:39;1017:1;1020;1013:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1006:46;;928:132;;;;:::o;12650:330::-;12743:4;12780:53;12802:6;12780:53;;;;;;;;;;;;;;;;;:9;:17;12790:6;12780:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12760:9;:17;12770:6;12760:17;;;;;;;;;;;;;;;:73;;;;12867:32;12892:6;12867:9;:20;12877:9;12867:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12844:9;:20;12854:9;12844:20;;;;;;;;;;;;;;;:55;;;;12932:9;12915:35;;12924:6;12915:35;;;12943:6;12915:35;;;;;;:::i;:::-;;;;;;;;12968:4;12961:11;;12650:330;;;;;:::o;15255:226::-;15304:4;15338:25;:37;15364:10;15338:37;;;;;;;;;;;;;;;;;;;;;;;;;15337:38;:58;;;;;15389:6;;;;;;;;;;;15388:7;15337:58;:82;;;;;15408:11;;;;;;;;;;;15337:82;:136;;;;;15460:13;;15432:9;:24;15450:4;15432:24;;;;;;;;;;;;;;;;:41;;15337:136;15321:152;;15255:226;:::o;13001:940::-;13090:7;13143:17;;13128:12;:32;13124:189;;;13194:4;;;;;;;;;;;13181:17;;:9;:17;;;;:49;;;;;13223:6;;;;;;;;;;;13202:28;;:9;:28;;;;13181:49;13177:121;;;13278:4;13251:13;:24;13265:9;13251:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13177:121;13124:189;13333:17;13353:56;13394:14;;13353:36;13364:24;13380:7;;13364:11;;:15;;:24;;;;:::i;:::-;13353:6;:10;;:36;;;;:::i;:::-;:40;;:56;;;;:::i;:::-;13333:76;;13420:21;13444:39;13468:14;;13444:19;13455:7;;13444:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;13420:63;;13494:22;13519:28;13533:13;13519:9;:13;;:28;;;;:::i;:::-;13494:53;;13587:39;13616:9;13587;:24;13605:4;13587:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13560:9;:24;13578:4;13560:24;;;;;;;;;;;;;;;:66;;;;13667:4;13642:42;;13651:6;13642:42;;;13674:9;13642:42;;;;;;:::i;:::-;;;;;;;;13716:1;13700:13;:17;13697:191;;;13763:45;13794:13;13763:9;:26;13773:15;;;;;;;;;;;13763:26;;;;;;;;;;;;;;;;:30;;:45;;;;:::i;:::-;13734:9;:26;13744:15;;;;;;;;;;;13734:26;;;;;;;;;;;;;;;:74;;;;13845:15;;;;;;;;;;;13828:48;;13837:6;13828:48;;;13862:13;13828:48;;;;;;:::i;:::-;;;;;;;;13697:191;13907:26;13918:14;13907:6;:10;;:26;;;;:::i;:::-;13900:33;;;;;13001:940;;;;;:::o;13949:723::-;14020:7;14041:17;14061:61;14107:14;;14061:41;14072:29;14089:11;;14072:12;;:16;;:29;;;;:::i;:::-;14061:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;14041:81;;14133:21;14157:43;14185:14;;14157:23;14168:11;;14157:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;14133:67;;14211:22;14236:28;14250:13;14236:9;:13;;:28;;;;:::i;:::-;14211:53;;14304:39;14333:9;14304;:24;14322:4;14304:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14277:9;:24;14295:4;14277:24;;;;;;;;;;;;;;;:66;;;;14384:4;14359:42;;14368:6;14359:42;;;14391:9;14359:42;;;;;;:::i;:::-;;;;;;;;14433:1;14417:13;:17;14414:191;;;14480:45;14511:13;14480:9;:26;14490:15;;;;;;;;;;;14480:26;;;;;;;;;;;;;;;;:30;;:45;;;;:::i;:::-;14451:9;:26;14461:15;;;;;;;;;;;14451:26;;;;;;;;;;;;;;;:74;;;;14562:15;;;;;;;;;;;14545:48;;14554:6;14545:48;;;14579:13;14545:48;;;;;;:::i;:::-;;;;;;;;14414:191;14624:26;14635:14;14624:6;:10;;:26;;;;:::i;:::-;14617:33;;;;;13949:723;;;;:::o;14680:563::-;14755:7;14774:16;14793:11;;14774:30;;14834:17;;14819:12;:32;14815:83;;;14879:2;14868:13;;14815:83;14908:17;14928:40;14953:14;;14928:20;14939:8;14928:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;14908:60;;15021:1;15009:9;:13;15005:176;;;15066:39;15095:9;15066;:24;15084:4;15066:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15039:9;:24;15057:4;15039:24;;;;;;;;;;;;;;;:66;;;;15151:4;15126:42;;15135:6;15126:42;;;15158:9;15126:42;;;;;;:::i;:::-;;;;;;;;15005:176;15213:21;15224:9;15213:6;:10;;:21;;;;:::i;:::-;15206:28;;;;14680:563;;;;:::o;672:250::-;730:7;759:1;754;:6;750:47;;;784:1;777:8;;;;750:47;809:9;825:1;821;:5;;;;:::i;:::-;809:17;;854:1;849;845;:5;;;;:::i;:::-;:10;837:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;913:1;906:8;;;672:250;;;;;:::o;1066:189::-;1152:7;1184:1;1180;:5;1187:12;1172:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1211:9;1227:1;1223;:5;;;;:::i;:::-;1211:17;;1246:1;1239:8;;;1066:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;330:568::-;403:8;413:6;463:3;456:4;448:6;444:17;440:27;430:122;;471:79;;:::i;:::-;430:122;584:6;571:20;561:30;;614:18;606:6;603:30;600:117;;;636:79;;:::i;:::-;600:117;750:4;742:6;738:17;726:29;;804:3;796:4;788:6;784:17;774:8;770:32;767:41;764:128;;;811:79;;:::i;:::-;764:128;330:568;;;;;:::o;904:133::-;947:5;985:6;972:20;963:29;;1001:30;1025:5;1001:30;:::i;:::-;904:133;;;;:::o;1043:139::-;1089:5;1127:6;1114:20;1105:29;;1143:33;1170:5;1143:33;:::i;:::-;1043:139;;;;:::o;1188:143::-;1245:5;1276:6;1270:13;1261:22;;1292:33;1319:5;1292:33;:::i;:::-;1188:143;;;;:::o;1337:329::-;1396:6;1445:2;1433:9;1424:7;1420:23;1416:32;1413:119;;;1451:79;;:::i;:::-;1413:119;1571:1;1596:53;1641:7;1632:6;1621:9;1617:22;1596:53;:::i;:::-;1586:63;;1542:117;1337:329;;;;:::o;1672:345::-;1739:6;1788:2;1776:9;1767:7;1763:23;1759:32;1756:119;;;1794:79;;:::i;:::-;1756:119;1914:1;1939:61;1992:7;1983:6;1972:9;1968:22;1939:61;:::i;:::-;1929:71;;1885:125;1672:345;;;;:::o;2023:474::-;2091:6;2099;2148:2;2136:9;2127:7;2123:23;2119:32;2116:119;;;2154:79;;:::i;:::-;2116:119;2274:1;2299:53;2344:7;2335:6;2324:9;2320:22;2299:53;:::i;:::-;2289:63;;2245:117;2401:2;2427:53;2472:7;2463:6;2452:9;2448:22;2427:53;:::i;:::-;2417:63;;2372:118;2023:474;;;;;:::o;2503:911::-;2598:6;2606;2614;2622;2630;2679:3;2667:9;2658:7;2654:23;2650:33;2647:120;;;2686:79;;:::i;:::-;2647:120;2806:1;2831:53;2876:7;2867:6;2856:9;2852:22;2831:53;:::i;:::-;2821:63;;2777:117;2933:2;2959:53;3004:7;2995:6;2984:9;2980:22;2959:53;:::i;:::-;2949:63;;2904:118;3061:2;3087:53;3132:7;3123:6;3112:9;3108:22;3087:53;:::i;:::-;3077:63;;3032:118;3189:2;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3160:118;3317:3;3344:53;3389:7;3380:6;3369:9;3365:22;3344:53;:::i;:::-;3334:63;;3288:119;2503:911;;;;;;;;:::o;3420:619::-;3497:6;3505;3513;3562:2;3550:9;3541:7;3537:23;3533:32;3530:119;;;3568:79;;:::i;:::-;3530:119;3688:1;3713:53;3758:7;3749:6;3738:9;3734:22;3713:53;:::i;:::-;3703:63;;3659:117;3815:2;3841:53;3886:7;3877:6;3866:9;3862:22;3841:53;:::i;:::-;3831:63;;3786:118;3943:2;3969:53;4014:7;4005:6;3994:9;3990:22;3969:53;:::i;:::-;3959:63;;3914:118;3420:619;;;;;:::o;4045:468::-;4110:6;4118;4167:2;4155:9;4146:7;4142:23;4138:32;4135:119;;;4173:79;;:::i;:::-;4135:119;4293:1;4318:53;4363:7;4354:6;4343:9;4339:22;4318:53;:::i;:::-;4308:63;;4264:117;4420:2;4446:50;4488:7;4479:6;4468:9;4464:22;4446:50;:::i;:::-;4436:60;;4391:115;4045:468;;;;;:::o;4519:474::-;4587:6;4595;4644:2;4632:9;4623:7;4619:23;4615:32;4612:119;;;4650:79;;:::i;:::-;4612:119;4770:1;4795:53;4840:7;4831:6;4820:9;4816:22;4795:53;:::i;:::-;4785:63;;4741:117;4897:2;4923:53;4968:7;4959:6;4948:9;4944:22;4923:53;:::i;:::-;4913:63;;4868:118;4519:474;;;;;:::o;4999:698::-;5091:6;5099;5107;5156:2;5144:9;5135:7;5131:23;5127:32;5124:119;;;5162:79;;:::i;:::-;5124:119;5310:1;5299:9;5295:17;5282:31;5340:18;5332:6;5329:30;5326:117;;;5362:79;;:::i;:::-;5326:117;5475:80;5547:7;5538:6;5527:9;5523:22;5475:80;:::i;:::-;5457:98;;;;5253:312;5604:2;5630:50;5672:7;5663:6;5652:9;5648:22;5630:50;:::i;:::-;5620:60;;5575:115;4999:698;;;;;:::o;5703:323::-;5759:6;5808:2;5796:9;5787:7;5783:23;5779:32;5776:119;;;5814:79;;:::i;:::-;5776:119;5934:1;5959:50;6001:7;5992:6;5981:9;5977:22;5959:50;:::i;:::-;5949:60;;5905:114;5703:323;;;;:::o;6032:468::-;6097:6;6105;6154:2;6142:9;6133:7;6129:23;6125:32;6122:119;;;6160:79;;:::i;:::-;6122:119;6280:1;6305:50;6347:7;6338:6;6327:9;6323:22;6305:50;:::i;:::-;6295:60;;6251:114;6404:2;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6375:118;6032:468;;;;;:::o;6506:329::-;6565:6;6614:2;6602:9;6593:7;6589:23;6585:32;6582:119;;;6620:79;;:::i;:::-;6582:119;6740:1;6765:53;6810:7;6801:6;6790:9;6786:22;6765:53;:::i;:::-;6755:63;;6711:117;6506:329;;;;:::o;6841:663::-;6929:6;6937;6945;6994:2;6982:9;6973:7;6969:23;6965:32;6962:119;;;7000:79;;:::i;:::-;6962:119;7120:1;7145:64;7201:7;7192:6;7181:9;7177:22;7145:64;:::i;:::-;7135:74;;7091:128;7258:2;7284:64;7340:7;7331:6;7320:9;7316:22;7284:64;:::i;:::-;7274:74;;7229:129;7397:2;7423:64;7479:7;7470:6;7459:9;7455:22;7423:64;:::i;:::-;7413:74;;7368:129;6841:663;;;;;:::o;7510:1057::-;7614:6;7622;7630;7638;7646;7654;7703:3;7691:9;7682:7;7678:23;7674:33;7671:120;;;7710:79;;:::i;:::-;7671:120;7830:1;7855:53;7900:7;7891:6;7880:9;7876:22;7855:53;:::i;:::-;7845:63;;7801:117;7957:2;7983:53;8028:7;8019:6;8008:9;8004:22;7983:53;:::i;:::-;7973:63;;7928:118;8085:2;8111:53;8156:7;8147:6;8136:9;8132:22;8111:53;:::i;:::-;8101:63;;8056:118;8213:2;8239:53;8284:7;8275:6;8264:9;8260:22;8239:53;:::i;:::-;8229:63;;8184:118;8341:3;8368:53;8413:7;8404:6;8393:9;8389:22;8368:53;:::i;:::-;8358:63;;8312:119;8470:3;8497:53;8542:7;8533:6;8522:9;8518:22;8497:53;:::i;:::-;8487:63;;8441:119;7510:1057;;;;;;;;:::o;8573:179::-;8642:10;8663:46;8705:3;8697:6;8663:46;:::i;:::-;8741:4;8736:3;8732:14;8718:28;;8573:179;;;;:::o;8758:147::-;8853:45;8892:5;8853:45;:::i;:::-;8848:3;8841:58;8758:147;;:::o;8911:108::-;8988:24;9006:5;8988:24;:::i;:::-;8983:3;8976:37;8911:108;;:::o;9025:118::-;9112:24;9130:5;9112:24;:::i;:::-;9107:3;9100:37;9025:118;;:::o;9179:699::-;9308:3;9331:86;9410:6;9405:3;9331:86;:::i;:::-;9324:93;;9441:58;9493:5;9441:58;:::i;:::-;9522:7;9553:1;9538:315;9563:6;9560:1;9557:13;9538:315;;;9633:42;9668:6;9659:7;9633:42;:::i;:::-;9695:63;9754:3;9739:13;9695:63;:::i;:::-;9688:70;;9781:62;9836:6;9781:62;:::i;:::-;9771:72;;9598:255;9585:1;9582;9578:9;9573:14;;9538:315;;;9542:14;9869:3;9862:10;;9313:565;;9179:699;;;;;:::o;9914:732::-;10033:3;10062:54;10110:5;10062:54;:::i;:::-;10132:86;10211:6;10206:3;10132:86;:::i;:::-;10125:93;;10242:56;10292:5;10242:56;:::i;:::-;10321:7;10352:1;10337:284;10362:6;10359:1;10356:13;10337:284;;;10438:6;10432:13;10465:63;10524:3;10509:13;10465:63;:::i;:::-;10458:70;;10551:60;10604:6;10551:60;:::i;:::-;10541:70;;10397:224;10384:1;10381;10377:9;10372:14;;10337:284;;;10341:14;10637:3;10630:10;;10038:608;;;9914:732;;;;:::o;10652:109::-;10733:21;10748:5;10733:21;:::i;:::-;10728:3;10721:34;10652:109;;:::o;10767:167::-;10872:55;10921:5;10872:55;:::i;:::-;10867:3;10860:68;10767:167;;:::o;10940:147::-;11035:45;11074:5;11035:45;:::i;:::-;11030:3;11023:58;10940:147;;:::o;11093:364::-;11181:3;11209:39;11242:5;11209:39;:::i;:::-;11264:71;11328:6;11323:3;11264:71;:::i;:::-;11257:78;;11344:52;11389:6;11384:3;11377:4;11370:5;11366:16;11344:52;:::i;:::-;11421:29;11443:6;11421:29;:::i;:::-;11416:3;11412:39;11405:46;;11185:272;11093:364;;;;:::o;11463:366::-;11605:3;11626:67;11690:2;11685:3;11626:67;:::i;:::-;11619:74;;11702:93;11791:3;11702:93;:::i;:::-;11820:2;11815:3;11811:12;11804:19;;11463:366;;;:::o;11835:::-;11977:3;11998:67;12062:2;12057:3;11998:67;:::i;:::-;11991:74;;12074:93;12163:3;12074:93;:::i;:::-;12192:2;12187:3;12183:12;12176:19;;11835:366;;;:::o;12207:::-;12349:3;12370:67;12434:2;12429:3;12370:67;:::i;:::-;12363:74;;12446:93;12535:3;12446:93;:::i;:::-;12564:2;12559:3;12555:12;12548:19;;12207:366;;;:::o;12579:::-;12721:3;12742:67;12806:2;12801:3;12742:67;:::i;:::-;12735:74;;12818:93;12907:3;12818:93;:::i;:::-;12936:2;12931:3;12927:12;12920:19;;12579:366;;;:::o;12951:::-;13093:3;13114:67;13178:2;13173:3;13114:67;:::i;:::-;13107:74;;13190:93;13279:3;13190:93;:::i;:::-;13308:2;13303:3;13299:12;13292:19;;12951:366;;;:::o;13323:::-;13465:3;13486:67;13550:2;13545:3;13486:67;:::i;:::-;13479:74;;13562:93;13651:3;13562:93;:::i;:::-;13680:2;13675:3;13671:12;13664:19;;13323:366;;;:::o;13695:::-;13837:3;13858:67;13922:2;13917:3;13858:67;:::i;:::-;13851:74;;13934:93;14023:3;13934:93;:::i;:::-;14052:2;14047:3;14043:12;14036:19;;13695:366;;;:::o;14067:::-;14209:3;14230:67;14294:2;14289:3;14230:67;:::i;:::-;14223:74;;14306:93;14395:3;14306:93;:::i;:::-;14424:2;14419:3;14415:12;14408:19;;14067:366;;;:::o;14439:::-;14581:3;14602:67;14666:2;14661:3;14602:67;:::i;:::-;14595:74;;14678:93;14767:3;14678:93;:::i;:::-;14796:2;14791:3;14787:12;14780:19;;14439:366;;;:::o;14811:::-;14953:3;14974:67;15038:2;15033:3;14974:67;:::i;:::-;14967:74;;15050:93;15139:3;15050:93;:::i;:::-;15168:2;15163:3;15159:12;15152:19;;14811:366;;;:::o;15183:::-;15325:3;15346:67;15410:2;15405:3;15346:67;:::i;:::-;15339:74;;15422:93;15511:3;15422:93;:::i;:::-;15540:2;15535:3;15531:12;15524:19;;15183:366;;;:::o;15555:::-;15697:3;15718:67;15782:2;15777:3;15718:67;:::i;:::-;15711:74;;15794:93;15883:3;15794:93;:::i;:::-;15912:2;15907:3;15903:12;15896:19;;15555:366;;;:::o;15927:365::-;16069:3;16090:66;16154:1;16149:3;16090:66;:::i;:::-;16083:73;;16165:93;16254:3;16165:93;:::i;:::-;16283:2;16278:3;16274:12;16267:19;;15927:365;;;:::o;16298:398::-;16457:3;16478:83;16559:1;16554:3;16478:83;:::i;:::-;16471:90;;16570:93;16659:3;16570:93;:::i;:::-;16688:1;16683:3;16679:11;16672:18;;16298:398;;;:::o;16702:366::-;16844:3;16865:67;16929:2;16924:3;16865:67;:::i;:::-;16858:74;;16941:93;17030:3;16941:93;:::i;:::-;17059:2;17054:3;17050:12;17043:19;;16702:366;;;:::o;17074:::-;17216:3;17237:67;17301:2;17296:3;17237:67;:::i;:::-;17230:74;;17313:93;17402:3;17313:93;:::i;:::-;17431:2;17426:3;17422:12;17415:19;;17074:366;;;:::o;17446:118::-;17533:24;17551:5;17533:24;:::i;:::-;17528:3;17521:37;17446:118;;:::o;17570:112::-;17653:22;17669:5;17653:22;:::i;:::-;17648:3;17641:35;17570:112;;:::o;17688:379::-;17872:3;17894:147;18037:3;17894:147;:::i;:::-;17887:154;;18058:3;18051:10;;17688:379;;;:::o;18073:222::-;18166:4;18204:2;18193:9;18189:18;18181:26;;18217:71;18285:1;18274:9;18270:17;18261:6;18217:71;:::i;:::-;18073:222;;;;:::o;18301:238::-;18402:4;18440:2;18429:9;18425:18;18417:26;;18453:79;18529:1;18518:9;18514:17;18505:6;18453:79;:::i;:::-;18301:238;;;;:::o;18545:664::-;18750:4;18788:3;18777:9;18773:19;18765:27;;18802:71;18870:1;18859:9;18855:17;18846:6;18802:71;:::i;:::-;18883:72;18951:2;18940:9;18936:18;18927:6;18883:72;:::i;:::-;18965;19033:2;19022:9;19018:18;19009:6;18965:72;:::i;:::-;19047;19115:2;19104:9;19100:18;19091:6;19047:72;:::i;:::-;19129:73;19197:3;19186:9;19182:19;19173:6;19129:73;:::i;:::-;18545:664;;;;;;;;:::o;19215:320::-;19330:4;19368:2;19357:9;19353:18;19345:26;;19381:71;19449:1;19438:9;19434:17;19425:6;19381:71;:::i;:::-;19462:66;19524:2;19513:9;19509:18;19500:6;19462:66;:::i;:::-;19215:320;;;;;:::o;19541:807::-;19790:4;19828:3;19817:9;19813:19;19805:27;;19842:71;19910:1;19899:9;19895:17;19886:6;19842:71;:::i;:::-;19923:72;19991:2;19980:9;19976:18;19967:6;19923:72;:::i;:::-;20005:80;20081:2;20070:9;20066:18;20057:6;20005:80;:::i;:::-;20095;20171:2;20160:9;20156:18;20147:6;20095:80;:::i;:::-;20185:73;20253:3;20242:9;20238:19;20229:6;20185:73;:::i;:::-;20268;20336:3;20325:9;20321:19;20312:6;20268:73;:::i;:::-;19541:807;;;;;;;;;:::o;20354:491::-;20529:4;20567:2;20556:9;20552:18;20544:26;;20616:9;20610:4;20606:20;20602:1;20591:9;20587:17;20580:47;20644:118;20757:4;20748:6;20740;20644:118;:::i;:::-;20636:126;;20772:66;20834:2;20823:9;20819:18;20810:6;20772:66;:::i;:::-;20354:491;;;;;;:::o;20851:210::-;20938:4;20976:2;20965:9;20961:18;20953:26;;20989:65;21051:1;21040:9;21036:17;21027:6;20989:65;:::i;:::-;20851:210;;;;:::o;21067:320::-;21182:4;21220:2;21209:9;21205:18;21197:26;;21233:65;21295:1;21284:9;21280:17;21271:6;21233:65;:::i;:::-;21308:72;21376:2;21365:9;21361:18;21352:6;21308:72;:::i;:::-;21067:320;;;;;:::o;21393:258::-;21504:4;21542:2;21531:9;21527:18;21519:26;;21555:89;21641:1;21630:9;21626:17;21617:6;21555:89;:::i;:::-;21393:258;;;;:::o;21657:313::-;21770:4;21808:2;21797:9;21793:18;21785:26;;21857:9;21851:4;21847:20;21843:1;21832:9;21828:17;21821:47;21885:78;21958:4;21949:6;21885:78;:::i;:::-;21877:86;;21657:313;;;;:::o;21976:419::-;22142:4;22180:2;22169:9;22165:18;22157:26;;22229:9;22223:4;22219:20;22215:1;22204:9;22200:17;22193:47;22257:131;22383:4;22257:131;:::i;:::-;22249:139;;21976:419;;;:::o;22401:::-;22567:4;22605:2;22594:9;22590:18;22582:26;;22654:9;22648:4;22644:20;22640:1;22629:9;22625:17;22618:47;22682:131;22808:4;22682:131;:::i;:::-;22674:139;;22401:419;;;:::o;22826:::-;22992:4;23030:2;23019:9;23015:18;23007:26;;23079:9;23073:4;23069:20;23065:1;23054:9;23050:17;23043:47;23107:131;23233:4;23107:131;:::i;:::-;23099:139;;22826:419;;;:::o;23251:::-;23417:4;23455:2;23444:9;23440:18;23432:26;;23504:9;23498:4;23494:20;23490:1;23479:9;23475:17;23468:47;23532:131;23658:4;23532:131;:::i;:::-;23524:139;;23251:419;;;:::o;23676:::-;23842:4;23880:2;23869:9;23865:18;23857:26;;23929:9;23923:4;23919:20;23915:1;23904:9;23900:17;23893:47;23957:131;24083:4;23957:131;:::i;:::-;23949:139;;23676:419;;;:::o;24101:::-;24267:4;24305:2;24294:9;24290:18;24282:26;;24354:9;24348:4;24344:20;24340:1;24329:9;24325:17;24318:47;24382:131;24508:4;24382:131;:::i;:::-;24374:139;;24101:419;;;:::o;24526:::-;24692:4;24730:2;24719:9;24715:18;24707:26;;24779:9;24773:4;24769:20;24765:1;24754:9;24750:17;24743:47;24807:131;24933:4;24807:131;:::i;:::-;24799:139;;24526:419;;;:::o;24951:::-;25117:4;25155:2;25144:9;25140:18;25132:26;;25204:9;25198:4;25194:20;25190:1;25179:9;25175:17;25168:47;25232:131;25358:4;25232:131;:::i;:::-;25224:139;;24951:419;;;:::o;25376:::-;25542:4;25580:2;25569:9;25565:18;25557:26;;25629:9;25623:4;25619:20;25615:1;25604:9;25600:17;25593:47;25657:131;25783:4;25657:131;:::i;:::-;25649:139;;25376:419;;;:::o;25801:::-;25967:4;26005:2;25994:9;25990:18;25982:26;;26054:9;26048:4;26044:20;26040:1;26029:9;26025:17;26018:47;26082:131;26208:4;26082:131;:::i;:::-;26074:139;;25801:419;;;:::o;26226:::-;26392:4;26430:2;26419:9;26415:18;26407:26;;26479:9;26473:4;26469:20;26465:1;26454:9;26450:17;26443:47;26507:131;26633:4;26507:131;:::i;:::-;26499:139;;26226:419;;;:::o;26651:::-;26817:4;26855:2;26844:9;26840:18;26832:26;;26904:9;26898:4;26894:20;26890:1;26879:9;26875:17;26868:47;26932:131;27058:4;26932:131;:::i;:::-;26924:139;;26651:419;;;:::o;27076:::-;27242:4;27280:2;27269:9;27265:18;27257:26;;27329:9;27323:4;27319:20;27315:1;27304:9;27300:17;27293:47;27357:131;27483:4;27357:131;:::i;:::-;27349:139;;27076:419;;;:::o;27501:::-;27667:4;27705:2;27694:9;27690:18;27682:26;;27754:9;27748:4;27744:20;27740:1;27729:9;27725:17;27718:47;27782:131;27908:4;27782:131;:::i;:::-;27774:139;;27501:419;;;:::o;27926:::-;28092:4;28130:2;28119:9;28115:18;28107:26;;28179:9;28173:4;28169:20;28165:1;28154:9;28150:17;28143:47;28207:131;28333:4;28207:131;:::i;:::-;28199:139;;27926:419;;;:::o;28351:222::-;28444:4;28482:2;28471:9;28467:18;28459:26;;28495:71;28563:1;28552:9;28548:17;28539:6;28495:71;:::i;:::-;28351:222;;;;:::o;28579:831::-;28842:4;28880:3;28869:9;28865:19;28857:27;;28894:71;28962:1;28951:9;28947:17;28938:6;28894:71;:::i;:::-;28975:80;29051:2;29040:9;29036:18;29027:6;28975:80;:::i;:::-;29102:9;29096:4;29092:20;29087:2;29076:9;29072:18;29065:48;29130:108;29233:4;29224:6;29130:108;:::i;:::-;29122:116;;29248:72;29316:2;29305:9;29301:18;29292:6;29248:72;:::i;:::-;29330:73;29398:3;29387:9;29383:19;29374:6;29330:73;:::i;:::-;28579:831;;;;;;;;:::o;29416:664::-;29621:4;29659:3;29648:9;29644:19;29636:27;;29673:71;29741:1;29730:9;29726:17;29717:6;29673:71;:::i;:::-;29754:72;29822:2;29811:9;29807:18;29798:6;29754:72;:::i;:::-;29836;29904:2;29893:9;29889:18;29880:6;29836:72;:::i;:::-;29918;29986:2;29975:9;29971:18;29962:6;29918:72;:::i;:::-;30000:73;30068:3;30057:9;30053:19;30044:6;30000:73;:::i;:::-;29416:664;;;;;;;;:::o;30086:214::-;30175:4;30213:2;30202:9;30198:18;30190:26;;30226:67;30290:1;30279:9;30275:17;30266:6;30226:67;:::i;:::-;30086:214;;;;:::o;30387:102::-;30456:4;30479:3;30471:11;;30387:102;;;:::o;30495:132::-;30562:4;30585:3;30577:11;;30615:4;30610:3;30606:14;30598:22;;30495:132;;;:::o;30633:114::-;30700:6;30734:5;30728:12;30718:22;;30633:114;;;:::o;30753:99::-;30805:6;30839:5;30833:12;30823:22;;30753:99;;;:::o;30858:115::-;30930:4;30962;30957:3;30953:14;30945:22;;30858:115;;;:::o;30979:113::-;31049:4;31081;31076:3;31072:14;31064:22;;30979:113;;;:::o;31098:184::-;31197:11;31231:6;31226:3;31219:19;31271:4;31266:3;31262:14;31247:29;;31098:184;;;;:::o;31288:147::-;31389:11;31426:3;31411:18;;31288:147;;;;:::o;31441:169::-;31525:11;31559:6;31554:3;31547:19;31599:4;31594:3;31590:14;31575:29;;31441:169;;;;:::o;31616:122::-;31668:5;31693:39;31728:2;31723:3;31719:12;31714:3;31693:39;:::i;:::-;31684:48;;31616:122;;;;:::o;31744:305::-;31784:3;31803:20;31821:1;31803:20;:::i;:::-;31798:25;;31837:20;31855:1;31837:20;:::i;:::-;31832:25;;31991:1;31923:66;31919:74;31916:1;31913:81;31910:107;;;31997:18;;:::i;:::-;31910:107;32041:1;32038;32034:9;32027:16;;31744:305;;;;:::o;32055:185::-;32095:1;32112:20;32130:1;32112:20;:::i;:::-;32107:25;;32146:20;32164:1;32146:20;:::i;:::-;32141:25;;32185:1;32175:35;;32190:18;;:::i;:::-;32175:35;32232:1;32229;32225:9;32220:14;;32055:185;;;;:::o;32246:348::-;32286:7;32309:20;32327:1;32309:20;:::i;:::-;32304:25;;32343:20;32361:1;32343:20;:::i;:::-;32338:25;;32531:1;32463:66;32459:74;32456:1;32453:81;32448:1;32441:9;32434:17;32430:105;32427:131;;;32538:18;;:::i;:::-;32427:131;32586:1;32583;32579:9;32568:20;;32246:348;;;;:::o;32600:191::-;32640:4;32660:20;32678:1;32660:20;:::i;:::-;32655:25;;32694:20;32712:1;32694:20;:::i;:::-;32689:25;;32733:1;32730;32727:8;32724:34;;;32738:18;;:::i;:::-;32724:34;32783:1;32780;32776:9;32768:17;;32600:191;;;;:::o;32797:96::-;32834:7;32863:24;32881:5;32863:24;:::i;:::-;32852:35;;32797:96;;;:::o;32899:104::-;32944:7;32973:24;32991:5;32973:24;:::i;:::-;32962:35;;32899:104;;;:::o;33009:90::-;33043:7;33086:5;33079:13;33072:21;33061:32;;33009:90;;;:::o;33105:126::-;33142:7;33182:42;33175:5;33171:54;33160:65;;33105:126;;;:::o;33237:77::-;33274:7;33303:5;33292:16;;33237:77;;;:::o;33320:86::-;33355:7;33395:4;33388:5;33384:16;33373:27;;33320:86;;;:::o;33412:134::-;33470:9;33503:37;33534:5;33503:37;:::i;:::-;33490:50;;33412:134;;;:::o;33552:144::-;33620:9;33653:37;33684:5;33653:37;:::i;:::-;33640:50;;33552:144;;;:::o;33702:121::-;33760:9;33793:24;33811:5;33793:24;:::i;:::-;33780:37;;33702:121;;;:::o;33829:126::-;33879:9;33912:37;33943:5;33912:37;:::i;:::-;33899:50;;33829:126;;;:::o;33961:113::-;34011:9;34044:24;34062:5;34044:24;:::i;:::-;34031:37;;33961:113;;;:::o;34080:307::-;34148:1;34158:113;34172:6;34169:1;34166:13;34158:113;;;34257:1;34252:3;34248:11;34242:18;34238:1;34233:3;34229:11;34222:39;34194:2;34191:1;34187:10;34182:15;;34158:113;;;34289:6;34286:1;34283:13;34280:101;;;34369:1;34360:6;34355:3;34351:16;34344:27;34280:101;34129:258;34080:307;;;:::o;34393:233::-;34432:3;34455:24;34473:5;34455:24;:::i;:::-;34446:33;;34501:66;34494:5;34491:77;34488:103;;;34571:18;;:::i;:::-;34488:103;34618:1;34611:5;34607:13;34600:20;;34393:233;;;:::o;34632:180::-;34680:77;34677:1;34670:88;34777:4;34774:1;34767:15;34801:4;34798:1;34791:15;34818:180;34866:77;34863:1;34856:88;34963:4;34960:1;34953:15;34987:4;34984:1;34977:15;35004:180;35052:77;35049:1;35042:88;35149:4;35146:1;35139:15;35173:4;35170:1;35163:15;35190:180;35238:77;35235:1;35228:88;35335:4;35332:1;35325:15;35359:4;35356:1;35349:15;35376:180;35424:77;35421:1;35414:88;35521:4;35518:1;35511:15;35545:4;35542:1;35535:15;35562:117;35671:1;35668;35661:12;35685:117;35794:1;35791;35784:12;35808:117;35917:1;35914;35907:12;35931:117;36040:1;36037;36030:12;36054:117;36163:1;36160;36153:12;36177:102;36218:6;36269:2;36265:7;36260:2;36253:5;36249:14;36245:28;36235:38;;36177:102;;;:::o;36285:172::-;36425:24;36421:1;36413:6;36409:14;36402:48;36285:172;:::o;36463:168::-;36603:20;36599:1;36591:6;36587:14;36580:44;36463:168;:::o;36637:167::-;36777:19;36773:1;36765:6;36761:14;36754:43;36637:167;:::o;36810:181::-;36950:33;36946:1;36938:6;36934:14;36927:57;36810:181;:::o;36997:167::-;37137:19;37133:1;37125:6;37121:14;37114:43;36997:167;:::o;37170:177::-;37310:29;37306:1;37298:6;37294:14;37287:53;37170:177;:::o;37353:165::-;37493:17;37489:1;37481:6;37477:14;37470:41;37353:165;:::o;37524:168::-;37664:20;37660:1;37652:6;37648:14;37641:44;37524:168;:::o;37698:173::-;37838:25;37834:1;37826:6;37822:14;37815:49;37698:173;:::o;37877:170::-;38017:22;38013:1;38005:6;38001:14;37994:46;37877:170;:::o;38053:179::-;38193:31;38189:1;38181:6;38177:14;38170:55;38053:179;:::o;38238:220::-;38378:34;38374:1;38366:6;38362:14;38355:58;38447:3;38442:2;38434:6;38430:15;38423:28;38238:220;:::o;38464:156::-;38604:8;38600:1;38592:6;38588:14;38581:32;38464:156;:::o;38626:114::-;;:::o;38746:224::-;38886:34;38882:1;38874:6;38870:14;38863:58;38955:7;38950:2;38942:6;38938:15;38931:32;38746:224;:::o;38976:161::-;39116:13;39112:1;39104:6;39100:14;39093:37;38976:161;:::o;39143:122::-;39216:24;39234:5;39216:24;:::i;:::-;39209:5;39206:35;39196:63;;39255:1;39252;39245:12;39196:63;39143:122;:::o;39271:138::-;39352:32;39378:5;39352:32;:::i;:::-;39345:5;39342:43;39332:71;;39399:1;39396;39389:12;39332:71;39271:138;:::o;39415:116::-;39485:21;39500:5;39485:21;:::i;:::-;39478:5;39475:32;39465:60;;39521:1;39518;39511:12;39465:60;39415:116;:::o;39537:122::-;39610:24;39628:5;39610:24;:::i;:::-;39603:5;39600:35;39590:63;;39649:1;39646;39639:12;39590:63;39537:122;:::o
Swarm Source
ipfs://f5ecbf00a10d0c3d5adf603fd768a5cc14d72fc75e799b65ddee9c4e96fababb
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.