ERC-20
Overview
Max Total Supply
100,000,000 TANGHA
Holders
41
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
10,508,082.850000431473609296 TANGHAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TSUKASANGHA
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-25 */ pragma solidity ^0.8.12; // SPDX-License-Identifier: Unlicensed 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 IERC20 { 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"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address liqPair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract TSUKASANGHA is IERC20, Auth { using SafeMath for uint256; address public auliquidityRatioReceiver = 0xdf3B5b23891dDaaa5566295Be9B051fa1a4A89cc; address public marketingFeeReceiver = 0x0E29Bdc40258D163Da72d4b5BA37Bf4F806B9646; string constant _name = "TSUKASANGHA"; string constant _symbol = "TANGHA"; uint8 constant _decimals = 18; uint8 constant _zeros = 8; uint8 constant _maxTx = 10; uint8 constant _maxWallet = 10; uint8 constant _threshpct = 1; uint256 _totalSupply = 1 * 10**_zeros * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.mul(_maxTx).div(1000); uint256 public _maxWalletToken = _totalSupply.mul(_maxWallet).div(1000); uint256 public swapThreshold = _totalSupply.mul(_threshpct).div(100000); mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) isFeeExempt; mapping(address => bool) isLimitExempt; mapping(address => bool) public _isBlacklisted; uint256 public buyFee = 5; uint256 public sellFee = 90; uint256 public liquidityRatio = 2; uint256 public marketingRatio = 3; uint256 public feeRatio = marketingRatio + liquidityRatio; uint256 public feeDenominator = 100; IDEXRouter public Irouter02; address public liqPair; bool public tradingLive = false; uint256 private launchedAt; uint256 private deadBlocks; bool public limitsEnabled = true; bool public maxTxOnBuys = true; bool public maxTxOnSells = true; bool public swapEnabled = true; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() Auth(msg.sender) { Irouter02 = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); liqPair = IDEXFactory(Irouter02.factory()).createPair( Irouter02.WETH(), address(this) ); _allowances[address(this)][address(Irouter02)] = type(uint256).max; isFeeExempt[msg.sender] = true; isLimitExempt[msg.sender] = true; isLimitExempt[liqPair] = true; isLimitExempt[address(this)] = true; _approve(owner, address(Irouter02), type(uint256).max); _approve(address(this), address(Irouter02), type(uint256).max); _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) { _approve(msg.sender, spender, amount); return true; } function _approve( address sender, address spender, uint256 amount ) private { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } 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 from, address to, uint256 amount ) internal returns (bool) { require( !_isBlacklisted[from] && !_isBlacklisted[to], "Blacklisted address" ); if (inSwap) { return _basicTransfer(from, to, amount); } if (!authorizations[from] && !authorizations[to]) { require(tradingLive, "Trading not open yet"); } if (limitsEnabled) { if ( !authorizations[from] && !isLimitExempt[from] && !isLimitExempt[to] && to != liqPair ) { uint256 heldTokens = balanceOf(to); require( (heldTokens + amount) <= _maxWalletToken, "max wallet limit reached" ); } checkAmountTx(from, amount); } if (shouldSwapBack(from)) { swapBack(swapThreshold); } _balances[from] = _balances[from].sub(amount, "Insufficient Balance"); uint256 amountReceived = (!shouldTakeFee(from) || !shouldTakeFee(to)) ? amount : takeFee(from, amount); _balances[to] = _balances[to].add(amountReceived); emit Transfer(from, to, 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; } function checkAmountTx(address sender, uint256 amount) internal view { require( amount <= _maxTxAmount || isLimitExempt[sender], "TX Limit Exceeded" ); } function shouldSwapBack(address from) internal view returns (bool) { if ( !inSwap && swapEnabled && !isLimitExempt[from] && _balances[address(this)] >= swapThreshold ) { return true; } else { return false; } } function swapbackEdit(bool _enabled) public onlyOwner { swapEnabled = _enabled; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 _fee; if (sender != liqPair) { _fee = sellFee; } else if (sender == liqPair) { _fee = buyFee; } else { return amount; } uint256 contractTokens = amount.mul(_fee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(contractTokens); emit Transfer(sender, address(this), contractTokens); return amount.sub(contractTokens); } function swapBack(uint256 amountAsked) internal swapping { uint256 amountToLiquify = amountAsked .mul(liquidityRatio) .div(feeRatio) .div(2); uint256 amountToSwap = amountAsked.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = Irouter02.WETH(); uint256 balanceBefore = address(this).balance; Irouter02.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = feeRatio.sub(liquidityRatio.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityRatio) .div(totalETHFee) .div(2); uint256 amountETHMarketing = amountETH.mul(marketingRatio).div( totalETHFee ); (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{ value: amountETHMarketing, gas: 30000 }(""); tmpSuccess = false; if (amountToLiquify > 0) { Irouter02.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, auliquidityRatioReceiver, block.timestamp ); } } function setLimits(uint256 maxWallPercent, uint256 maxTXPercent) external onlyOwner { _maxWalletToken = _totalSupply.mul(maxWallPercent).div(1000); _maxTxAmount = _totalSupply.mul(maxTXPercent).div(1000); } function setSwapThreshold(uint256 _swapThreshold) external onlyOwner { require(_swapThreshold < 10, "threshold too high"); swapThreshold = _totalSupply.mul(_swapThreshold).div(100000); } function blacklist(address addrs, bool value) external onlyOwner { _isBlacklisted[addrs] = value; } function sweepContingency(uint256 amount) external onlyOwner { require(address(this).balance >= amount, "not enought tokens"); swapBack(amount); } function clearStuckBalance() external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH); } function launchCoin() external onlyOwner { require(!tradingLive, "already launched"); launchedAt = block.number; tradingLive = true; } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsLimitExempt(address holder, bool exempt) external authorized { isLimitExempt[holder] = exempt; } function setFees( uint256 _marketingRatio, uint256 _liquidityRatio, uint256 _sellFee, uint256 _buyFee ) external authorized { sellFee = _sellFee; buyFee = _buyFee; marketingRatio = _marketingRatio; liquidityRatio = _liquidityRatio; feeRatio = liquidityRatio.add(marketingRatio); require(sellFee < 90 && buyFee < 90, "Fees cannot be more than 90%"); } function setMaxBuySettings(bool _globalTxWatcher) external authorized { limitsEnabled = _globalTxWatcher; } }
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":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Irouter02","outputs":[{"internalType":"contract IDEXRouter","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"auliquidityRatioReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRatio","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":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchCoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxOnBuys","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxOnSells","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingRatio","type":"uint256"},{"internalType":"uint256","name":"_liquidityRatio","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"setFees","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":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"},{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_globalTxWatcher","type":"bool"}],"name":"setMaxBuySettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"setSwapThreshold","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":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"swapbackEdit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","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":"tradingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273df3b5b23891ddaaa5566295be9b051fa1a4a89cc600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730e29bdc40258d163da72d4b5ba37bf4f806b9646600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000be919062000daf565b6008600a620000ce919062000daf565b6001620000dc919062000e00565b620000e8919062000e00565b600455620001266103e862000112600a60ff166004546200090460201b620019471790919060201c565b6200098860201b620019c21790919060201c565b600555620001646103e862000150600a60ff166004546200090460201b620019471790919060201c565b6200098860201b620019c21790919060201c565b600655620001a3620186a06200018f600160ff166004546200090460201b620019471790919060201c565b6200098860201b620019c21790919060201c565b6007556005600d55605a600e556002600f556003601055600f54601054620001cc919062000e61565b601155606460125560006014806101000a81548160ff0219169083151502179055506001601760006101000a81548160ff0219169083151502179055506001601760016101000a81548160ff0219169083151502179055506001601760026101000a81548160ff0219169083151502179055506001601760036101000a81548160ff0219169083151502179055503480156200026757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000f28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000499919062000f28565b306040518363ffffffff1660e01b8152600401620004b992919062000f6b565b6020604051808303816000875af1158015620004d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ff919062000f28565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007f960008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620009da60201b60201c565b6200084e30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620009da60201b60201c565b600454600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620008f6919062000fa9565b60405180910390a3620011ff565b60008083141562000919576000905062000982565b6000828462000929919062000e00565b90508284826200093a919062000ff5565b146200097d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097490620010b4565b60405180910390fd5b809150505b92915050565b6000620009d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000bad60201b60201c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a449062001126565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ab79062001126565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ba0919062000fa9565b60405180910390a3505050565b6000808311829062000bf7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bee9190620011db565b60405180910390fd5b506000838562000c08919062000ff5565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ca35780860481111562000c7b5762000c7a62000c15565b5b600185161562000c8b5780820291505b808102905062000c9b8562000c44565b945062000c5b565b94509492505050565b60008262000cbe576001905062000d91565b8162000cce576000905062000d91565b816001811462000ce7576002811462000cf25762000d28565b600191505062000d91565b60ff84111562000d075762000d0662000c15565b5b8360020a91508482111562000d215762000d2062000c15565b5b5062000d91565b5060208310610133831016604e8410600b841016171562000d625782820a90508381111562000d5c5762000d5b62000c15565b5b62000d91565b62000d71848484600162000c51565b9250905081840481111562000d8b5762000d8a62000c15565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000dbc8262000d98565b915062000dc98362000da2565b925062000df87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cac565b905092915050565b600062000e0d8262000d98565b915062000e1a8362000d98565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e565762000e5562000c15565b5b828202905092915050565b600062000e6e8262000d98565b915062000e7b8362000d98565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000eb35762000eb262000c15565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ef08262000ec3565b9050919050565b62000f028162000ee3565b811462000f0e57600080fd5b50565b60008151905062000f228162000ef7565b92915050565b60006020828403121562000f415762000f4062000ebe565b5b600062000f518482850162000f11565b91505092915050565b62000f658162000ee3565b82525050565b600060408201905062000f82600083018562000f5a565b62000f91602083018462000f5a565b9392505050565b62000fa38162000d98565b82525050565b600060208201905062000fc0600083018462000f98565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010028262000d98565b91506200100f8362000d98565b92508262001022576200102162000fc6565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200109c6021836200102d565b9150620010a9826200103e565b604082019050919050565b60006020820190508181036000830152620010cf816200108d565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006200110e6013836200102d565b91506200111b82620010d6565b602082019050919050565b600060208201905081810360008301526200114181620010ff565b9050919050565b600081519050919050565b60005b838110156200117357808201518184015260208101905062001156565b8381111562001183576000848401525b50505050565b6000601f19601f8301169050919050565b6000620011a78262001148565b620011b381856200102d565b9350620011c581856020860162001153565b620011d08162001189565b840191505092915050565b60006020820190508181036000830152620011f781846200119a565b905092915050565b613dbc806200120f6000396000f3fe6080604052600436106102765760003560e01c806378109e541161014f578063c4590d3f116100c1578063e7a42de31161007a578063e7a42de314610953578063e96fada21461097c578063ef97212d146109a7578063f0b37c04146109d2578063f2fde38b146109fb578063fe9fbb8014610a245761027d565b8063c4590d3f14610859578063cfd55dda14610882578063d4208cc1146108ab578063d962cf58146108d6578063dc4b9a4e146108ff578063dd62ed3e146109165761027d565b806395d89b411161011357806395d89b41146107495780639d0014b114610774578063a76293ea1461079d578063a83019fa146107c8578063a9059cbb146107f3578063b6a5d7de146108305761027d565b806378109e54146106725780637d1db4a51461069d578063893d20e8146106c85780638de4f5ed146106f35780638ff35e561461071e5761027d565b80633582ad23116101e85780635da55668116101ac5780635da556681461056457806361147c541461058d578063658d4b7f146105b85780636ddd1713146105e15780636fcba3771461060c57806370a08231146106355761027d565b80633582ad23146104a3578063364333f4146104ce578063404e5129146104e557806341744dd41461050e57806347062402146105395761027d565b806318160ddd1161023a57806318160ddd1461036b5780631cdd3be31461039657806323b872dd146103d35780632b14ca56146104105780632f54bf6e1461043b578063313ce567146104785761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806311704f5214610315578063180b0d7e146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a61565b6040516102a49190612de5565b60405180910390f35b3480156102b957600080fd5b506102c2610a67565b6040516102cf9190612e99565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612f4a565b610aa4565b60405161030c9190612fa5565b60405180910390f35b34801561032157600080fd5b5061032a610abb565b6040516103379190612fa5565b60405180910390f35b34801561034c57600080fd5b50610355610acc565b6040516103629190612de5565b60405180910390f35b34801561037757600080fd5b50610380610ad2565b60405161038d9190612de5565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612fc0565b610adc565b6040516103ca9190612fa5565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612fed565b610afc565b6040516104079190612fa5565b60405180910390f35b34801561041c57600080fd5b50610425610cfc565b6040516104329190612de5565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190612fc0565b610d02565b60405161046f9190612fa5565b60405180910390f35b34801561048457600080fd5b5061048d610d5b565b60405161049a919061305c565b60405180910390f35b3480156104af57600080fd5b506104b8610d64565b6040516104c59190612fa5565b60405180910390f35b3480156104da57600080fd5b506104e3610d77565b005b3480156104f157600080fd5b5061050c600480360381019061050791906130a3565b610e0e565b005b34801561051a57600080fd5b50610523610eb1565b6040516105309190612de5565b60405180910390f35b34801561054557600080fd5b5061054e610eb7565b60405161055b9190612de5565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906130e3565b610ebd565b005b34801561059957600080fd5b506105a2610f22565b6040516105af919061311f565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da91906130a3565b610f48565b005b3480156105ed57600080fd5b506105f6610feb565b6040516106039190612fa5565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e919061313a565b610ffe565b005b34801561064157600080fd5b5061065c60048036038101906106579190612fc0565b6110d8565b6040516106699190612de5565b60405180910390f35b34801561067e57600080fd5b50610687611121565b6040516106949190612de5565b60405180910390f35b3480156106a957600080fd5b506106b2611127565b6040516106bf9190612de5565b60405180910390f35b3480156106d457600080fd5b506106dd61112d565b6040516106ea919061311f565b60405180910390f35b3480156106ff57600080fd5b50610708611156565b604051610715919061311f565b60405180910390f35b34801561072a57600080fd5b5061073361117c565b6040516107409190612fa5565b60405180910390f35b34801561075557600080fd5b5061075e61118f565b60405161076b9190612e99565b60405180910390f35b34801561078057600080fd5b5061079b600480360381019061079691906131a1565b6111cc565b005b3480156107a957600080fd5b506107b261128a565b6040516107bf919061322d565b60405180910390f35b3480156107d457600080fd5b506107dd6112b0565b6040516107ea9190612de5565b60405180910390f35b3480156107ff57600080fd5b5061081a60048036038101906108159190612f4a565b6112b6565b6040516108279190612fa5565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612fc0565b6112cb565b005b34801561086557600080fd5b50610880600480360381019061087b9190613248565b61136d565b005b34801561088e57600080fd5b506108a960048036038101906108a491906131a1565b611417565b005b3480156108b757600080fd5b506108c06114ae565b6040516108cd9190612fa5565b60405180910390f35b3480156108e257600080fd5b506108fd60048036038101906108f891906130a3565b6114c1565b005b34801561090b57600080fd5b50610914611564565b005b34801561092257600080fd5b5061093d60048036038101906109389190613288565b61161d565b60405161094a9190612de5565b60405180910390f35b34801561095f57600080fd5b5061097a600480360381019061097591906130e3565b6116a4565b005b34801561098857600080fd5b50610991611709565b60405161099e919061311f565b60405180910390f35b3480156109b357600080fd5b506109bc61172f565b6040516109c99190612de5565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f49190612fc0565b611735565b005b348015610a0757600080fd5b50610a226004803603810190610a1d9190613306565b6117d8565b005b348015610a3057600080fd5b50610a4b6004803603810190610a469190612fc0565b6118f1565b604051610a589190612fa5565b60405180910390f35b60075481565b60606040518060400160405280600b81526020017f5453554b4153414e474841000000000000000000000000000000000000000000815250905090565b6000610ab1338484611a0c565b6001905092915050565b60148054906101000a900460ff1681565b60125481565b6000600454905090565b600c6020528060005260406000206000915054906101000a900460ff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ce857610c67826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf3848484611c3b565b90509392505050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601760009054906101000a900460ff1681565b610d8033610d02565b610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db69061337f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0a573d6000803e3d6000fd5b5050565b610e1733610d02565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061337f565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b600d5481565b610ec633610d02565b610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061337f565b60405180910390fd5b80601760036101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f51336118f1565b610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906133eb565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760039054906101000a900460ff1681565b611007336118f1565b611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906133eb565b60405180910390fd5b81600e8190555080600d819055508360108190555082600f81905550611079601054600f5461223790919063ffffffff16565b601181905550605a600e541080156110935750605a600d54105b6110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990613457565b60405180910390fd5b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760019054906101000a900460ff1681565b60606040518060400160405280600681526020017f54414e4748410000000000000000000000000000000000000000000000000000815250905090565b6111d533610d02565b611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b9061337f565b60405180910390fd5b600a8110611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e906134c3565b60405180910390fd5b611281620186a06112738360045461194790919063ffffffff16565b6119c290919063ffffffff16565b60078190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60006112c3338484611c3b565b905092915050565b6112d433610d02565b611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061337f565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61137633610d02565b6113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061337f565b60405180910390fd5b6113de6103e86113d08460045461194790919063ffffffff16565b6119c290919063ffffffff16565b60068190555061140d6103e86113ff8360045461194790919063ffffffff16565b6119c290919063ffffffff16565b6005819055505050565b61142033610d02565b61145f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114569061337f565b60405180910390fd5b804710156114a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114999061352f565b60405180910390fd5b6114ab81612295565b50565b601760029054906101000a900460ff1681565b6114ca336118f1565b611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906133eb565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61156d33610d02565b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a39061337f565b60405180910390fd5b60148054906101000a900460ff16156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f19061359b565b60405180910390fd5b4360158190555060016014806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116ad336118f1565b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e3906133eb565b60405180910390fd5b80601760006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b61173e33610d02565b61177d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117749061337f565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e133610d02565b611820576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118179061337f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516118e691906135dc565b60405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008083141561195a57600090506119bc565b600082846119689190613626565b905082848261197791906136af565b146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae90613752565b60405180910390fd5b809150505b92915050565b6000611a0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612763565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a73906137be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae3906137be565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bca9190612de5565b60405180910390a3505050565b6000838311158290611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c169190612e99565b60405180910390fd5b5060008385611c2e91906137de565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ce15750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d179061385e565b60405180910390fd5b601760049054906101000a900460ff1615611d4757611d408484846127c6565b9050612230565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611deb5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3e5760148054906101000a900460ff16611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e34906138ca565b60405180910390fd5b5b601760009054906101000a900460ff161561201657600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ef75750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4d5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200b576000611fb7846110d8565b90506006548382611fc891906138ea565b1115612009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120009061398c565b60405180910390fd5b505b6120158483612999565b5b61201f84612a36565b156120305761202f600754612295565b5b6120b9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061210785612b1c565b1580612119575061211784612b1c565b155b61212c576121278584612b73565b61212e565b825b905061218281600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122229190612de5565b60405180910390a360019150505b9392505050565b600080828461224691906138ea565b90508381101561228b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612282906139f8565b60405180910390fd5b8091505092915050565b6001601760046101000a81548160ff02191690831515021790555060006122ee60026122e06011546122d2600f548761194790919063ffffffff16565b6119c290919063ffffffff16565b6119c290919063ffffffff16565b905060006123058284612d8290919063ffffffff16565b90506000600267ffffffffffffffff81111561232457612323613a18565b5b6040519080825280602002602001820160405280156123525781602001602082028036833780820191505090505b509050308160008151811061236a57612369613a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124359190613a8b565b8160018151811061244957612448613a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016124ec959493929190613bb1565b600060405180830381600087803b15801561250657600080fd5b505af115801561251a573d6000803e3d6000fd5b5050505060006125338247612d8290919063ffffffff16565b905060006125616125506002600f546119c290919063ffffffff16565b601154612d8290919063ffffffff16565b9050600061259f600261259184612583600f548861194790919063ffffffff16565b6119c290919063ffffffff16565b6119c290919063ffffffff16565b905060006125ca836125bc6010548761194790919063ffffffff16565b6119c290919063ffffffff16565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161261890613c3c565b600060405180830381858888f193505050503d8060008114612656576040519150601f19603f3d011682016040523d82523d6000602084013e61265b565b606091505b5050905060009050600089111561273c57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126f596959493929190613c51565b60606040518083038185885af1158015612713573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127389190613cc7565b5050505b5050505050505050506000601760046101000a81548160ff02191690831515021790555050565b600080831182906127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a19190612e99565b60405180910390fd5b50600083856127b991906136af565b9050809150509392505050565b6000612851826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e682600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129869190612de5565b60405180910390a3600190509392505050565b600554811115806129f35750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2990613d66565b60405180910390fd5b5050565b6000601760049054906101000a900460ff16158015612a615750601760039054906101000a900460ff165b8015612ab75750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b045750600754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612b125760019050612b17565b600090505b919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612bd557600e549050612c3f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c3557600d549050612c3e565b82915050612d7c565b5b6000612c68601254612c5a848761194790919063ffffffff16565b6119c290919063ffffffff16565b9050612cbc81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d5c9190612de5565b60405180910390a3612d778185612d8290919063ffffffff16565b925050505b92915050565b6000612dc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bd7565b905092915050565b6000819050919050565b612ddf81612dcc565b82525050565b6000602082019050612dfa6000830184612dd6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e3a578082015181840152602081019050612e1f565b83811115612e49576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e6b82612e00565b612e758185612e0b565b9350612e85818560208601612e1c565b612e8e81612e4f565b840191505092915050565b60006020820190508181036000830152612eb38184612e60565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612eeb82612ec0565b9050919050565b612efb81612ee0565b8114612f0657600080fd5b50565b600081359050612f1881612ef2565b92915050565b612f2781612dcc565b8114612f3257600080fd5b50565b600081359050612f4481612f1e565b92915050565b60008060408385031215612f6157612f60612ebb565b5b6000612f6f85828601612f09565b9250506020612f8085828601612f35565b9150509250929050565b60008115159050919050565b612f9f81612f8a565b82525050565b6000602082019050612fba6000830184612f96565b92915050565b600060208284031215612fd657612fd5612ebb565b5b6000612fe484828501612f09565b91505092915050565b60008060006060848603121561300657613005612ebb565b5b600061301486828701612f09565b935050602061302586828701612f09565b925050604061303686828701612f35565b9150509250925092565b600060ff82169050919050565b61305681613040565b82525050565b6000602082019050613071600083018461304d565b92915050565b61308081612f8a565b811461308b57600080fd5b50565b60008135905061309d81613077565b92915050565b600080604083850312156130ba576130b9612ebb565b5b60006130c885828601612f09565b92505060206130d98582860161308e565b9150509250929050565b6000602082840312156130f9576130f8612ebb565b5b60006131078482850161308e565b91505092915050565b61311981612ee0565b82525050565b60006020820190506131346000830184613110565b92915050565b6000806000806080858703121561315457613153612ebb565b5b600061316287828801612f35565b945050602061317387828801612f35565b935050604061318487828801612f35565b925050606061319587828801612f35565b91505092959194509250565b6000602082840312156131b7576131b6612ebb565b5b60006131c584828501612f35565b91505092915050565b6000819050919050565b60006131f36131ee6131e984612ec0565b6131ce565b612ec0565b9050919050565b6000613205826131d8565b9050919050565b6000613217826131fa565b9050919050565b6132278161320c565b82525050565b6000602082019050613242600083018461321e565b92915050565b6000806040838503121561325f5761325e612ebb565b5b600061326d85828601612f35565b925050602061327e85828601612f35565b9150509250929050565b6000806040838503121561329f5761329e612ebb565b5b60006132ad85828601612f09565b92505060206132be85828601612f09565b9150509250929050565b60006132d382612ec0565b9050919050565b6132e3816132c8565b81146132ee57600080fd5b50565b600081359050613300816132da565b92915050565b60006020828403121561331c5761331b612ebb565b5b600061332a848285016132f1565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613369600683612e0b565b915061337482613333565b602082019050919050565b600060208201905081810360008301526133988161335c565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006133d5600b83612e0b565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2039302500000000600082015250565b6000613441601c83612e0b565b915061344c8261340b565b602082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b7f7468726573686f6c6420746f6f20686967680000000000000000000000000000600082015250565b60006134ad601283612e0b565b91506134b882613477565b602082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f6e6f7420656e6f7567687420746f6b656e730000000000000000000000000000600082015250565b6000613519601283612e0b565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b6000613585601083612e0b565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b60006135c6826131fa565b9050919050565b6135d6816135bb565b82525050565b60006020820190506135f160008301846135cd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363182612dcc565b915061363c83612dcc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613675576136746135f7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ba82612dcc565b91506136c583612dcc565b9250826136d5576136d4613680565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061373c602183612e0b565b9150613747826136e0565b604082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006137a8601383612e0b565b91506137b382613772565b602082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b60006137e982612dcc565b91506137f483612dcc565b925082821015613807576138066135f7565b5b828203905092915050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000613848601383612e0b565b915061385382613812565b602082019050919050565b600060208201905081810360008301526138778161383b565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006138b4601483612e0b565b91506138bf8261387e565b602082019050919050565b600060208201905081810360008301526138e3816138a7565b9050919050565b60006138f582612dcc565b915061390083612dcc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613935576139346135f7565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000613976601883612e0b565b915061398182613940565b602082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139e2601b83612e0b565b91506139ed826139ac565b602082019050919050565b60006020820190508181036000830152613a11816139d5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613a8581612ef2565b92915050565b600060208284031215613aa157613aa0612ebb565b5b6000613aaf84828501613a76565b91505092915050565b6000819050919050565b6000613add613ad8613ad384613ab8565b6131ce565b612dcc565b9050919050565b613aed81613ac2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b2881612ee0565b82525050565b6000613b3a8383613b1f565b60208301905092915050565b6000602082019050919050565b6000613b5e82613af3565b613b688185613afe565b9350613b7383613b0f565b8060005b83811015613ba4578151613b8b8882613b2e565b9750613b9683613b46565b925050600181019050613b77565b5085935050505092915050565b600060a082019050613bc66000830188612dd6565b613bd36020830187613ae4565b8181036040830152613be58186613b53565b9050613bf46060830185613110565b613c016080830184612dd6565b9695505050505050565b600081905092915050565b50565b6000613c26600083613c0b565b9150613c3182613c16565b600082019050919050565b6000613c4782613c19565b9150819050919050565b600060c082019050613c666000830189613110565b613c736020830188612dd6565b613c806040830187613ae4565b613c8d6060830186613ae4565b613c9a6080830185613110565b613ca760a0830184612dd6565b979650505050505050565b600081519050613cc181612f1e565b92915050565b600080600060608486031215613ce057613cdf612ebb565b5b6000613cee86828701613cb2565b9350506020613cff86828701613cb2565b9250506040613d1086828701613cb2565b9150509250925092565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613d50601183612e0b565b9150613d5b82613d1a565b602082019050919050565b60006020820190508181036000830152613d7f81613d43565b905091905056fea26469706673582212209af38e326be2d5feba70927e60958f139bc0ced5a1e71f0780d243c1bbf003c564736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102765760003560e01c806378109e541161014f578063c4590d3f116100c1578063e7a42de31161007a578063e7a42de314610953578063e96fada21461097c578063ef97212d146109a7578063f0b37c04146109d2578063f2fde38b146109fb578063fe9fbb8014610a245761027d565b8063c4590d3f14610859578063cfd55dda14610882578063d4208cc1146108ab578063d962cf58146108d6578063dc4b9a4e146108ff578063dd62ed3e146109165761027d565b806395d89b411161011357806395d89b41146107495780639d0014b114610774578063a76293ea1461079d578063a83019fa146107c8578063a9059cbb146107f3578063b6a5d7de146108305761027d565b806378109e54146106725780637d1db4a51461069d578063893d20e8146106c85780638de4f5ed146106f35780638ff35e561461071e5761027d565b80633582ad23116101e85780635da55668116101ac5780635da556681461056457806361147c541461058d578063658d4b7f146105b85780636ddd1713146105e15780636fcba3771461060c57806370a08231146106355761027d565b80633582ad23146104a3578063364333f4146104ce578063404e5129146104e557806341744dd41461050e57806347062402146105395761027d565b806318160ddd1161023a57806318160ddd1461036b5780631cdd3be31461039657806323b872dd146103d35780632b14ca56146104105780632f54bf6e1461043b578063313ce567146104785761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806311704f5214610315578063180b0d7e146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a61565b6040516102a49190612de5565b60405180910390f35b3480156102b957600080fd5b506102c2610a67565b6040516102cf9190612e99565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612f4a565b610aa4565b60405161030c9190612fa5565b60405180910390f35b34801561032157600080fd5b5061032a610abb565b6040516103379190612fa5565b60405180910390f35b34801561034c57600080fd5b50610355610acc565b6040516103629190612de5565b60405180910390f35b34801561037757600080fd5b50610380610ad2565b60405161038d9190612de5565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612fc0565b610adc565b6040516103ca9190612fa5565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612fed565b610afc565b6040516104079190612fa5565b60405180910390f35b34801561041c57600080fd5b50610425610cfc565b6040516104329190612de5565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190612fc0565b610d02565b60405161046f9190612fa5565b60405180910390f35b34801561048457600080fd5b5061048d610d5b565b60405161049a919061305c565b60405180910390f35b3480156104af57600080fd5b506104b8610d64565b6040516104c59190612fa5565b60405180910390f35b3480156104da57600080fd5b506104e3610d77565b005b3480156104f157600080fd5b5061050c600480360381019061050791906130a3565b610e0e565b005b34801561051a57600080fd5b50610523610eb1565b6040516105309190612de5565b60405180910390f35b34801561054557600080fd5b5061054e610eb7565b60405161055b9190612de5565b60405180910390f35b34801561057057600080fd5b5061058b600480360381019061058691906130e3565b610ebd565b005b34801561059957600080fd5b506105a2610f22565b6040516105af919061311f565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da91906130a3565b610f48565b005b3480156105ed57600080fd5b506105f6610feb565b6040516106039190612fa5565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e919061313a565b610ffe565b005b34801561064157600080fd5b5061065c60048036038101906106579190612fc0565b6110d8565b6040516106699190612de5565b60405180910390f35b34801561067e57600080fd5b50610687611121565b6040516106949190612de5565b60405180910390f35b3480156106a957600080fd5b506106b2611127565b6040516106bf9190612de5565b60405180910390f35b3480156106d457600080fd5b506106dd61112d565b6040516106ea919061311f565b60405180910390f35b3480156106ff57600080fd5b50610708611156565b604051610715919061311f565b60405180910390f35b34801561072a57600080fd5b5061073361117c565b6040516107409190612fa5565b60405180910390f35b34801561075557600080fd5b5061075e61118f565b60405161076b9190612e99565b60405180910390f35b34801561078057600080fd5b5061079b600480360381019061079691906131a1565b6111cc565b005b3480156107a957600080fd5b506107b261128a565b6040516107bf919061322d565b60405180910390f35b3480156107d457600080fd5b506107dd6112b0565b6040516107ea9190612de5565b60405180910390f35b3480156107ff57600080fd5b5061081a60048036038101906108159190612f4a565b6112b6565b6040516108279190612fa5565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612fc0565b6112cb565b005b34801561086557600080fd5b50610880600480360381019061087b9190613248565b61136d565b005b34801561088e57600080fd5b506108a960048036038101906108a491906131a1565b611417565b005b3480156108b757600080fd5b506108c06114ae565b6040516108cd9190612fa5565b60405180910390f35b3480156108e257600080fd5b506108fd60048036038101906108f891906130a3565b6114c1565b005b34801561090b57600080fd5b50610914611564565b005b34801561092257600080fd5b5061093d60048036038101906109389190613288565b61161d565b60405161094a9190612de5565b60405180910390f35b34801561095f57600080fd5b5061097a600480360381019061097591906130e3565b6116a4565b005b34801561098857600080fd5b50610991611709565b60405161099e919061311f565b60405180910390f35b3480156109b357600080fd5b506109bc61172f565b6040516109c99190612de5565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f49190612fc0565b611735565b005b348015610a0757600080fd5b50610a226004803603810190610a1d9190613306565b6117d8565b005b348015610a3057600080fd5b50610a4b6004803603810190610a469190612fc0565b6118f1565b604051610a589190612fa5565b60405180910390f35b60075481565b60606040518060400160405280600b81526020017f5453554b4153414e474841000000000000000000000000000000000000000000815250905090565b6000610ab1338484611a0c565b6001905092915050565b60148054906101000a900460ff1681565b60125481565b6000600454905090565b600c6020528060005260406000206000915054906101000a900460ff1681565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ce857610c67826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cf3848484611c3b565b90509392505050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b601760009054906101000a900460ff1681565b610d8033610d02565b610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db69061337f565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0a573d6000803e3d6000fd5b5050565b610e1733610d02565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061337f565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b600d5481565b610ec633610d02565b610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc9061337f565b60405180910390fd5b80601760036101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f51336118f1565b610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f87906133eb565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760039054906101000a900460ff1681565b611007336118f1565b611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906133eb565b60405180910390fd5b81600e8190555080600d819055508360108190555082600f81905550611079601054600f5461223790919063ffffffff16565b601181905550605a600e541080156110935750605a600d54105b6110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c990613457565b60405180910390fd5b50505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760019054906101000a900460ff1681565b60606040518060400160405280600681526020017f54414e4748410000000000000000000000000000000000000000000000000000815250905090565b6111d533610d02565b611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b9061337f565b60405180910390fd5b600a8110611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e906134c3565b60405180910390fd5b611281620186a06112738360045461194790919063ffffffff16565b6119c290919063ffffffff16565b60078190555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60006112c3338484611c3b565b905092915050565b6112d433610d02565b611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a9061337f565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61137633610d02565b6113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061337f565b60405180910390fd5b6113de6103e86113d08460045461194790919063ffffffff16565b6119c290919063ffffffff16565b60068190555061140d6103e86113ff8360045461194790919063ffffffff16565b6119c290919063ffffffff16565b6005819055505050565b61142033610d02565b61145f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114569061337f565b60405180910390fd5b804710156114a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114999061352f565b60405180910390fd5b6114ab81612295565b50565b601760029054906101000a900460ff1681565b6114ca336118f1565b611509576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611500906133eb565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61156d33610d02565b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a39061337f565b60405180910390fd5b60148054906101000a900460ff16156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f19061359b565b60405180910390fd5b4360158190555060016014806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116ad336118f1565b6116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e3906133eb565b60405180910390fd5b80601760006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b61173e33610d02565b61177d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117749061337f565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e133610d02565b611820576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118179061337f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516118e691906135dc565b60405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008083141561195a57600090506119bc565b600082846119689190613626565b905082848261197791906136af565b146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae90613752565b60405180910390fd5b809150505b92915050565b6000611a0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612763565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a73906137be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae3906137be565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bca9190612de5565b60405180910390a3505050565b6000838311158290611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c169190612e99565b60405180910390fd5b5060008385611c2e91906137de565b9050809150509392505050565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ce15750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d179061385e565b60405180910390fd5b601760049054906101000a900460ff1615611d4757611d408484846127c6565b9050612230565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611deb5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3e5760148054906101000a900460ff16611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e34906138ca565b60405180910390fd5b5b601760009054906101000a900460ff161561201657600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ef75750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f4d5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200b576000611fb7846110d8565b90506006548382611fc891906138ea565b1115612009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120009061398c565b60405180910390fd5b505b6120158483612999565b5b61201f84612a36565b156120305761202f600754612295565b5b6120b9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061210785612b1c565b1580612119575061211784612b1c565b155b61212c576121278584612b73565b61212e565b825b905061218281600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122229190612de5565b60405180910390a360019150505b9392505050565b600080828461224691906138ea565b90508381101561228b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612282906139f8565b60405180910390fd5b8091505092915050565b6001601760046101000a81548160ff02191690831515021790555060006122ee60026122e06011546122d2600f548761194790919063ffffffff16565b6119c290919063ffffffff16565b6119c290919063ffffffff16565b905060006123058284612d8290919063ffffffff16565b90506000600267ffffffffffffffff81111561232457612323613a18565b5b6040519080825280602002602001820160405280156123525781602001602082028036833780820191505090505b509050308160008151811061236a57612369613a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124359190613a8b565b8160018151811061244957612448613a47565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016124ec959493929190613bb1565b600060405180830381600087803b15801561250657600080fd5b505af115801561251a573d6000803e3d6000fd5b5050505060006125338247612d8290919063ffffffff16565b905060006125616125506002600f546119c290919063ffffffff16565b601154612d8290919063ffffffff16565b9050600061259f600261259184612583600f548861194790919063ffffffff16565b6119c290919063ffffffff16565b6119c290919063ffffffff16565b905060006125ca836125bc6010548761194790919063ffffffff16565b6119c290919063ffffffff16565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161261890613c3c565b600060405180830381858888f193505050503d8060008114612656576040519150601f19603f3d011682016040523d82523d6000602084013e61265b565b606091505b5050905060009050600089111561273c57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126f596959493929190613c51565b60606040518083038185885af1158015612713573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127389190613cc7565b5050505b5050505050505050506000601760046101000a81548160ff02191690831515021790555050565b600080831182906127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a19190612e99565b60405180910390fd5b50600083856127b991906136af565b9050809150509392505050565b6000612851826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd79092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e682600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129869190612de5565b60405180910390a3600190509392505050565b600554811115806129f35750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2990613d66565b60405180910390fd5b5050565b6000601760049054906101000a900460ff16158015612a615750601760039054906101000a900460ff165b8015612ab75750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b045750600754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612b125760019050612b17565b600090505b919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612bd557600e549050612c3f565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612c3557600d549050612c3e565b82915050612d7c565b5b6000612c68601254612c5a848761194790919063ffffffff16565b6119c290919063ffffffff16565b9050612cbc81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223790919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d5c9190612de5565b60405180910390a3612d778185612d8290919063ffffffff16565b925050505b92915050565b6000612dc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bd7565b905092915050565b6000819050919050565b612ddf81612dcc565b82525050565b6000602082019050612dfa6000830184612dd6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e3a578082015181840152602081019050612e1f565b83811115612e49576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e6b82612e00565b612e758185612e0b565b9350612e85818560208601612e1c565b612e8e81612e4f565b840191505092915050565b60006020820190508181036000830152612eb38184612e60565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612eeb82612ec0565b9050919050565b612efb81612ee0565b8114612f0657600080fd5b50565b600081359050612f1881612ef2565b92915050565b612f2781612dcc565b8114612f3257600080fd5b50565b600081359050612f4481612f1e565b92915050565b60008060408385031215612f6157612f60612ebb565b5b6000612f6f85828601612f09565b9250506020612f8085828601612f35565b9150509250929050565b60008115159050919050565b612f9f81612f8a565b82525050565b6000602082019050612fba6000830184612f96565b92915050565b600060208284031215612fd657612fd5612ebb565b5b6000612fe484828501612f09565b91505092915050565b60008060006060848603121561300657613005612ebb565b5b600061301486828701612f09565b935050602061302586828701612f09565b925050604061303686828701612f35565b9150509250925092565b600060ff82169050919050565b61305681613040565b82525050565b6000602082019050613071600083018461304d565b92915050565b61308081612f8a565b811461308b57600080fd5b50565b60008135905061309d81613077565b92915050565b600080604083850312156130ba576130b9612ebb565b5b60006130c885828601612f09565b92505060206130d98582860161308e565b9150509250929050565b6000602082840312156130f9576130f8612ebb565b5b60006131078482850161308e565b91505092915050565b61311981612ee0565b82525050565b60006020820190506131346000830184613110565b92915050565b6000806000806080858703121561315457613153612ebb565b5b600061316287828801612f35565b945050602061317387828801612f35565b935050604061318487828801612f35565b925050606061319587828801612f35565b91505092959194509250565b6000602082840312156131b7576131b6612ebb565b5b60006131c584828501612f35565b91505092915050565b6000819050919050565b60006131f36131ee6131e984612ec0565b6131ce565b612ec0565b9050919050565b6000613205826131d8565b9050919050565b6000613217826131fa565b9050919050565b6132278161320c565b82525050565b6000602082019050613242600083018461321e565b92915050565b6000806040838503121561325f5761325e612ebb565b5b600061326d85828601612f35565b925050602061327e85828601612f35565b9150509250929050565b6000806040838503121561329f5761329e612ebb565b5b60006132ad85828601612f09565b92505060206132be85828601612f09565b9150509250929050565b60006132d382612ec0565b9050919050565b6132e3816132c8565b81146132ee57600080fd5b50565b600081359050613300816132da565b92915050565b60006020828403121561331c5761331b612ebb565b5b600061332a848285016132f1565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613369600683612e0b565b915061337482613333565b602082019050919050565b600060208201905081810360008301526133988161335c565b9050919050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b60006133d5600b83612e0b565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2039302500000000600082015250565b6000613441601c83612e0b565b915061344c8261340b565b602082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b7f7468726573686f6c6420746f6f20686967680000000000000000000000000000600082015250565b60006134ad601283612e0b565b91506134b882613477565b602082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f6e6f7420656e6f7567687420746f6b656e730000000000000000000000000000600082015250565b6000613519601283612e0b565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f616c7265616479206c61756e6368656400000000000000000000000000000000600082015250565b6000613585601083612e0b565b91506135908261354f565b602082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b60006135c6826131fa565b9050919050565b6135d6816135bb565b82525050565b60006020820190506135f160008301846135cd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363182612dcc565b915061363c83612dcc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613675576136746135f7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ba82612dcc565b91506136c583612dcc565b9250826136d5576136d4613680565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061373c602183612e0b565b9150613747826136e0565b604082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b60006137a8601383612e0b565b91506137b382613772565b602082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b60006137e982612dcc565b91506137f483612dcc565b925082821015613807576138066135f7565b5b828203905092915050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000613848601383612e0b565b915061385382613812565b602082019050919050565b600060208201905081810360008301526138778161383b565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006138b4601483612e0b565b91506138bf8261387e565b602082019050919050565b600060208201905081810360008301526138e3816138a7565b9050919050565b60006138f582612dcc565b915061390083612dcc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613935576139346135f7565b5b828201905092915050565b7f6d61782077616c6c6574206c696d697420726561636865640000000000000000600082015250565b6000613976601883612e0b565b915061398182613940565b602082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006139e2601b83612e0b565b91506139ed826139ac565b602082019050919050565b60006020820190508181036000830152613a11816139d5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613a8581612ef2565b92915050565b600060208284031215613aa157613aa0612ebb565b5b6000613aaf84828501613a76565b91505092915050565b6000819050919050565b6000613add613ad8613ad384613ab8565b6131ce565b612dcc565b9050919050565b613aed81613ac2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b2881612ee0565b82525050565b6000613b3a8383613b1f565b60208301905092915050565b6000602082019050919050565b6000613b5e82613af3565b613b688185613afe565b9350613b7383613b0f565b8060005b83811015613ba4578151613b8b8882613b2e565b9750613b9683613b46565b925050600181019050613b77565b5085935050505092915050565b600060a082019050613bc66000830188612dd6565b613bd36020830187613ae4565b8181036040830152613be58186613b53565b9050613bf46060830185613110565b613c016080830184612dd6565b9695505050505050565b600081905092915050565b50565b6000613c26600083613c0b565b9150613c3182613c16565b600082019050919050565b6000613c4782613c19565b9150819050919050565b600060c082019050613c666000830189613110565b613c736020830188612dd6565b613c806040830187613ae4565b613c8d6060830186613ae4565b613c9a6080830185613110565b613ca760a0830184612dd6565b979650505050505050565b600081519050613cc181612f1e565b92915050565b600080600060608486031215613ce057613cdf612ebb565b5b6000613cee86828701613cb2565b9350506020613cff86828701613cb2565b9250506040613d1086828701613cb2565b9150509250925092565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613d50601183612e0b565b9150613d5b82613d1a565b602082019050919050565b60006020820190508181036000830152613d7f81613d43565b905091905056fea26469706673582212209af38e326be2d5feba70927e60958f139bc0ced5a1e71f0780d243c1bbf003c564736f6c634300080c0033
Deployed Bytecode Sourcemap
5143:11281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5894:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8055:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8580:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6564:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6455:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7737:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6174:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9324:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6267:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2975:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7847:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6670:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15242:158;;;;;;;;;;;;;:::i;:::-;;14944:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6391:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6235:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12132:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6533:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15582:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6784:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15842:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8257:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5745:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8157:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5222:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6709:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7949:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14727:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6499:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6311:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9128:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2768:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14467:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15065:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6746:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15710:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15408:166;;;;;;;;;;;;;:::i;:::-;;8384:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16300:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5322:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2870:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3201:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3086:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5894:71;;;;:::o;8055:94::-;8103:13;8136:5;;;;;;;;;;;;;;;;;8129:12;;8055:94;:::o;8580:191::-;8682:4;8704:37;8713:10;8725:7;8734:6;8704:8;:37::i;:::-;8759:4;8752:11;;8580:191;;;;:::o;6564:31::-;;;;;;;;;;;;:::o;6455:35::-;;;;:::o;7737:102::-;7792:7;7819:12;;7812:19;;7737:102;:::o;6174:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;9324:422::-;9458:4;9514:17;9479:11;:19;9491:6;9479:19;;;;;;;;;;;;;;;:31;9499:10;9479:31;;;;;;;;;;;;;;;;:52;9475:206;;9582:87;9636:6;9582:87;;;;;;;;;;;;;;;;;:11;:19;9594:6;9582:19;;;;;;;;;;;;;;;:31;9602:10;9582:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;9548:11;:19;9560:6;9548:19;;;;;;;;;;;;;;;:31;9568:10;9548:31;;;;;;;;;;;;;;;:121;;;;9475:206;9698:40;9712:6;9720:9;9731:6;9698:13;:40::i;:::-;9691:47;;9324:422;;;;;:::o;6267:27::-;;;;:::o;2975:103::-;3030:4;3065:5;;;;;;;;;;;3054:16;;:7;:16;;;3047:23;;2975:103;;;:::o;7847:94::-;7899:5;5532:2;7917:16;;7847:94;:::o;6670:32::-;;;;;;;;;;;;;:::o;15242:158::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15301:17:::1;15321:21;15301:41;;15361:10;15353:28;;:39;15382:9;15353:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15290:110;15242:158::o:0;14944:113::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15044:5:::1;15020:14;:21;15035:5;15020:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14944:113:::0;;:::o;6391:57::-;;;;:::o;6235:25::-;;;;:::o;12132:95::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12211:8:::1;12197:11;;:22;;;;;;;;;;;;;;;;;;12132:95:::0;:::o;6533:22::-;;;;;;;;;;;;;:::o;15582:120::-;2700:24;2713:10;2700:12;:24::i;:::-;2692:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15688:6:::1;15666:11;:19;15678:6;15666:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15582:120:::0;;:::o;6784:30::-;;;;;;;;;;;;;:::o;15842:450::-;2700:24;2713:10;2700:12;:24::i;:::-;2692:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16028:8:::1;16018:7;:18;;;;16056:7;16047:6;:16;;;;16091:15;16074:14;:32;;;;16134:15;16117:14;:32;;;;16171:34;16190:14;;16171;;:18;;:34;;;;:::i;:::-;16160:8;:45;;;;16234:2;16224:7;;:12;:27;;;;;16249:2;16240:6;;:11;16224:27;16216:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15842:450:::0;;;;:::o;8257:119::-;8323:7;8350:9;:18;8360:7;8350:18;;;;;;;;;;;;;;;;8343:25;;8257:119;;;:::o;5816:71::-;;;;:::o;5745:64::-;;;;:::o;8157:92::-;8209:7;8236:5;;;;;;;;;;;8229:12;;8157:92;:::o;5222:93::-;;;;;;;;;;;;;:::o;6709:30::-;;;;;;;;;;;;;:::o;7949:98::-;7999:13;8032:7;;;;;;;;;;;;;;;;;8025:14;;7949:98;:::o;14727:209::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14832:2:::1;14815:14;:19;14807:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;14884:44;14921:6;14884:32;14901:14;14884:12;;:16;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;14868:13;:60;;;;14727:209:::0;:::o;6499:27::-;;;;;;;;;;;;;:::o;6311:33::-;;;;:::o;9128:188::-;9235:4;9264:44;9278:10;9290:9;9301:6;9264:13;:44::i;:::-;9257:51;;9128:188;;;;:::o;2768:94::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2850:4:::1;2828:14:::0;:19:::1;2843:3;2828:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2768:94:::0;:::o;14467:252::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14603:42:::1;14640:4;14603:32;14620:14;14603:12;;:16;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;14585:15;:60;;;;14671:40;14706:4;14671:30;14688:12;14671;;:16;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;14656:12;:55;;;;14467:252:::0;;:::o;15065:169::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15170:6:::1;15145:21;:31;;15137:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15210:16;15219:6;15210:8;:16::i;:::-;15065:169:::0;:::o;6746:31::-;;;;;;;;;;;;;:::o;15710:124::-;2700:24;2713:10;2700:12;:24::i;:::-;2692:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15820:6:::1;15796:13;:21;15810:6;15796:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15710:124:::0;;:::o;15408:166::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15469:11:::1;::::0;::::1;;;;;;;;15468:12;15460:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;15525:12;15512:10;:25;;;;15562:4;15548:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;15408:166::o:0;8384:188::-;8504:7;8536:11;:19;8548:6;8536:19;;;;;;;;;;;;;;;:28;8556:7;8536:28;;;;;;;;;;;;;;;;8529:35;;8384:188;;;;:::o;16300:121::-;2700:24;2713:10;2700:12;:24::i;:::-;2692:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16397:16:::1;16381:13;;:32;;;;;;;;;;;;;;;;;;16300:121:::0;:::o;5322:89::-;;;;;;;;;;;;;:::o;6351:33::-;;;;:::o;2870:97::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2954:5:::1;2932:14;:19;2947:3;2932:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2870:97:::0;:::o;3201:173::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3285:3:::1;3277:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3321:4;3299:14:::0;:19:::1;3314:3;3299:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3341:25;3362:3;3341:25;;;;;;:::i;:::-;;;;;;;;3201:173:::0;:::o;3086:107::-;3142:4;3166:14;:19;3181:3;3166:19;;;;;;;;;;;;;;;;;;;;;;;;;3159:26;;3086:107;;;:::o;661:250::-;719:7;748:1;743;:6;739:47;;;773:1;766:8;;;;739:47;798:9;814:1;810;:5;;;;:::i;:::-;798:17;;843:1;838;834;:5;;;;:::i;:::-;:10;826:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;902:1;895:8;;;661:250;;;;;:::o;919:132::-;977:7;1004:39;1008:1;1011;1004:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;997:46;;919:132;;;;:::o;8779:341::-;8925:1;8907:20;;:6;:20;;;;8899:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8989:1;8970:21;;:7;:21;;;;8962:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9057:6;9026:11;:19;9038:6;9026:19;;;;;;;;;;;;;;;:28;9046:7;9026:28;;;;;;;;;;;;;;;:37;;;;9096:7;9079:33;;9088:6;9079:33;;;9105:6;9079:33;;;;;;:::i;:::-;;;;;;;;8779:341;;;:::o;427:226::-;547:7;580:1;575;:6;;583:12;567:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;607:9;623:1;619;:5;;;;:::i;:::-;607:17;;644:1;637:8;;;427:226;;;;;:::o;9754:1415::-;9871:4;9911:14;:20;9926:4;9911:20;;;;;;;;;;;;;;;;;;;;;;;;;9910:21;:44;;;;;9936:14;:18;9951:2;9936:18;;;;;;;;;;;;;;;;;;;;;;;;;9935:19;9910:44;9888:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;10016:6;;;;;;;;;;;10012:78;;;10046:32;10061:4;10067:2;10071:6;10046:14;:32::i;:::-;10039:39;;;;10012:78;10107:14;:20;10122:4;10107:20;;;;;;;;;;;;;;;;;;;;;;;;;10106:21;:44;;;;;10132:14;:18;10147:2;10132:18;;;;;;;;;;;;;;;;;;;;;;;;;10131:19;10106:44;10102:121;;;10175:11;;;;;;;;;;10167:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10102:121;10239:13;;;;;;;;;;;10235:486;;;10292:14;:20;10307:4;10292:20;;;;;;;;;;;;;;;;;;;;;;;;;10291:21;:62;;;;;10334:13;:19;10348:4;10334:19;;;;;;;;;;;;;;;;;;;;;;;;;10333:20;10291:62;:101;;;;;10375:13;:17;10389:2;10375:17;;;;;;;;;;;;;;;;;;;;;;;;;10374:18;10291:101;:135;;;;;10419:7;;;;;;;;;;;10413:13;;:2;:13;;;;10291:135;10269:399;;;10461:18;10482:13;10492:2;10482:9;:13::i;:::-;10461:34;;10569:15;;10558:6;10545:10;:19;;;;:::i;:::-;10544:40;;10514:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:226;10269:399;10682:27;10696:4;10702:6;10682:13;:27::i;:::-;10235:486;10737:20;10752:4;10737:14;:20::i;:::-;10733:76;;;10774:23;10783:13;;10774:8;:23::i;:::-;10733:76;10837:51;10857:6;10837:51;;;;;;;;;;;;;;;;;:9;:15;10847:4;10837:15;;;;;;;;;;;;;;;;:19;;:51;;;;;:::i;:::-;10819:9;:15;10829:4;10819:15;;;;;;;;;;;;;;;:69;;;;10899:22;10926:19;10940:4;10926:13;:19::i;:::-;10925:20;:42;;;;10950:17;10964:2;10950:13;:17::i;:::-;10949:18;10925:42;10924:103;;11006:21;11014:4;11020:6;11006:7;:21::i;:::-;10924:103;;;10984:6;10924:103;10899:128;;11056:33;11074:14;11056:9;:13;11066:2;11056:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;11040:9;:13;11050:2;11040:13;;;;;;;;;;;;;;;:49;;;;11120:2;11105:34;;11114:4;11105:34;;;11124:14;11105:34;;;;;;:::i;:::-;;;;;;;;11157:4;11150:11;;;9754:1415;;;;;;:::o;94:181::-;152:7;172:9;188:1;184;:5;;;;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;266:1;259:8;;;94:181;;;;:::o;12945:1514::-;6883:4;6874:6;;:13;;;;;;;;;;;;;;;;;;13013:23:::1;13039:94;13131:1;13039:73;13103:8;;13039:45;13069:14;;13039:11;:29;;:45;;;;:::i;:::-;:63;;:73;;;;:::i;:::-;:91;;:94;;;;:::i;:::-;13013:120;;13144:20;13167:32;13183:15;13167:11;:15;;:32;;;;:::i;:::-;13144:55;;13210:21;13248:1;13234:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13210:40;;13279:4;13261;13266:1;13261:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13305:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13295:4;13300:1;13295:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;::::0;::::1;13332:21;13356;13332:45;;13388:9;;;;;;;;;;;:60;;;13463:12;13490:1;13506:4;13533;13553:15;13388:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13590:17;13610:40;13636:13;13610:21;:25;;:40;;;;:::i;:::-;13590:60;;13661:19;13683:35;13696:21;13715:1;13696:14;;:18;;:21;;;;:::i;:::-;13683:8;;:12;;:35;;;;:::i;:::-;13661:57;;13729:26;13758:95;13851:1;13758:74;13820:11;13758:43;13786:14;;13758:9;:27;;:43;;;;:::i;:::-;:61;;:74;;;;:::i;:::-;:92;;:95;;;;:::i;:::-;13729:124;;13864:26;13893:70;13941:11;13893:29;13907:14;;13893:9;:13;;:29;;;;:::i;:::-;:33;;:70;;;;:::i;:::-;13864:99;;13975:15;14004:20;;;;;;;;;;;13996:34;;14052:18;14090:5;13996:114;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13974:136;;;14134:5;14121:18;;14172:1;14154:15;:19;14150:302;;;14190:9;;;;;;;;;;;:25;;;14223:18;14269:4;14293:15;14327:1;14347::::0;14367:24:::1;;;;;;;;;;;14410:15;14190:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14150:302;13002:1457;;;;;;;;;6919:5:::0;6910:6;;:14;;;;;;;;;;;;;;;;;;12945:1514;:::o;1059:223::-;1179:7;1211:1;1207;:5;1214:12;1199:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1238:9;1254:1;1250;:5;;;;:::i;:::-;1238:17;;1273:1;1266:8;;;1059:223;;;;;:::o;11177:401::-;11304:4;11341:90;11377:6;11341:90;;;;;;;;;;;;;;;;;:9;:17;11351:6;11341:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11321:9;:17;11331:6;11321:17;;;;;;;;;;;;;;;:110;;;;11465:32;11490:6;11465:9;:20;11475:9;11465:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11442:9;:20;11452:9;11442:20;;;;;;;;;;;;;;;:55;;;;11530:9;11513:35;;11522:6;11513:35;;;11541:6;11513:35;;;;;;:::i;:::-;;;;;;;;11566:4;11559:11;;11177:401;;;;;:::o;11586:202::-;11698:12;;11688:6;:22;;:47;;;;11714:13;:21;11728:6;11714:21;;;;;;;;;;;;;;;;;;;;;;;;;11688:47;11666:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;11586:202;;:::o;11796:328::-;11857:4;11893:6;;;;;;;;;;;11892:7;:35;;;;;11916:11;;;;;;;;;;;11892:35;:72;;;;;11945:13;:19;11959:4;11945:19;;;;;;;;;;;;;;;;;;;;;;;;;11944:20;11892:72;:130;;;;;12009:13;;11981:9;:24;11999:4;11981:24;;;;;;;;;;;;;;;;:41;;11892:130;11874:243;;;12056:4;12049:11;;;;11874:243;12100:5;12093:12;;11796:328;;;;:::o;12235:114::-;12297:4;12322:11;:19;12334:6;12322:19;;;;;;;;;;;;;;;;;;;;;;;;;12321:20;12314:27;;12235:114;;;:::o;12357:580::-;12442:7;12467:12;12504:7;;;;;;;;;;;12494:17;;:6;:17;;;12490:179;;12535:7;;12528:14;;12490:179;;;12574:7;;;;;;;;;;;12564:17;;:6;:17;;;12560:109;;;12605:6;;12598:13;;12560:109;;;12651:6;12644:13;;;;;12560:109;12490:179;12679:22;12704:36;12725:14;;12704:16;12715:4;12704:6;:10;;:16;;;;:::i;:::-;:20;;:36;;;;:::i;:::-;12679:61;;12778:44;12807:14;12778:9;:24;12796:4;12778:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;12751:9;:24;12769:4;12751:24;;;;;;;;;;;;;;;:71;;;;12863:4;12838:47;;12847:6;12838:47;;;12870:14;12838:47;;;;;;:::i;:::-;;;;;;;;12903:26;12914:14;12903:6;:10;;:26;;;;:::i;:::-;12896:33;;;;12357:580;;;;;:::o;283:136::-;341:7;368:43;372:1;375;368:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;361:50;;283:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:468::-;5562:6;5570;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5872:2;5898:50;5940:7;5931:6;5920:9;5916:22;5898:50;:::i;:::-;5888:60;;5843:115;5497:468;;;;;:::o;5971:323::-;6027:6;6076:2;6064:9;6055:7;6051:23;6047:32;6044:119;;;6082:79;;:::i;:::-;6044:119;6202:1;6227:50;6269:7;6260:6;6249:9;6245:22;6227:50;:::i;:::-;6217:60;;6173:114;5971:323;;;;:::o;6300:118::-;6387:24;6405:5;6387:24;:::i;:::-;6382:3;6375:37;6300:118;;:::o;6424:222::-;6517:4;6555:2;6544:9;6540:18;6532:26;;6568:71;6636:1;6625:9;6621:17;6612:6;6568:71;:::i;:::-;6424:222;;;;:::o;6652:765::-;6738:6;6746;6754;6762;6811:3;6799:9;6790:7;6786:23;6782:33;6779:120;;;6818:79;;:::i;:::-;6779:120;6938:1;6963:53;7008:7;6999:6;6988:9;6984:22;6963:53;:::i;:::-;6953:63;;6909:117;7065:2;7091:53;7136:7;7127:6;7116:9;7112:22;7091:53;:::i;:::-;7081:63;;7036:118;7193:2;7219:53;7264:7;7255:6;7244:9;7240:22;7219:53;:::i;:::-;7209:63;;7164:118;7321:2;7347:53;7392:7;7383:6;7372:9;7368:22;7347:53;:::i;:::-;7337:63;;7292:118;6652:765;;;;;;;:::o;7423:329::-;7482:6;7531:2;7519:9;7510:7;7506:23;7502:32;7499:119;;;7537:79;;:::i;:::-;7499:119;7657:1;7682:53;7727:7;7718:6;7707:9;7703:22;7682:53;:::i;:::-;7672:63;;7628:117;7423:329;;;;:::o;7758:60::-;7786:3;7807:5;7800:12;;7758:60;;;:::o;7824:142::-;7874:9;7907:53;7925:34;7934:24;7952:5;7934:24;:::i;:::-;7925:34;:::i;:::-;7907:53;:::i;:::-;7894:66;;7824:142;;;:::o;7972:126::-;8022:9;8055:37;8086:5;8055:37;:::i;:::-;8042:50;;7972:126;;;:::o;8104:144::-;8172:9;8205:37;8236:5;8205:37;:::i;:::-;8192:50;;8104:144;;;:::o;8254:167::-;8359:55;8408:5;8359:55;:::i;:::-;8354:3;8347:68;8254:167;;:::o;8427:258::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8589:89;8675:1;8664:9;8660:17;8651:6;8589:89;:::i;:::-;8427:258;;;;:::o;8691:474::-;8759:6;8767;8816:2;8804:9;8795:7;8791:23;8787:32;8784:119;;;8822:79;;:::i;:::-;8784:119;8942:1;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8913:117;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;8691:474;;;;;:::o;9171:::-;9239:6;9247;9296:2;9284:9;9275:7;9271:23;9267:32;9264:119;;;9302:79;;:::i;:::-;9264:119;9422:1;9447:53;9492:7;9483:6;9472:9;9468:22;9447:53;:::i;:::-;9437:63;;9393:117;9549:2;9575:53;9620:7;9611:6;9600:9;9596:22;9575:53;:::i;:::-;9565:63;;9520:118;9171:474;;;;;:::o;9651:104::-;9696:7;9725:24;9743:5;9725:24;:::i;:::-;9714:35;;9651:104;;;:::o;9761:138::-;9842:32;9868:5;9842:32;:::i;:::-;9835:5;9832:43;9822:71;;9889:1;9886;9879:12;9822:71;9761:138;:::o;9905:155::-;9959:5;9997:6;9984:20;9975:29;;10013:41;10048:5;10013:41;:::i;:::-;9905:155;;;;:::o;10066:345::-;10133:6;10182:2;10170:9;10161:7;10157:23;10153:32;10150:119;;;10188:79;;:::i;:::-;10150:119;10308:1;10333:61;10386:7;10377:6;10366:9;10362:22;10333:61;:::i;:::-;10323:71;;10279:125;10066:345;;;;:::o;10417:156::-;10557:8;10553:1;10545:6;10541:14;10534:32;10417:156;:::o;10579:365::-;10721:3;10742:66;10806:1;10801:3;10742:66;:::i;:::-;10735:73;;10817:93;10906:3;10817:93;:::i;:::-;10935:2;10930:3;10926:12;10919:19;;10579:365;;;:::o;10950:419::-;11116:4;11154:2;11143:9;11139:18;11131:26;;11203:9;11197:4;11193:20;11189:1;11178:9;11174:17;11167:47;11231:131;11357:4;11231:131;:::i;:::-;11223:139;;10950:419;;;:::o;11375:161::-;11515:13;11511:1;11503:6;11499:14;11492:37;11375:161;:::o;11542:366::-;11684:3;11705:67;11769:2;11764:3;11705:67;:::i;:::-;11698:74;;11781:93;11870:3;11781:93;:::i;:::-;11899:2;11894:3;11890:12;11883:19;;11542:366;;;:::o;11914:419::-;12080:4;12118:2;12107:9;12103:18;12095:26;;12167:9;12161:4;12157:20;12153:1;12142:9;12138:17;12131:47;12195:131;12321:4;12195:131;:::i;:::-;12187:139;;11914:419;;;:::o;12339:178::-;12479:30;12475:1;12467:6;12463:14;12456:54;12339:178;:::o;12523:366::-;12665:3;12686:67;12750:2;12745:3;12686:67;:::i;:::-;12679:74;;12762:93;12851:3;12762:93;:::i;:::-;12880:2;12875:3;12871:12;12864:19;;12523:366;;;:::o;12895:419::-;13061:4;13099:2;13088:9;13084:18;13076:26;;13148:9;13142:4;13138:20;13134:1;13123:9;13119:17;13112:47;13176:131;13302:4;13176:131;:::i;:::-;13168:139;;12895:419;;;:::o;13320:168::-;13460:20;13456:1;13448:6;13444:14;13437:44;13320:168;:::o;13494:366::-;13636:3;13657:67;13721:2;13716:3;13657:67;:::i;:::-;13650:74;;13733:93;13822:3;13733:93;:::i;:::-;13851:2;13846:3;13842:12;13835:19;;13494:366;;;:::o;13866:419::-;14032:4;14070:2;14059:9;14055:18;14047:26;;14119:9;14113:4;14109:20;14105:1;14094:9;14090:17;14083:47;14147:131;14273:4;14147:131;:::i;:::-;14139:139;;13866:419;;;:::o;14291:168::-;14431:20;14427:1;14419:6;14415:14;14408:44;14291:168;:::o;14465:366::-;14607:3;14628:67;14692:2;14687:3;14628:67;:::i;:::-;14621:74;;14704:93;14793:3;14704:93;:::i;:::-;14822:2;14817:3;14813:12;14806:19;;14465:366;;;:::o;14837:419::-;15003:4;15041:2;15030:9;15026:18;15018:26;;15090:9;15084:4;15080:20;15076:1;15065:9;15061:17;15054:47;15118:131;15244:4;15118:131;:::i;:::-;15110:139;;14837:419;;;:::o;15262:166::-;15402:18;15398:1;15390:6;15386:14;15379:42;15262:166;:::o;15434:366::-;15576:3;15597:67;15661:2;15656:3;15597:67;:::i;:::-;15590:74;;15673:93;15762:3;15673:93;:::i;:::-;15791:2;15786:3;15782:12;15775:19;;15434:366;;;:::o;15806:419::-;15972:4;16010:2;15999:9;15995:18;15987:26;;16059:9;16053:4;16049:20;16045:1;16034:9;16030:17;16023:47;16087:131;16213:4;16087:131;:::i;:::-;16079:139;;15806:419;;;:::o;16231:134::-;16289:9;16322:37;16353:5;16322:37;:::i;:::-;16309:50;;16231:134;;;:::o;16371:147::-;16466:45;16505:5;16466:45;:::i;:::-;16461:3;16454:58;16371:147;;:::o;16524:238::-;16625:4;16663:2;16652:9;16648:18;16640:26;;16676:79;16752:1;16741:9;16737:17;16728:6;16676:79;:::i;:::-;16524:238;;;;:::o;16768:180::-;16816:77;16813:1;16806:88;16913:4;16910:1;16903:15;16937:4;16934:1;16927:15;16954:348;16994:7;17017:20;17035:1;17017:20;:::i;:::-;17012:25;;17051:20;17069:1;17051:20;:::i;:::-;17046:25;;17239:1;17171:66;17167:74;17164:1;17161:81;17156:1;17149:9;17142:17;17138:105;17135:131;;;17246:18;;:::i;:::-;17135:131;17294:1;17291;17287:9;17276:20;;16954:348;;;;:::o;17308:180::-;17356:77;17353:1;17346:88;17453:4;17450:1;17443:15;17477:4;17474:1;17467:15;17494:185;17534:1;17551:20;17569:1;17551:20;:::i;:::-;17546:25;;17585:20;17603:1;17585:20;:::i;:::-;17580:25;;17624:1;17614:35;;17629:18;;:::i;:::-;17614:35;17671:1;17668;17664:9;17659:14;;17494:185;;;;:::o;17685:220::-;17825:34;17821:1;17813:6;17809:14;17802:58;17894:3;17889:2;17881:6;17877:15;17870:28;17685:220;:::o;17911:366::-;18053:3;18074:67;18138:2;18133:3;18074:67;:::i;:::-;18067:74;;18150:93;18239:3;18150:93;:::i;:::-;18268:2;18263:3;18259:12;18252:19;;17911:366;;;:::o;18283:419::-;18449:4;18487:2;18476:9;18472:18;18464:26;;18536:9;18530:4;18526:20;18522:1;18511:9;18507:17;18500:47;18564:131;18690:4;18564:131;:::i;:::-;18556:139;;18283:419;;;:::o;18708:169::-;18848:21;18844:1;18836:6;18832:14;18825:45;18708:169;:::o;18883:366::-;19025:3;19046:67;19110:2;19105:3;19046:67;:::i;:::-;19039:74;;19122:93;19211:3;19122:93;:::i;:::-;19240:2;19235:3;19231:12;19224:19;;18883:366;;;:::o;19255:419::-;19421:4;19459:2;19448:9;19444:18;19436:26;;19508:9;19502:4;19498:20;19494:1;19483:9;19479:17;19472:47;19536:131;19662:4;19536:131;:::i;:::-;19528:139;;19255:419;;;:::o;19680:191::-;19720:4;19740:20;19758:1;19740:20;:::i;:::-;19735:25;;19774:20;19792:1;19774:20;:::i;:::-;19769:25;;19813:1;19810;19807:8;19804:34;;;19818:18;;:::i;:::-;19804:34;19863:1;19860;19856:9;19848:17;;19680:191;;;;:::o;19877:169::-;20017:21;20013:1;20005:6;20001:14;19994:45;19877:169;:::o;20052:366::-;20194:3;20215:67;20279:2;20274:3;20215:67;:::i;:::-;20208:74;;20291:93;20380:3;20291:93;:::i;:::-;20409:2;20404:3;20400:12;20393:19;;20052:366;;;:::o;20424:419::-;20590:4;20628:2;20617:9;20613:18;20605:26;;20677:9;20671:4;20667:20;20663:1;20652:9;20648:17;20641:47;20705:131;20831:4;20705:131;:::i;:::-;20697:139;;20424:419;;;:::o;20849:170::-;20989:22;20985:1;20977:6;20973:14;20966:46;20849:170;:::o;21025:366::-;21167:3;21188:67;21252:2;21247:3;21188:67;:::i;:::-;21181:74;;21264:93;21353:3;21264:93;:::i;:::-;21382:2;21377:3;21373:12;21366:19;;21025:366;;;:::o;21397:419::-;21563:4;21601:2;21590:9;21586:18;21578:26;;21650:9;21644:4;21640:20;21636:1;21625:9;21621:17;21614:47;21678:131;21804:4;21678:131;:::i;:::-;21670:139;;21397:419;;;:::o;21822:305::-;21862:3;21881:20;21899:1;21881:20;:::i;:::-;21876:25;;21915:20;21933:1;21915:20;:::i;:::-;21910:25;;22069:1;22001:66;21997:74;21994:1;21991:81;21988:107;;;22075:18;;:::i;:::-;21988:107;22119:1;22116;22112:9;22105:16;;21822:305;;;;:::o;22133:174::-;22273:26;22269:1;22261:6;22257:14;22250:50;22133:174;:::o;22313:366::-;22455:3;22476:67;22540:2;22535:3;22476:67;:::i;:::-;22469:74;;22552:93;22641:3;22552:93;:::i;:::-;22670:2;22665:3;22661:12;22654:19;;22313:366;;;:::o;22685:419::-;22851:4;22889:2;22878:9;22874:18;22866:26;;22938:9;22932:4;22928:20;22924:1;22913:9;22909:17;22902:47;22966:131;23092:4;22966:131;:::i;:::-;22958:139;;22685:419;;;:::o;23110:177::-;23250:29;23246:1;23238:6;23234:14;23227:53;23110:177;:::o;23293:366::-;23435:3;23456:67;23520:2;23515:3;23456:67;:::i;:::-;23449:74;;23532:93;23621:3;23532:93;:::i;:::-;23650:2;23645:3;23641:12;23634:19;;23293:366;;;:::o;23665:419::-;23831:4;23869:2;23858:9;23854:18;23846:26;;23918:9;23912:4;23908:20;23904:1;23893:9;23889:17;23882:47;23946:131;24072:4;23946:131;:::i;:::-;23938:139;;23665:419;;;:::o;24090:180::-;24138:77;24135:1;24128:88;24235:4;24232:1;24225:15;24259:4;24256:1;24249:15;24276:180;24324:77;24321:1;24314:88;24421:4;24418:1;24411:15;24445:4;24442:1;24435:15;24462:143;24519:5;24550:6;24544:13;24535:22;;24566:33;24593:5;24566:33;:::i;:::-;24462:143;;;;:::o;24611:351::-;24681:6;24730:2;24718:9;24709:7;24705:23;24701:32;24698:119;;;24736:79;;:::i;:::-;24698:119;24856:1;24881:64;24937:7;24928:6;24917:9;24913:22;24881:64;:::i;:::-;24871:74;;24827:128;24611:351;;;;:::o;24968:85::-;25013:7;25042:5;25031:16;;24968:85;;;:::o;25059:158::-;25117:9;25150:61;25168:42;25177:32;25203:5;25177:32;:::i;:::-;25168:42;:::i;:::-;25150:61;:::i;:::-;25137:74;;25059:158;;;:::o;25223:147::-;25318:45;25357:5;25318:45;:::i;:::-;25313:3;25306:58;25223:147;;:::o;25376:114::-;25443:6;25477:5;25471:12;25461:22;;25376:114;;;:::o;25496:184::-;25595:11;25629:6;25624:3;25617:19;25669:4;25664:3;25660:14;25645:29;;25496:184;;;;:::o;25686:132::-;25753:4;25776:3;25768:11;;25806:4;25801:3;25797:14;25789:22;;25686:132;;;:::o;25824:108::-;25901:24;25919:5;25901:24;:::i;:::-;25896:3;25889:37;25824:108;;:::o;25938:179::-;26007:10;26028:46;26070:3;26062:6;26028:46;:::i;:::-;26106:4;26101:3;26097:14;26083:28;;25938:179;;;;:::o;26123:113::-;26193:4;26225;26220:3;26216:14;26208:22;;26123:113;;;:::o;26272:732::-;26391:3;26420:54;26468:5;26420:54;:::i;:::-;26490:86;26569:6;26564:3;26490:86;:::i;:::-;26483:93;;26600:56;26650:5;26600:56;:::i;:::-;26679:7;26710:1;26695:284;26720:6;26717:1;26714:13;26695:284;;;26796:6;26790:13;26823:63;26882:3;26867:13;26823:63;:::i;:::-;26816:70;;26909:60;26962:6;26909:60;:::i;:::-;26899:70;;26755:224;26742:1;26739;26735:9;26730:14;;26695:284;;;26699:14;26995:3;26988:10;;26396:608;;;26272:732;;;;:::o;27010:831::-;27273:4;27311:3;27300:9;27296:19;27288:27;;27325:71;27393:1;27382:9;27378:17;27369:6;27325:71;:::i;:::-;27406:80;27482:2;27471:9;27467:18;27458:6;27406:80;:::i;:::-;27533:9;27527:4;27523:20;27518:2;27507:9;27503:18;27496:48;27561:108;27664:4;27655:6;27561:108;:::i;:::-;27553:116;;27679:72;27747:2;27736:9;27732:18;27723:6;27679:72;:::i;:::-;27761:73;27829:3;27818:9;27814:19;27805:6;27761:73;:::i;:::-;27010:831;;;;;;;;:::o;27847:147::-;27948:11;27985:3;27970:18;;27847:147;;;;:::o;28000:114::-;;:::o;28120:398::-;28279:3;28300:83;28381:1;28376:3;28300:83;:::i;:::-;28293:90;;28392:93;28481:3;28392:93;:::i;:::-;28510:1;28505:3;28501:11;28494:18;;28120:398;;;:::o;28524:379::-;28708:3;28730:147;28873:3;28730:147;:::i;:::-;28723:154;;28894:3;28887:10;;28524:379;;;:::o;28909:807::-;29158:4;29196:3;29185:9;29181:19;29173:27;;29210:71;29278:1;29267:9;29263:17;29254:6;29210:71;:::i;:::-;29291:72;29359:2;29348:9;29344:18;29335:6;29291:72;:::i;:::-;29373:80;29449:2;29438:9;29434:18;29425:6;29373:80;:::i;:::-;29463;29539:2;29528:9;29524:18;29515:6;29463:80;:::i;:::-;29553:73;29621:3;29610:9;29606:19;29597:6;29553:73;:::i;:::-;29636;29704:3;29693:9;29689:19;29680:6;29636:73;:::i;:::-;28909:807;;;;;;;;;:::o;29722:143::-;29779:5;29810:6;29804:13;29795:22;;29826:33;29853:5;29826:33;:::i;:::-;29722:143;;;;:::o;29871:663::-;29959:6;29967;29975;30024:2;30012:9;30003:7;29999:23;29995:32;29992:119;;;30030:79;;:::i;:::-;29992:119;30150:1;30175:64;30231:7;30222:6;30211:9;30207:22;30175:64;:::i;:::-;30165:74;;30121:128;30288:2;30314:64;30370:7;30361:6;30350:9;30346:22;30314:64;:::i;:::-;30304:74;;30259:129;30427:2;30453:64;30509:7;30500:6;30489:9;30485:22;30453:64;:::i;:::-;30443:74;;30398:129;29871:663;;;;;:::o;30540:167::-;30680:19;30676:1;30668:6;30664:14;30657:43;30540:167;:::o;30713:366::-;30855:3;30876:67;30940:2;30935:3;30876:67;:::i;:::-;30869:74;;30952:93;31041:3;30952:93;:::i;:::-;31070:2;31065:3;31061:12;31054:19;;30713:366;;;:::o;31085:419::-;31251:4;31289:2;31278:9;31274:18;31266:26;;31338:9;31332:4;31328:20;31324:1;31313:9;31309:17;31302:47;31366:131;31492:4;31366:131;:::i;:::-;31358:139;;31085:419;;;:::o
Swarm Source
ipfs://9af38e326be2d5feba70927e60958f139bc0ced5a1e71f0780d243c1bbf003c5
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.